一、數據添加
1、打開SSMS,附加數據庫(數據庫文件在自己的文件夾下面),并進行下面的設置:
(1)設置“部門信息”表中的“編號”為主鍵(SSMS)
首先建立好所需的數據庫庫,然后右擊建好的數據庫打開選項建立所需的“部門信息”表,找到部門信息表,右鍵,選擇設計,打開設計頁面填入所需的數據項,設計完后找到編號,右鍵選擇設置主鍵,完成設置編號為部門信息表的主鍵操作,保存,完成后如下圖:
(2)設置“銷售人員”表中的“工號”為主鍵,并設置為自動遞增(即設置成標識)。(SSMS)
右擊建好的數據庫打開選項建立所需的“銷售人員”表,找到銷售人員表,右鍵,選擇設計,打開設計頁面填入所需的數據項,設計完后找到工號,右鍵選擇設置主鍵,完成設置工號為銷售人員表的主鍵操作,保存,完成后如下圖:
主鍵設置完成后,在列屬性的選項中找到“表示規范”,然后將“標識規范”改為“是”,然后選擇“是標識”,最后將“標識增量”和“標識種子”都設置為1,到此自動遞增完成。
- 設置“銷售人員”表中的“部門號”與“部門信息”表中的“編號”聯系(主鍵表為“部門信息”表,外鍵表為“銷售人員”表),并設置成級聯刪除相關的記錄。(SSMS)
首先打開銷售人員表的設計頁面,找到表中的部門號,右鍵,選擇關系,進入關系添加頁面,添加關系,找到表和列規范展開,設置主鍵基表為部門信息,主鍵列為編號,外鍵基表為銷售人員,外鍵列為部門號到此主鍵外鍵關系設置完成。最后在關系屬性中找到INSERT和UPDATE規范,展開,將刪除規則由“不執行任何操作”改為為“級聯”到此要求全部完成,操作完成圖如下:
2、在“部門信息”中插入記錄如下(SSMS):
編號 | 名稱 | 經理 | 人數 |
1 | 計算機銷售部 | 王飛 | 20 |
選擇“部門信息表”右擊,然后選擇“編輯前200行”跳轉到設計頁面,最后在對應數據項中填入所要求的數據項,結果圖如下:
3、“銷售人員”表中插入記錄如下(SSMS):
部門號 | 姓名 | 地址 | 電話 |
1 | 王曉明 | 深圳羅湖 | 07552585920 |
2 | 吳小麗 | 江西南昌 | 13920999999 |
出現什么錯誤?什么原因造成?如何解決?
答:出現的錯誤如下
:
造成錯誤的原因:沒有理解外鍵的概念,涉及到外鍵時,一定有一個參照關系和被參照關系,也就是有一個參照表和被參照表。如在這創建兩個表“銷售人員表”表和“部門信息表”表,“銷售人員表”表中有一列Cno,CNO是“部門信息表”的外鍵,因此在向“銷售人員表”表中添加數據時,“銷售人員表”表中的數據就會參照“部門信息表”表中的數據,解決方案是:在向“銷售人員表”表中添加數據之前,一定要把“部門信息表”表中 的數據添加進去,否則“銷售人員表”表沒有可參照的數據。第二種解決方法:將“銷售人員表”表中的外建約束刪除。
修改方案:將“吳小麗”的數據項中的“部門號”中的“2”改為“1”(即將“銷售人員表”的數據修改為參考“部門信息表”的數據。效果圖如下:
4、“銷售人員”表中插入記錄如下(SSMS):
工號 | 部門號 | 姓名 | 地址 | 電話 |
3 | 1 | 王大明 | 廣州市 | 07552585920 |
出現什么錯誤?什么原因造成?如何解決?
答:出現的錯誤如下:
出現錯誤的原因:因為在設置頁面中將“工號”設置了自增長,因此“工號”是不可編輯的。解決方法是不為銷售人員設置工號,它會就會進行自我增長填入,或者可以利用運行”set identity_insert 銷售人員 ON”語句,在運行要插入語句,在執行”set identity_insert 銷售人員 OFF”語句,以此來插入此數據。
修改圖如下:
插入成功的圖:
5、打開查詢分析器,輸入如下的命令
use marketing
go
delete from 部門信息
go
delete from 銷售人員
(回答上面SQL命令的作用?)
答:此SQL命令的用于刪除數據庫marketing中的“部門信息表”中的所有數據以及“銷售人員表”中的所有數據。use marketing表明調用marketing數據庫中的數據,go的作用是分隔作用,表明此語句作用到此結束,“delete from 部門信息”表明刪除“部門信息”表的所有數據項,同理:“delete from 銷售人員”表明刪除“銷售人員”表的所有數據項且語句具有先后順序,一個語句的執行失敗不會影響另一條語句的執行。結果如下:
6、添加和刪除記錄
(1)添加如下的記錄(SSMS)
部門信息
編號 | 名稱 | 經理 | 人數 |
1 | 計算機銷售部 | 王飛 | 20 |
2 | 手機銷售部 | 張雨晨 | 30 |
銷售人員表
部門號 | 姓名 | 地址 | 電話 |
1 | 王曉明 | 深圳羅湖 | 07552585920 |
1 | 吳小麗 | 江西南昌 | 13920999999 |
(2)刪除部門信息表中的第一條記錄,然后打開看看銷售人員表中的記錄發生了什么變化?想一想為什么?(SSMS)
答:?刪除部門信息表中的第一條記錄,然后打開銷售人員表中的記錄發現銷售人員表中的數據全部都被刪除了。造成這個變化的原因:主鍵基表為部門信息,主鍵列為編號,外鍵基表為銷售人員,外鍵列為部門號,部門信息與銷售人員擁有此關系且設置了級聯刪除,而級聯刪除就是如果父表中的記錄被刪除,則子表中對應的記錄自動被刪除。因此,當作為父表的部門信息的編號1被刪除時,由于級聯刪除,作為子表的銷售人員中部門號為1的對應記錄也會被刪除。
刪除部門信息表中的第一條記錄后的效果圖如下:
二、采用SQL命令添加數據
(注意:1. 每次向查詢分析器中輸入命令,選擇后再執行;
2. 要先使用use marketing語句選定數據庫再執行其它語句。)
1、打開查詢分析器,輸入刪除“部門信息”和“銷售人員”表中所有記錄的SQL命令。(提示:采用DELETE?FROM語句)
(1)SQL命令(刪除所有記錄):
刪除代碼如下:
use?shujuku
delete?from?部門信息
go
delete?from?銷售人員
(2)在查詢分析器中,執行如下的命令:
use marketing
go
select * from 部門信息
select * from 銷售人員
2、采用SQL命令向“部門信息”表中添加如下的記錄:
編號 | 名稱 | 經理 | 人數 |
1 | 計算機銷售部 | 王飛 | 20 |
2 | 手機銷售部 | 張雨晨 | 30 |
3 | 打印機銷售部 | leon | 25 |
- SQL命令(添加記錄):
use?shujuku
go
INSERT?INTO?部門信息?(編號 ,名稱,?經理 ,人數)
VALUES('1',?'計算機銷售部',?'王飛','20')
INSERT?INTO?部門信息?(編號 ,名稱,?經理 ,人數)
VALUES('2',?'手機銷售部',?'張雨晨','30')
INSERT?INTO?部門信息?(編號 ,名稱,?經理 ,人數)
VALUES('3',?'打印機銷售部',?'Leon','25')
select?*?from?部門信息
運行結果如下:
(2)在查詢分析器中,輸入并執行如下的命令:
use marketing
go
select * from 部門信息
執行結果如下圖:
3、采用SQL命令向“銷售人員”表中添加如下的記錄:
部門號 | 姓名 | 地址 | 電話 |
1 | 王曉明 | 深圳羅湖 | 07552585920 |
2 | 吳小麗 | 江西南昌 | 13920999999 |
- SQL命令(添加記錄):
use?shujuku
go
INSERT?INTO?銷售人員(部門號,姓名,地址,電話)
VALUES('1',?'王曉明','深圳羅湖','07552585920')
INSERT?INTO?銷售人員(部門號,姓名,地址,電話)
VALUES('2',?'吳小麗','江西南昌','13920999999')
執行效果圖如下:
(2)在查詢分析器中,輸入并執行如下的命令:
use marketing
go
select * from 銷售人員
執行效果圖如下:
三、數據更新
采用SQL語句更新“銷售人員”表中“部門號”為2的記錄,更新它的“姓名”為“吳羽”,更新“地址”為“廣州天河”。
(1)SQL命令(更新記錄):
執行的代碼命令如下:
use?shujuku
go
UPDATE?銷售人員
SET?姓名='吳羽',地址='廣州天河'
WHERE?部門號='2'
執行的代碼效果圖如下:
(2)在查詢分析器中,輸入并執行如下的命令:
use marketing
go
select * from 銷售人員
執行效果圖如下:
四、刪除數據操作
采用SQL語句刪除“銷售人員”表中“姓名”為“吳羽”的銷售人員。
- SQL命令(刪除記錄):
執行的代碼命令為:
use?shujuku
go
delete?from?銷售人員
where?姓名='吳羽'
代碼命令執行效果圖如下:
(2)在查詢分析器中,輸入并執行如下的命令:
use marketing
go
select * from 銷售人員
執行效果圖如下:
五、分離數據庫并保存。(“shujuku”)
選擇所要分離的數據庫“shujuku”,右鍵,選擇任務,選擇分離,成功分離并保存。效果圖如下:
六、給“學生管理數據庫”按以下表格要求添加記錄。
1、附加數據庫。(“學生管理數據庫”)
?
2、插入數據。(要求用SQL語句操作)(注意:要先使用use學生管理數據庫 選定數據庫再執行其它語句。)
(1)學生信息表
學號 | 姓名 | 性別 | 出生日期 | 專業 | 所在系 | 聯系電話 |
14101 | 楊穎 | 女? | 1995-7-20 | 軟件 | 計算機 | 88297147 |
14102 | 方露露 | 女 | 1996-1-15 | 軟件 | 計算機 | 88297147 |
14103 | 俞奇軍 | 男 | 1996-2-20 | 軟件 | 計算機 | 88297151 |
14104 | 胡國強 | 男 | 1995-11-7 | 軟件 | 計算機 | 88297151 |
SQL命令(添加記錄):
?代碼命令如下:
USE?學生管理數據庫
INSERT?INTO?學生信息表(學號,姓名,性別,出生日期,專業,所在系,電話)
VALUES('14101','楊穎','女','1995-7-20','軟件','計算機','88297147')
INSERT?INTO?學生信息表(學號,姓名,性別,出生日期,專業,所在系,電話)
VALUES ('14102','方露露','女','1996-1-15','軟件','計算機','88297147')
INSERT?INTO?學生信息表(學號,姓名,性別,出生日期,專業,所在系,電話)
VALUES('14103','俞奇軍','男','1996-2-20','軟件','計算機','88297151')
INSERT?INTO?學生信息表(學號,姓名,性別,出生日期,專業,所在系,電話)
VALUES ('14104','胡國強','男','1995-11-7','軟件','計算機','88297151')
執行效果圖如下:
(2)課程信息表
課程號 | 課程名 | 教師 | 開課學期 | 學時 | 學分 |
101 | 計算機原理 | 陳紅 | 2 | 45 | 3 |
102 | 計算方法 | 王頤 | 3 | 45 | 3 |
103 | 操作系統 | 徐格 | 2 | 60 | 4 |
104 | 數據庫原理及應用 | 應對剛 | 3 | 75 | 5 |
SQL命令(添加記錄):
代碼命令如下:
USE?學生管理數據庫
INSERT?INTO?課程信息表?(課程號,課程名,教師,開課學期,學時,學分)
VALUES('101','計算機原理','陳紅','2','45','3')
INSERT?INTO?課程信息表?(課程號,課程名,教師,開課學期,學時,學分)
VALUES ('102','計算方法','王頤','3','45','3')
INSERT?INTO?課程信息表?(課程號,課程名,教師,開課學期,學時,學分)
VALUES ??('103','操作系統','徐格','2','60','4')
INSERT?INTO?課程信息表?(課程號,課程名,教師,開課學期,學時,學分)
VALUES('104','數據庫原理及應用','應對剛','3','75','5')
執行效果圖如下:
(3)成績信息表
學號 | 課程號 | 成績 |
14101 | 101 | 85 |
14101 | 102 | 87 |
14101 | 104 | 88 |
14102 | 101 | 58 |
14102 | 102 | 63 |
SQL命令(添加記錄):
代碼命令如下:
USE?學生管理數據庫
INSERT?INTO?成績信息表(學號,課程號,成績)
VALUES('14101','101','85')
INSERT?INTO?成績信息表(學號,課程號,成績)
VALUES('14101','102','87')
INSERT?INTO?成績信息表(學號,課程號,成績)
VALUES('14101','104','88')
INSERT?INTO?成績信息表(學號,課程號,成績)
VALUES('14102','101','58')
INSERT?INTO?成績信息表(學號,課程號,成績)
VALUES('14102','102','63')
執行效果圖如下:
3、打開查詢分析器,輸入并執行如下的命令
use 學生管理數據庫
go
select * from 學生信息表
select * from 課程信息表
select * from 成績信息表
答:代碼執行效果圖如下:
4、分離數據庫并保存。(“學生管理數據庫”)
選擇所要分離的數據庫“學生管理數據庫”,右鍵,選擇任務,選擇分離,成功分離并保存。效果圖如下: