天天看點

工作經常使用的SQL整理,實戰篇(一)

工作經常使用的SQL整理,實戰篇,位址一覽:

目錄概覽:

1.資料庫

2.表

3.臨時表

4.索引和限制

5.範式

6.增删改查

7.連接配接

8.分組和排序

9.通配符

10.視圖

11.存儲過程和事務

12.遊标

13.觸發器

14.作業

  自己親手編寫的一些常用的SQL,希望對大家有用喔,廢話不多說了,直接入正題~

  建立資料庫

  删除資料庫

建立表

  删除表

  清空表

truncate table Tse_User    清除表中所有資料,下次插入編号從1開始

delete from Tse_User      清除表中所有資料,但下次插入編号從原有編号+1開始

生成臨時表,插入資料,将員工姓名全部列印出來

  檢視表結構及表附加屬性

  SP_HELP Tse_User

聚集索引确定表中資料的實體順序。聚集索引類似于電話簿,後者按姓氏排列資料。由于聚集索引規定資料在表中的實體存儲順序,是以一個表隻能包含一個聚集索引。但該索引可以包含多個列(組合索引),就像電話簿按姓氏和名字進行組織一樣。

非聚集索引,該索引中索引的邏輯順序與磁盤上行的實體存儲順序不同。一個表可以建立多個非聚集索引。

建立聚集索引

CREATE UNIQUE CLUSTERED INDEX [PK_Tse_ID] ON [dbo].[Tse_User] 

(  --唯一聚集索引

[ID] ASC

)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF,

 ONLINE = OFF,ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

GO

建立非聚集索引

CREATE UNIQUE NONCLUSTERED INDEX [IX_Tse_UserID] ON [dbo].[Tse_User] 

(  --唯一非聚集索引

[UserID] ASC

)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, 

ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

限制

alter table Tse_User

add constraint CS_UserName check (len(Username) > 3),

constraint CS_Email check (charindex('@', Email) > 0)

  第一範式1NF

  第一範式需滿足兩個條件:

  1)每個資料行必須包含具有原子性(即不可再分)的值;

  2)每個資料行必須包含一個獨一無二的值,即主鍵。

  舉例:假如客戶表中存在位址列,如果經常需要按城市歸類,那麼,應該位址列拆分為省份,城市,縣,街道位址等列。

  第二範式2NF

  第二範式需要確定資料庫表中的每一列都和主鍵相關,而不能隻與主鍵的某一部分相關(主要針對聯合主鍵而言)。也就是說在一個資料庫表中,一個表中隻能儲存一種    資料,不可以把多種資料儲存在同一張資料庫表中。

  舉例:比如常用的選課表中,以學号和課程号為聯合主鍵,不能将課程名,學分等課程相關資訊寫入選課表,因為他們隻與主鍵的一部分(課程号)相關。

  第三範式3NF

  第三範式需要確定資料表中的每一列資料都和主鍵直接相關,而不能間接相關。

  舉例:訂單表中以訂單号為主鍵,使用者真實姓名和郵箱等資訊與使用者有關,與訂單沒有直接關系,是以,使用者真實姓名和郵箱等不能放到訂單表中。

  

  如果您有什麼問題,歡迎在下面評論,我們一起讨論,謝謝~

  如果您覺得還不錯,不妨點下右下方的推薦,有您的鼓勵我會繼續努力的~