1. 程式人生 > >SQLServer之T-SQL增、刪、改、查

SQLServer之T-SQL增、刪、改、查

T-SQL語句

增-插入語句:
insert into 表名 (列名,列名,列名)
values (數據,數據,數據)
如-添加3班的張三成績為90到成績表中:
insert into 成績表 (姓名,成績,班級)
values (張三,90,3)
·列名可以不加,不加列名數據會跟隨表的字段順序寫數據
刪-刪除語句:
1、delete from 表名 [where 條件]
·where子句可以不加,如果不加where意思就是直接刪除整個表
如-在成績表中刪除成績小於60的學生信息:
delete from 成績表 where 成績<60
2、truncate table 表名
·意思也是直接刪除整個表
3、truancate table 和 delete的區別:
·truncate table後不跟where子句;而delete可以where,按條件刪除數據
·truncate table不記錄事務日誌,所以刪除後數據無法恢復;而delete相反
·truncate table刪除後會重置標識符列;delete語句不會
·truncate table不能用於有外鍵約束引用的表。
改-更新語句:
update 表名 set 列名=更新值 [where 條件]
·where子句不加會更新所有數據
如-在成績表中給張三的成績加兩分:
update 成績表 set 成績=成績+2 where 姓名=’張三’
查select-查詢語句:
1、select 列名 from 表名 where 條件
2、select語句參數:
·into:把查詢結果保存到一個新的表中
·from:跟要查詢的表
·where:查詢條件
·group by:分組查詢
·having:與group by一起使用,查詢條件
·order by:將查詢結果排序;desc為降序,asc為升序,不加默認升序3、表達式
⑴條件表達式
SQLServer中的表達式可以包含下列一個或多個參數
·常量:表示單個指定數據值的符號。一個常量由一個或多個字母,數字字符(字母a-z、A-Z、數字0~9)或符號(!、@、#等)組成。字母,日期和時間數據類型的常量需要用單引號括起來,二進制字符串和數字常量則不需要
br/>3、表達式
⑴條件表達式
SQLServer中的表達式可以包含下列一個或多個參數
·常量:表示單個指定數據值的符號。一個常量由一個或多個字母,數字字符(字母a-z、A-Z、數字0~9)或符號(!、@、#等)組成。字母,日期和時間數據類型的常量需要用單引號括起來,二進制字符串和數字常量則不需要
·一元運算符:僅有一個操作數的運算符,其中“+”表示正數,“-”表示負數,“~”補數運算符
·二元運算符:將兩個操作數組合執行操作的運算符。二元運算符可以是算術運算符、賦值運算符(=)、位運算符、比較運算符、邏輯運算符、字符串串聯(或連接)運算符(+)或一元運算符。下圖為比較運算符。
技術分享圖片
·like語句通配符:‘-’表示任何單個字符;‘%’任意長度的字符;[]表示括號內指定的字符;[^]表示不在括號內的字符
⑵邏輯表達式
not:不是,與其他操作符一起起反義
and:和,兩個條件同時滿足
or:或者,兩個條件滿足一個

操作部分
1、查詢products表中所有的列:select from products
技術分享圖片
2、查詢products表的特定列(名稱,成本):select 名稱,成本 from products
技術分享圖片
3、查詢成本在1到5元之間的水果:select
from products where 成本 between 1 and 5
技術分享圖片
4、查詢前5行:select top 5 from products
技術分享圖片
5、改變查詢結果集的列名(查詢西瓜的名稱和成本信息並顯示為name和cost):
select 名稱 as name,成本 as cost from products where 名稱=’西瓜’
技術分享圖片
6、查詢結果排序(查找所有的水果並按成本的降序排序):select
from products where種類=’水果’ order by 成本 desc
技術分享圖片
7、分組查詢(查詢各種類的平均成本並按平均成本成本排序):select 種類,avg(成本) as平均成本 from products group by 種類 having avg (成本)>20 order by avg(成本)
技術分享圖片
8、將查詢結果保存到一個新表中(查詢所有的水果並將結果保存到newproducts表中):select into newproducts from products
技術分享圖片
刷新一下表
技術分享圖片
可以看到新的newproducts表
技術分享圖片
9、like子句(查詢出所有的經理):select
from [員工信息表-2] where 職位 like ‘%經理%’
技術分享圖片
10、多表查詢內連接(從學生基本信息表和學生成績表中查找參加考試的學生的姓名和CNT成績、電話):select S.姓名,S.電話,C.CNT from 學生基本信息表 as S inner join 學生成績表 as C on S.姓名=C.姓名
技術分享圖片
11、左/右外連接:select S.姓名,S.電話,C.CNT from 學生基本信息表 as S left/right outer join 學生成績表 as C on S.姓名=C.姓名(以左外連接為例)
技術分享圖片
12、自連接(在員工信息表2中查找每個員工的上司姓名):select Y.員工姓名,S.員工姓名 as 上司姓名 from 員工信息表 as Y inner join 員工信息表 as S on Y.上司ID=S.員工ID
技術分享圖片
13、子查詢(在生產表中查找每個季度的生產數量、百分比):select 季度,sum(生產數量) as 每個季度的生產數量,str((sum(生產數量)/(select sum(生產數量) from 生產表))*100)+‘%‘ as 百分比 from 生產表group by 季度 order by 季度
技術分享圖片
14、子查詢(在where子句中使用select 在成績表和學生表中查找課程ID=1並且成績〉80的學生):select 學生表.姓名 from 學生表 where 80<(select 分數 from 成績表 where 學生表.學生ID=成績表.學生ID AND 成績表.課程ID=1)
技術分享圖片

SQLServer之T-SQL增、刪、改、查