一、常見的增刪改查
(一)、查:1、SELECT 列名稱 FROM 表名稱,其中列名可以是多個,中間用豆號分開,如SELECT LastName,FirstName FROM Persons;
2、SELECT * FROM 表名稱,表示查找表中所有的內容,星號(*)是選取所有列的快捷方式;
3、用where 限定搜索范圍,SELECT 列名稱 FROM 表名稱 WHERE 列 運算符 值,其中,運算符包括
操作符 描述
= 等於
<> 不等於
> 大於
< 小於
>= 大於等於
<= 小於等於
BETWEEN 在某個范圍內
LIKE 搜索某種模式
注釋:在某些版本的 SQL 中,操作符 <> 可以寫為 !=。
如:SELECT * FROM Persons WHERE City='Beijing'
4、以下說說上面的一個運算符like
LIKE 操作符用於在 WHERE 子句中搜索列中的指定模式。SELECT column_name(s)FROM table_name WHERE column_name LIKE pattern
例如:
SELECT * FROM Persons WHERE City LIKE 'N%'
SELECT * FROM Persons WHERE City LIKE '%g'
SELECT * FROM Persons WHERE City LIKE '%lon%'
在以上的三個例子中,都有一個符號“%”,"%" 可用於定義通配符(模式中缺少的字母)。對於第一個例子,可以理解為查找City列中的名字中一定要以N開頭的,后面的字母是什么,不用管;同理,第二個例子,是搜索City列中的名字中一定要以g結尾的城市,第三個例子,則是查找City列中的名字中名字存在lon的城市。
簡單點來說,這是一種模糊搜索,而“%”可以代表任何字符。
5、and,or
and 即條件交集,or 即條件並集;
(二)、改:Update 語句用於修改表中的數據。語法:UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值;
列名可以是多個,多個列名之間用豆號分開;
例如:UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson'
UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson'
(三)刪:DELETE 語句用於刪除表中的行。語法:DELETE FROM 表名稱 WHERE 列名稱 = 值,如:DELETE FROM Person WHERE LastName = 'Wilson'
刪除所有行,DELETE FROM table_name或DELETE * FROM table_name(注意,並不刪除表);
(四)增:INSERT INTO 語句用於向表格中插入新的行。語句:INSERT INTO 表名稱 VALUES (值1, 值2,....)
或INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
例如:INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')或
INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees‘)
(五)sum()函數;
SUM 函數返回數值列的總數(總額)。注意,只能統計數值。語法:SELECT SUM(column_name) FROM table_name
例如:SELECT SUM(OrderPrice) AS OrderTotal FROM Orders;as表示生成的數據的列名是OrderTotal
(六)count()函數
1、COUNT(column_name) 函數返回指定列的值的數目(NULL 不計入),即column_name中有多少個不同的值:
SELECT COUNT(column_name) FROM table_name
如:SELECT COUNT(Customer) AS CustomerNilsen FROM Orders WHERE Customer='Carter'
2、COUNT(*) 函數返回表中的記錄數,即表中有多少條記錄:SELECT COUNT(*) FROM table_name
如:SELECT COUNT(*) AS NumberOfOrders FROM Orders
3、COUNT(DISTINCT column_name) 函數返回指定列的不同值的數目:SELECT COUNT(DISTINCT column_name) FROM table_name
如:SELECT COUNT(DISTINCT Customer) AS NumberOfCustomers FROM Orders
注:count()函數可以統計出一個列中某一值的出現次數,而不限於列的值的數據類型,而sum()函數限定操作的值的類型一定要是數值類型;
(七)group by
1、GROUP BY 語句用於結合合計函數,根據一個或多個列對結果集進行分組。通常與sum()、count()等函數一起用。
2、語法:SELECT column_name0, aggregate_function(column_name1) FROM table_name WHERE column_name operator value GROUP BY column_name2
3、與sum()的結合使用,可以根據column_name2列中的值的不同而對column_name1的值進行分組並合計;
例如:SELECT City, sum(input) FROM Person GROUP BY City ;就能按把收入統計並按城市分組,即表中有多少個不同的City就有多少行數據。
4、與count()結合使用,可以統計出某表中某列中的某值出現的次數.
select a as xm,count(a) as cs from table1 group by a
如某表table1,
... a ...
... 0 ...
... 1 ...
... 2 ...
... 1 ...
... 0 ...
其中a列只有0,1,2三種值,如何統計各值出現的次數,最好弄成這樣的
XM CS
0 (0出現的次數)
1 (1出現的次數)
2 (2出現的次數)
5、我們也可以對一個以上的列應用 GROUP BY 語句,就像這樣:
SELECT Customer,OrderDate,SUM(OrderPrice) FROM Orders GROUP BY Customer,OrderDate
(八)把兩個表中的相關內容進行搜索合並
例如:select column1,column2,column3 from table_name1,talbe_name2 where table_name1.column = table_name2.column
注意:兩個表中就有一個記錄相同信息的列 column。