SqlServer2012——Select,分組,排序、插入


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'

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM