SQL自學筆記之一

  • 379
  • 0
  • SQL
  • 2018-05-10

自學SQL,只是個人筆記

SELECT

取出table_name中所有的columns

SELECT * FROM table_name;

取出table_name中的column1和column2 

SELECT column1,column2
FROM table_name;

 

SELECT DISTINCT

取出相異的colunm1,column2資料。(a,a)(a,b)也是相異

SELECT DISTINCT column1,column2
FROM table_name;

計算相異的column1數量。 

SELECT COUNT(DISTINCT column1)
FROM table_name;
SELECT COUNT(*) AS table2
FROM (SELECT DISTINCT column1 FROM table_name);

 

WHERE Clause

取出column1和colum2,如果符合condition。

SELECT column1, column2,
FROM table_name
WHERE condition;

 

ORDER BY

根據column1對table_name中的所有資料做排序(升降)

SELECT * FROM table_name
ORDER BY column1 (DESC,ASC);
SELECT * FROM table_name
WHERE column1='xxx'
ORDER BY column2 DESC;

 

INSERT INTO

插入一筆新資料到table_name中

INSERT INTO table_name
VALUES(column1_value,column2_value...);

 沒有指定的column會是NULL

INSERT INTO table_name(column1,column2)
VALUES(calumn1_value,column2_value);

 

判斷是否為NULL

不能用等於 不能用等於 不能用等於.......
SELECT * FROM table_name
WHERE column1 IS NOT NULL;

 

UPDATE

要小心使用 要小心使用 要小心使用...(沒加條件會update整張table的資料,會GG)
UPDATE table_name
SET column1='xxx',column2='xxx'
WHERE condition;

 

DELETE FROM

要小心使用 要小心使用 要小心使用...(沒加條件會delete掉整張table的資料,真的會GG)
DELETE FROM table_name
WHERE condition;

 

SELECT TOP,LIMIT,ROWNUM

取出前幾筆資料,在對大量數據做測試時好用。

SQL Server / MS Access Syntax:

SELECT TOP [3 | 30 PERCENT] * 
FROM table_name;

MySQL Syntax:

SELECT * FROM table_name
LIMIT 3;

Oracle Syntax:

SELECT * FROM table_name
WHERE ROWNUM<=3;

加入條件時:

SQL Server / MS Access Syntax:

SELECT TOP 3 * FROM table_name
WHERE condition;

MySQL Syntax:

SELECT * FROM table_name
WHERE condition
LIMIT 3;

Oracle Syntax:

SELECT * FROM table_name
WHERE condition AND ROWNUM<=3