最近在學SQL SERVE收集了一些資料看看

一、數據插入

1、語法

INSERT INTO 表名 [<屬性列>]

VALUES(參數列表)

註解:

①沒有說明屬性列,即要給出所有的列的值

②不確定的列,可以設置爲null。(在允許爲空的情況下)

2、實例

①在“人事管理系統”中,新增一個員工信息(員工編號‘100508’、員工姓名‘小龍女’、所在部門編號‘10001’、籍貫‘河南’)

insert into員工信息(員工編號,員工姓名,所在部門編號,籍貫)

values('100508','小龍女','10001','河南')

②將“人事管理系統”數據庫的“員工信息”表中籍貫爲“河南”並且所在部門編號爲”10001”數據插入到“新員工信息”表中。

insert into新員工信息(員工編號,員工姓名,所在部門編號)

select 員工編號,員工姓名,所在部門編號from員工信息

where 籍貫='河南'and所在部門編號='10001'

 

二、數據更新

1、語法

UPDATE表名 SET 列名=表達式

[WHERE<條件>]

2、實例

①在“人事管理系統”數據庫“部門信息”表中,將部門的員工人數設置爲10

update 部門信息 set 員工人數=10

②在“人事管理系統”數據庫“員工信息”表中,將文化程度爲“大專”,並且在“2005-05-01”到“2007-05-01”之間入職的所有員工調動到編號爲“10006”的部門去

update 員工信息set所在部門編號='10006'

where 入職時間 between '2005-05-01' and '2007-05-01' and文化程度='大專'

③在“人事管理系統”數據庫中對部門進行了重組和調整,原來編號爲10006的部門名稱變爲“市場開發部”,人數也調整爲20人

update 部門信息set 部門名稱='市場開發部',員工人數=20

where 部門編號=10006

 

三、數據刪除

1、語法

(1)刪除表的記錄,保留表的結構,寫日誌可以恢復

DELETEFROM 表名

[WHERE<條件>]

(2)刪除表的所有記錄,保留表的結構,不寫日誌,無法恢復,速度快

TRUNCATETABLE 表名

2、實例

①在“人事管理系統”數據庫中,編號爲“100503”的新員工升級爲正式員工,需要在“新員工信息”表中刪除他的記錄。

delete from 新員工信息 where 員工編號='100503'

②在“人事管理系統”數據庫中,需要刪除5%的員工信息

delete top (5)percentfrom員工信息

③在“人事管理系統”數據庫中,刪除“新員工信息”表中的所有記錄

truncate table新員工信息

delete from 新員工信息

④將學生“陳霞”所在班級的其他學生並且成績不合格的學生成績刪除

deletefrom 成績表

where  成績<60and學號in(

select 學號from學生信息

where 班級編號=(select班級編號from學生信息where姓名='陳霞'))

 

四、數據查詢

1、語法

SELECT[ALL|DISTINCT] <目標列表達式>

FROM<表名|視圖名>

WHERE<條件表達式>

GROUPBY <列名>

HAVING<條件表達式>

ORDERBY <列名> [ASC|DESC]

2、註解

(1)SELECT [ALL|DISTINCT] <目標列表達式>

①不僅可以是表中的屬性列,也可以是表達式,還可以是字符串常量、函數。

②用戶可以通過指定別名來改變查詢結果的列標題。

③ALL|DISTINCT

l  DISTINCT:去掉結果表中重複行。

l  ALL:保留結果表中取值重複的行。如果沒有指定DISTINCT關鍵字,則缺省爲ALL。

④查詢全部列:可以使用“*”

(2)WHERE <條件表達式>

①比較(=等於 >大於 <小於 >=大等於 <=小等於!=或<>不等於!>不大於!<不小於)

②確定範圍(BETWEEN AND,NOT BETWEEN AND)

③確定集合(IN,NOT IN)

④字符匹配(LIKE,NOT LIKE)

l  %:代表任意長度(長度可以爲0)的字符串

l  _:代表任意單個字符。

⑤空值(IS NULL,IS NOT NULL)

⑥多重條件(AND,OR,NOT)

(3)ORDER BY <列名> [ASC|DESC]

l  DESC:降序

l  ASC:升序,缺省爲ASC

(4)聚集函數

COUNT([ALL|DISTINCT]*)

統計元組個數

COUNT([ALL|DISTINCT]<列名>)

統計一列中的個數

SUM([ALL|DISTINCT]<列名>)

計算一列值的總和

AVG([ALL|DISTINCT]<列名>)

計算一列值的平均值

MAX([ALL|DISTINCT]<列名>)

求一列值中的最大值

MIN([ALL|DISTINCT]<列名>

求一列值中的最小值

(5)GROUP BY <列名> HAVING <條件表達式>

①將查詢結果按某一列或多列的值分組,值相等的爲一組。

②除了聚集函數,其他都要分組。

③如果分組後,還要求一定的條件對這些組進行篩選,最終只輸出滿足條件的組,可以使用 HAVING<條件表達式>。

④WHERE子句的作用於基本表或試圖,從中選擇滿足條件的元組。HAVING作用於組,從中選擇滿足條件的組。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章