久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

SQL SERVER基礎語法有哪些

149次閱讀
沒有評論

共計 2776 個字符,預計需要花費 7 分鐘才能閱讀完成。

這篇文章主要介紹 SQL SERVER 基礎語法有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

Struct Query Language

1.3NF

a. 原子性

b. 不能數據冗余

c. 引用其他表的主鍵

2. 約束

a. 非空約束

b. 主鍵約束

c. 唯一約束

d. 默認約束

e. 檢查約束

f. 外鍵約束

3. 外鍵與關系

外鍵是約束, 不做外鍵處理, 關系也是存在的.

4.char varchar nchar nvarchar

char: 是固定字符, 如果不夠, 會用空格來處理. 不需要計算長度, 速度快.

varchar: 是動態的大小. 需要計算長度, 速度慢, 存儲占用小.

nvarchar: 是以 unicode 編碼存儲. 每個字符占 2 個字節. 可以在任何 sql server 都能正常顯示中文. 不帶 n 的英文占 1 個字節. 中文占 2 個字節

5.crud

[select]:

取前 5:select top 5

取前 5%:select top 5 percent

去除重復:select distinct

條件:select * from 表名 where

[insert]:insert into 表名 [(字段名, 字段名)] values(字段值, 字段值)

[update]:update 表名 set 字段名 = 字段值 [where]

[delete]:delete [from] 表名 [where]

6. 運算符優先級

[邏輯運算符]: and or not(!)

[比較運算符]: = !=

比較運算符一般邏輯運算符優先級要高, 除了 not.! 只比小括號的優先級低.

7. 模糊查詢

like:select * from 表名 where 字段名 like 值

_: 匹配任意一個字符

%: 匹配任意多個字符

[%]: 匹配字符 %

8. 空值處理

ISNULL:select ISNULL(english, 缺考) from Scroe 英語成績為空則顯示缺考

is [not] null:select * from Scroe where english is null 把英語成績為 null 的查詢出來

9. 聚合函數

SUM AVG COUNT MAX MIN

聚合函數一般和 group by 配合使用,having 可以對 group by 后再過濾

10. 完整查詢語句順序

select top 5 distinct * from T where field = fieldValue group by field2 having field2 5 order by field

1:from T 2:* 3:where 4:distinct 5:group by field2 6:having field2 5 7:order by 8:top 5

11. 常用函數

[類型轉換]:CAST(值 as 類型) CONVERT(類型, 值)

[字符串]:LTRIM(值) RTRIM(值) LOWER(值) UPPER(值) LEN(值) SUBSTRING(值, 開始位置, 長度)

[日期]:GETDATE() 取現在時間 DATEADD(datepart,number,date) 加時間 date+num DATEDIFF(datepart,startdate,enddate) 取時間差 end-start DATEPART(datepart,date)

取消 / 強制插入標識列:set identity_insert 表名 off/on

清空表:truncate table 表名

12. 復制表

  select * into 新表 from 原表 where 1=1

13. 聯合查詢

當 2 個結果集列數相同, 類型相同, 可以合并為一個結果集.

union: 會自動去除重復行

union all: 顯示所有行.

14. 連接查詢

分內連接和外連接

內連接:[inner ]join

select * from T1 inner join T2 on T1.ID2 = T2.ID

自連接是特殊的內連接, 樹結構存儲: select * from T as T1 join T as T2 where T2.PID = T1.ID

外連接:

left [outer] join: 左連接, 左表內容全部顯示. 右邊沒有的用 NULL 標示

right [outer] join: 右連接, 右表內容全部顯示. 左邊沒有的用 NULL 標示

full [outer] join: 全連接, 左右表內容全部顯示, 沒有的用 NULL 標示

15. 開窗函數

可以將多行合并為一個區來看待. 可以對一個區進行統計. 區別于 group by, 可以查詢所有列.

開窗函數:over() 里面可以跟 order by 和 partition by( 類似 group by)

排名:rank() over(order by id)

排序:row_number() over(order by id)

小計:avg(cost) over(partition by cost)(平均費用)

16. 視圖

本質封裝一個 sql 語句, 不會存儲任何數據.

創建: create view viewName as sql 語句

查看 sql:  exec sp_helptext viewName 

17. 事務

事務是保證多個操作同時成功或者同時失敗

begin tran(開始事務) commit tran(提交事務) rollback tran(回滾事務)

打開 / 關閉事務自動提交:set implicit_transactions off/on

18. 存儲過程

存儲過程本質是封裝一段代碼.

創建: create proc procName

@param1 int,@param2 int output

as

set @param2 =@param1 * @param1 

參數默認值: 存儲過程只有最后一個參數可以有默認值.

19. 索引

[聚焦索引]:

[非聚焦索引]:

create index indexName on tableName(fieldName)

20. 觸發器

對某個表的進行增刪改操作時, 自動執行一個操作. 有 2 種方式執行,1 是觸發源操作前替換執行 2 是觸發源操作后執行

臨時表:inserted deleted

2 種方式:after | instead of

3 種觸發源:insert update delete

創建:

create trigger triggerName

after insert

as begin

insert into T  select * from inserted

end

建議: 影響效率 謹慎使用

21. 游標

逐行的操作數據

對每條數據執行指定的

使用:(讓 T 表中每個人的年齡增 1)

declare c1 cursor for

select id,age from T

declare @id int

declare @age int

open c1

fetch c1 into @id,@age

while(@@FETCH_STATU = 0)

begin

set @age= 1 + @age

update T set age = @age where id = @id

fetch c1 into @id,@age

end

close c1

deallocate c1

以上是“SQL SERVER 基礎語法有哪些”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-19發表,共計2776字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 汶川县| 炎陵县| 大英县| 沐川县| 泗水县| 建瓯市| 阿合奇县| 潞西市| 瓮安县| 信宜市| 平山县| 福清市| 开江县| 建平县| 彭泽县| 安龙县| 建阳市| 乌拉特中旗| 横峰县| 安宁市| 福贡县| 漳平市| 璧山县| 清镇市| 南开区| 安庆市| 密山市| 资源县| 泾源县| 长治县| 嵩明县| 黑山县| 垫江县| 长兴县| 壶关县| 阳信县| 敖汉旗| 铜梁县| 北川| 朝阳区| 崇左市|