1. 程式人生 > >資料庫前三章測試題

資料庫前三章測試題

 一.  請寫出資料庫分離和附加的步驟

    分離:右擊資料庫"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為主鍵,表中GradeIdGrade表中的GradeId為主外來鍵關聯):

 

Student表的資料:

Grade表結構(其中Grade Id為主鍵,並且是標識列):

 

Grade表的資料:

問題一:更改Student NoS1101009的學生記錄,將密碼修改為: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 Id1的記錄(根據表中資料分析,採用哪兩種方式刪除?)

     1、解除關係,右鍵刪除

    2、DELETE刪除