常用的sql语句整理 增删改查
這里寫目錄標題
- 查詢數據(SELECT)
- 模糊查詢(like)
- 集合查詢(in)
- 修改數據(update)
- 刪除數據(delete和truncate) drop(刪表)
- delete、truncate、drop的區別
- 增加數據(INSERT INTO)
- 必須掌握的關鍵字查詢
- 1、BETWEEN(兩個值之間的數據)
- 2、AS(別名)
- 3、Distinct(忽略重復值)
- 4、SUM(求和)
- 5、COUNT(計數)
- 6、AVG(平均值)
- 7、GROUP BY(分組)
- 8、ORDER BY(排序)
- 9、limit(查詢結果的數目)
- 10、having(聚合函數,又需要篩選條件時)
- 11、max(最大值)
- 11、min(最小值)
- 左連接——LEFT JOIN(需掌握)
- 右連接——RIGHT JOIN
- 內連接——INNER JOIN(需掌握)
- 復合條件連接查詢——帶where條件的連接查詢(了解就行)
- 邏輯運算符(and、or、not)
- 比較運算符(=、)
查詢數據(SELECT)
SELECT 字段名1,字段名2,... FROM 表名 select * from 表名 where 條件;模糊查詢(like)
查詢姓李的學生:SELECT * from student WHERE name like '李%';
集合查詢(in)
in,代表是否在這個集合中
查詢身高為165,170的學生:SELECT * from student WHERE height in (165,170);
修改數據(update)
update 表名 set 字段名=值刪除數據(delete和truncate) drop(刪表)
delete
DELETE FROM 表名 WHERE 字段名 = 值truncate
truncate 表名(刪除所有班級數據,則可以這樣寫)drop(刪表)
drop 表1名,表2名,...;delete、truncate、drop的區別
簡單來說:
drop用于刪表(表中數據會全部刪除,無法回滾),
delete和truncate用于刪除表中的數據(delete也可刪表)。
通過delete刪除的數據可以回滾,而truncate刪除的則不能。
他們的級別為:drop>truncate>delete
delete操作不會減少表或索引所占用的空間,truncate會將占用的恢復至初始大小。
舉個例子:如果設置了自增id,有id為1、2、3的三條數據,如果通過delete全部刪除后,下次插入的數據如果沒有指定id的話,那它的id會為4
如果通過truncate刪除這三條數據的話,那它的id會為1
增加數據(INSERT INTO)
INSERT INTO 表名 (列名1 , … 列名n) VALUES ("值1",...) ;必須掌握的關鍵字查詢
1、BETWEEN(兩個值之間的數據)
查詢兩個值之間的數據
語法:select * from 表名 where 字段名 between 值 and 值;
查詢體重在65-70的學生:
select * FROM student WHERE weight BETWEEN 65 AND 70;
2、AS(別名)
為字段名指定別名
語法:select 字段名1 AS 別名,字段名2 AS 別名,.... from 表名
將字段名name改為別名學生名稱顯示:
select name AS '學生名稱' FROM student
3、Distinct(忽略重復值)
查詢時忽略重復值
語法:SELECT DISTINCT 字段名 FROM 表名
查詢學生所在的班級有哪些:
select DISTINCT class_id FROM student
4、SUM(求和)
求和
語法:select SUM(字段名) from 表名;
查詢學生總身高:
select SUM(height) AS '學生總身高' FROM student;
5、COUNT(計數)
count() 是一個聚合函數,對于返回的結果集,一行行地判斷,如果 count 函數的參數不是 NULL,累計值就加 1,否則不加,最后返回累計值。
返回匹配指定條件的行數。
語法:select COUNT(字段名) from 表名;
查詢有多少學生:
select count(*) FROM student;
6、AVG(平均值)
計算平均值
語法:select AVG(字段名) from 表名;
計算學生平均身高:
select AVG(height) AS '學生平均身高' FROM student;
7、GROUP BY(分組)
根據一或多個字段對查詢結果集進行分組
語法: select 字段名 關鍵字(字段名) from 表名 group by 字段名;
查詢男生、女生各有多少:
SELECT gender,count(id) FROM student GROUP BY gender
8、ORDER BY(排序)
對結果集進行排序
語法:select 字段名 from 表名 order by 字段名 升/降序關鍵字;
對學生身高降序排列(由高到矮): 倒敘 desc
SELECT * FROM student ORDER BY height desc;
對學生體重升序排列(由輕到重): 升序 asc
SELECT * FROM student ORDER BY weight asc;
9、limit(查詢結果的數目)
返回查詢結果的數目
語法:select 字段名 from 表名 limit 開始條數,結尾條數;
返回前三條學生信息:
SELECT * FROM student LIMIT 1,3;
10、having(聚合函數,又需要篩選條件時)
當我們用到聚合函數(sum、count等),又需要篩選條件時,having就派上用場了,因為WHERE是在聚合前篩選記錄的,having和group by是組合一起再聚合后使用
語法:沒有固定語法
查班級人數大于等于3的班級:
SELECT count(*) FROM student GROUP BY class_id HAVING COUNT(id)>=3;
11、max(最大值)
SELECT MAX(column_name) FROM table_name;
MAX() 函數返回指定列的最大值
column_name:列名
table_name:表名
11、min(最小值)
SELECT MIN(column_name) FROM table_name;
MIN() 函數返回指定列的最大值
column_name:列名
table_name:表名
左連接——LEFT JOIN(需掌握)
說明:返回左表中的所有記錄和右表中與連接字段相等的記錄,如果右表沒有匹配的記錄,那么就以空(Null)代替顯示
語法:select 字段 from 左表表名 左表的變量名(自定義) LEFT JOIN 右表表名 右表的變量名(自定義)on 左表變量名.左表字段=右表變量名.右表字段
右連接——RIGHT JOIN
說明:與左連接相反:返回右表中的所有記錄和左表中與連接字段相等的記錄,如果左表沒有匹配的記錄,那么就以空(Null)代替顯示。
內連接——INNER JOIN(需掌握)
說明:只返回兩個表都與連接字段相等的記錄
舉例:
1)還是以查詢學生及其所在的班級信息:
SELECT * FROM student a INNER JOIN class b on a.class_id=b.id;
復合條件連接查詢——帶where條件的連接查詢(了解就行)
說明:連接查詢還可以與where條件聯用
舉例:
1)查詢性別為男的學生及其所在的班級信息:
SELECT * FROM student a LEFT JOIN class b on a.class_id=b.id WHERE a.gender='male';
邏輯運算符(and、or、not)
比較運算符(=、)
總結
以上是生活随笔為你收集整理的常用的sql语句整理 增删改查的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 10_30_unittest
- 下一篇: [Microsoft][SQL Serv