一、數據插入
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作用於組,從中選擇滿足條件的組。