1、select 簡單語句
--select語句 select 12*13 --select子句 select 12*13 AS result --select子句,可以將結果保存在result中 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ select * From table_name --查詢table_name所有信息 select name From table_name --查詢table_name表中name select name as 學生姓名 From table_name --查詢table_name表中name且列名字以“學生姓名”顯示 select name,Gender,Address From table_name --查詢table_name的姓名,性別,地址 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ select distinct name From table_name --查詢table_name的姓名且去除重復信息(此例時去除重復name)
2、設置查詢條件
select * From table_name where name='張三' 精確查詢 select * From table_name where name='張三' AND Gender='女' 精確查詢 需要同時滿足name='張三' 和 Gender='女' select * From table_name where name='張三' OR Gender='女' 精確查詢 滿足name='張三' 和 Gender='女'任一條件就可 select * From table_name where Age>18 and Age<=45 精確查詢 滿足任一條件就可 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ select * From table_name where Address like '河南%' 精確查詢 %為通配符,like用於模糊查詢,此語句滿足以河南開頭的住址
select * From 成績查詢 where 考試編號='0802' AND (分數 between 90 and 95) --查詢考試編號為0802且 分數位於90~95之間的分數 select * From 成績查詢 where 考試編號='0802' AND (分數 % 5=0) --查詢考試編號為0802且 分數除以5的余數為0(求余是0) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ select * From 成績查詢 where 考試編號='0802' AND 分數 in (85,86,87,90) --查詢考試編號為0802且 分數是85(86或87或90) select * From 成績查詢 where 考試編號='0802' AND 分數 not in (85,86,87,90) --查詢考試編號為0802且 分數不是85、86、87、90 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3、排序
select * From table_name where 考試編號=‘0801’ order by 分數 -->查詢考試編號為0801的成績,按分數默認(升序)排序 select * From table_name where 考試編號=‘0801’ order by 分數 ASC -->查詢考試編號為0801的成績,按分數 升序 排序 select * From table_name where 考試編號=‘0801’ order by 分數 DESC -->查詢考試編號為0801的成績,按分數默認 降序 排序 select * From table_name where 考試編號=‘0801’ order by 分數 DESC,學生編號 ASC(可不寫) -->查詢考試編號為0801的成績,按分數默認 降序 排序,(成績相同的)學生編號按 升序 排序
4、使用函數
select * From 成績查詢 where 考試編號='0801' AND 課程編號='2' --查詢考試編號='0801' AND 課程編號='2'的成績查詢表 select Max(分數) From 成績查詢 where 考試編號='0801' AND 課程編號='2' --查詢考試編號='0801' AND 課程編號='2'的成績查詢表的最高分數 select Min(分數) From 成績查詢 where 考試編號='0801' AND 課程編號='2' --查詢考試編號='0801' AND 課程編號='2'的成績查詢表的最低分數 select AVG(分數) From 成績查詢 where 考試編號='0801' AND 課程編號='2' --查詢考試編號='0801' AND 課程編號='2'的成績查詢表的平均分數 select SUM(分數) From 成績查詢 where 考試編號='0801' AND 課程編號='2' --查詢考試編號='0801' AND 課程編號='2'的成績查詢表的求和 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ select top 3 分數 From 成績查詢 where 考試編號='0801' AND 課程編號='2' order by 分數 DESC --top函數:查詢考試編號='0801' AND 課程編號='2'的成績查詢表的前三個數據並降序排列(前三名)
5、分組
select 課程編號,AVG(分數) From 成績查詢 where 考試編號='0801' Group by 課程編號 --查詢考試編號為0801且以課程編號分組的平均成績
注意分組的group的關鍵字rollup和cube
select 課程編號,AVG(分數) From 成績查詢 where 考試編號='0801' Group by rollup(課程編號) --查詢考試編號為0801且以課程編號分組的平均成績,且最后有個總成績的平均值 select 課程編號,AVG(分數) From 成績查詢 where 考試編號='0801' Group by cube(課程編號) --查詢考試編號為0801且以課程編號分組的平均成績,且最后有個總成績的平均值
千萬注意rollup和cube的區別
select 考試編號,課程編號,AVG(分數) From 成績查詢 Group by 考試編號,課程編號 --查詢考試編號,課程編號和課程編號且以此分組的平均成績, select 考試編號,課程編號,AVG(分數) From 成績查詢 Group by rollup(考試編號,課程編號) --查詢考試編號,課程編號和課程編號且以此分組的平均成績,且以考試編號進行匯總,后面有總匯總 select 考試編號,課程編號,AVG(分數) From 成績查詢 Group by cube(考試編號,課程編號) --查詢考試編號,課程編號和課程編號且以此分組的平均成績,且以課程編號進行匯總,后面有總匯總
6、Having子句
select 考試編號,課程編號,AVG(分數) From 成績查詢 Group by 考試編號,課程編號 order by 考試編號 --查詢考試編號,課程編號和課程編號且以此分組的平均成績, select 考試編號,課程編號,AVG(分數) From 成績查詢 Group by 考試編號,課程編號 Having AVG(分數) >=90 order by 考試編號 --查詢考試編號,課程編號和課程編號且以此分組的平均成績,增加having條件
7、插入語句
Insert,插入數據,手動指定
Insert Insert into table_name VALUES('xx','xxx'......) --不寫列,代表向表中全部的列都插入數據 例如: Insert into 學生信息 VALUES('2019100101','李白',’男‘,’1999-10-21‘,'漢','河南鄭州') Insert into table_name (column1,column2...) VALUES('xx','xxx'......) Insert into 學生信息 (學號,姓名,地址) VALUES('2019100101','李白','河南鄭州')
Insert......Select:向數據表中插入從其他地方獲取的值
語法: Insert table_name [column_list] select column From table_list Where search_condirions 例子: Insert 學生信息1 select * From 學生信息 或者 Insert 學生信息1 select * From 學生信息 where 地址 like ’%鄭州‘
SELECT......INTO
--語法 Select <select_list> Into new_table From {<table_name>} where <search_condition> --這么做或新建一個表,把查詢結果放到新表當中 --例子 select * into #學生信息2 from 學生信息 where 性別='男' --新建表就是不希望查詢中新建實例表
7、改語句:Update
---語法 Update [top] {table_name|view_name} Set {column_name{expression|DEFAULT|NULL}|@variable=expression} where {search_condition} --例子 Update 學生信息 set 姓名='杜甫' where 學號='2019100101' Update 學生信息 set 姓名='杜甫',出生日期='2000-8-9' where 學號='2019100101'
update中使用From子句
update 學生信息 set s_sex=b.性別,s_address=b.家庭住址 from 學生信息 a join stuudent b on a.s_name = b.姓名 whhere b.性別='女'
8、刪除語句:Delect
--語法 Delete From <table_name> where <search_condition> --例子: delete From table_name --或者 delete * From table_name --刪除所有行 delete From table_name whhere 學號='2019-10010'