資料庫前三章測試題
一. 請寫出資料庫分離和附加的步驟
分離:右擊資料庫"MySchool",在彈出的快捷選單中選擇“任務”—“分離”選項
附加:右擊“資料庫”—“附加”
二. 請寫出資料庫匯出SQL指令碼的步驟
右擊MySchool—“任務”—“生成指令碼”
三. 請寫出SQL Server的四種完整性約束
1.實體完整性約束:不允許出現相同記錄的資料
2.域完整性約束:對欄位進行限定,不得插入不符合限定的資料
3.引用完整性:表與表之間的關係
4.自定義完整性約束:開發人員自己設定對欄位的約束,不允許出現不符合約束的資料
四. 如何設定表的主鍵和標識列
主鍵:
標識列:
五. 請寫出主外來鍵關係確立後操作主資料的注意事項
1、當表中沒有對應的記錄時,不能將記錄新增到子表
2、不能更改主表中的值而導致子表中的記錄孤立
3、子表存在與主表對應的記錄,不能從主表種刪除該行
4、刪除主表前,先刪子表
六. 請寫出使用SQL插入資料時的注意事項
1.列的數量和值列表的數量要保持一致
2.插入資料的資料型別藥保持一致
3.不能為表中的標識列賦值
4.列不允許為空時必須插入值
5.在插入資料時一定要保證資料符合CHECK約束
6.具有預設值的列可以使用DEFAULT代替,代表預設值
七. 請寫出增刪改SQL語句的基本語法
增:INSERT [INTO] 表名 (列名) VALUES (值列表)
刪:DELETE FROM 表名 WHERE 表中唯一標識(當兩張表有關聯時,刪除資料需要保證資料不衝突)
改:UPDATE 表名 SET 列名1=更新值1,列名2=更新值2 WHERE 表中唯一標識
八. 請寫出新增多行資料的三種方式
--1、插入多行資料
--從from的表中拿出select的列資料插入到into的表中
--表必須建立
INSERT INTO AddressList(StudentName,Address,Email)
SELECT StudentName,Address,Email
FROM Student
--2、插入多行資料
--表自動建立
SELECT Student.StudentName,Student.Address,Student.Email
INTO AddressList
FROM Student
--3、插入多行資料
--表必須建立
INSERT INTO AddressList(StudentName,Address,Email)
SELECT '馬1','北京','[email protected]' UNION
SELECT '馬2','北京','[email protected]' UNION
SELECT '馬3','北京','[email protected]' UNION
SELECT '馬4','北京','[email protected]' UNION
SELECT '馬5','北京','[email protected]' UNION
SELECT '馬6','北京','[email protected]'
九. 假設My School資料庫有如下Student表和Grade表
Student表結構(其中Student No為主鍵,表中GradeId和Grade表中的GradeId為主外來鍵關聯):
Student表的資料:
Grade表結構(其中Grade Id為主鍵,並且是標識列):
Grade表的資料:
問題一:更改Student No為S1101009的學生記錄,將密碼修改為:p w [email protected],將年級編號修改為:4
UPDATE Student SET LoginPwd='[email protected]',Gradeld=4 WHERE Student No='s1101009'
問題二:向學生表中新增一條記錄
INSERT [INTO] Student VALUES('1','a','張三','男',1,'a','a','@')
問題三:向年級表中新增一條記錄
INSERT [INTO] Grade VALUES ('6','112')
問題四:刪除學生表中編號為S1101007的記錄
DELETE FROM Student WHEREStudentNo='s1101007'
問題五:刪除Grade表中Grade Id為1的記錄(根據表中資料分析,採用哪兩種方式刪除?)
1、解除關係,右鍵刪除
2、DELETE刪除