国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
SQL Server 2008 交互式SQL語言實例練習(xí)

數(shù)據(jù)庫學(xué)習(xí)初步

數(shù)據(jù)定義

()、基本表操作

先建立school數(shù)據(jù)庫,在school數(shù)據(jù)庫里做以下的操作。

1.建立基本表

1)創(chuàng)建學(xué)生表Student,由以下屬性組成: 學(xué)號SNOINT型,主碼),姓名SNAMECHAR型,長度為8,非空唯一),性別SEXCHAR型,長度為2),所在系DEPTNOINT型)。

 

2)創(chuàng)建課程表Course,由以下屬性組成:課程號CNOINT型),課程名CNAMECHAR型,長度為20,非空),授課教師編號TNOINT型),學(xué)分CREDITINT型)。其中(CNO,TNO)為主碼。

 

3)創(chuàng)建學(xué)生選課表SC,由以下屬性組成:學(xué)號SNO,課程CNO,成績GRADE。所有屬性均為INT型,其中(SNOCNO)為主碼。

 

4)創(chuàng)建教師表Teacher,由以下屬性組成:教師編號TNOINT型,主碼),教師姓名TNAMECHAR型,長度為8,非空),所在系DEPTNOINT型)。

 

5)創(chuàng)建系表Dept,由以下屬性:系號DEPTNOINT型,主碼),系名DNAMECHAR型,長度為20,非空)。

 

2.修改基本表

1)在Student表中加入屬性SAGE(INT)。

 

2)將Student表中的屬性SAGE類型改為SMALLINT型。

 

3.刪除基本表

1)在所有操作結(jié)束后刪除STUDENT表。

 

2)在所有操作結(jié)束后刪除COURSE表。

 

3)在所有操作結(jié)束后刪除SC表。

 

4)在所有操作結(jié)束后刪除TEACHER表。

 

5)在所有操作結(jié)束后刪除DEPT表。

 

 

()、索引操作

1.建立索引

1)在Student表上建立關(guān)于SNO的唯一索引stusno。

 

2)Course表上建立關(guān)于CNO升序的唯一索引coucno。

 

2.刪除索引

1)刪除Student表上的索引stusno。

 

2)刪除Course表上的索引coucno

 

()、視圖操作

1.建立視圖

在插入數(shù)據(jù)的Student基本表上為計算機(jī)科學(xué)與技術(shù)系的學(xué)生記錄建立一個視圖CS_STUDENT

 

2.刪除視圖

在操作結(jié)束后刪除視圖CS_STUDENT。

 

數(shù)據(jù)操作

()、更新操作

1.插入數(shù)據(jù)

1)向STUDENT表插入下列數(shù)據(jù):

1001,張?zhí)?span lang='EN-US'>,,10,20

1002,李蘭,,10,21

1003,陳銘,,10,21

1004,劉茜,,20,21

1005,馬朝陽,,20,22

 

2)向COURSE表插入下列數(shù)據(jù):

1,數(shù)據(jù)結(jié)構(gòu),101,4

2,數(shù)據(jù)庫,102,4

3,離散數(shù)學(xué),103,4

4,C語言程序設(shè)計,101,2

 

3)向SC表插入下列數(shù)據(jù):

1001,1,80

1001,2,85

1001,3,78

1002,1,78

1002,2,82

1002,3,86

1003,1,92

1003,3,90

1004,1,87

1004,4,90

1005,1,85

1005,4,92

 

4)向TEACHER表插入下列數(shù)據(jù):

101,張星,10

102,李珊,10

103,趙天應(yīng),10

104,劉田, 20

 

5)向DEPT表插入下列數(shù)據(jù):

10,計算機(jī)科學(xué)與技術(shù)

20,信息

 

2.修改數(shù)據(jù)

將張星老師數(shù)據(jù)結(jié)構(gòu)課的學(xué)生成績?nèi)考?span lang='EN-US'>2

3.刪除數(shù)據(jù)

刪除馬朝陽同學(xué)的所有選課記錄

 

()、查詢操作

1.單表查詢

1)查詢所有學(xué)生的信息。

2)查詢所有女生的姓名。

3)查詢成績在8089之間的所有學(xué)生選課記錄,查詢結(jié)果按成績的降序排列。

4)查詢各個系的學(xué)生人數(shù)。

 

2.連接查詢

查詢信息系年齡在21歲以下(含21歲)的女生姓名及其年齡。

 

3.嵌套查詢

1)查詢修課總學(xué)分在10學(xué)分以下的學(xué)生姓名。

2)查詢各門課程取得最高成績的學(xué)生姓名及其成績。

3)查詢選修了1001學(xué)生選修的全部課程的學(xué)生學(xué)號。

4)查詢選修了張星老師開設(shè)的全部課程的學(xué)生姓名。

 

 

出現(xiàn)的問題及解決方案:

1.在創(chuàng)建基本表時是否可以缺省主碼?

2.對基本表進(jìn)行修改,執(zhí)行ALTER TABLE Student MODIFY Sage SMALLINT顯示執(zhí)行失敗。

 

 

 

自己做的答案:

(一)  基本表操作

建立基本表

1)     建立Student

命令行操作:

CREATE TABLE Student

( SNO INTNOTNULLPRIMARY KEY,

  SNAME CHAR(8)NOTNULL,

  SEX CHAR(2)NOTNULL,

  DEPTNO INT NOT NULL)

 

2)     建立Course

命令行操作:

CREATE TABLE Course

(

    CNO INT NOT NULL,

    CNAME CHAR(20)NOTNULL,

    TNO INT NOT NULL,

    CREDIT INT NOT NULL,

    PRIMARY KEY(CNO, TNO)

)

3)     建立SC

命令行操作:

CREATE TABLE SC

(

   SNO INT NOT NULL,

   CNO INT NOT NULL,

   GRAGE INT NOT NULL,

   PRIMARY KEY(SNO, CNO)

)

4)     建立Teacher

命令行操作:

CREATE TABLE Teacher

( TNO INTNOTNULL,

  TNAME CHAR(8)NOTNULLPRIMARY KEY,

  DEPTNO INT NOT NULL

)

5)     建立Depth

命令行操作:

 CREATETABLE Dept

(

  DEPTNO INT NOT NULL PRIMARYKEY,

  DNAME CHAR(20)NOTNULL

)

2.修改基本表

1)在Student表中加入屬性SAGE(INT)。

命令行操作:

ALTER TABLE Student ADD SAGEINT;

2)將Student表中的屬性SAGE類型改為SMALLINT型。

     命令行操作:

         ALTERTABLEStudentalter column SAGESMALLINT;

 

 

3.刪除基本表

1)在所有操作結(jié)束后刪除STUDENT表。

命令行操作:

DROP TABLE Student;

2)在所有操作結(jié)束后刪除COURSE表。

DROP TABLE Course;

3)在所有操作結(jié)束后刪除SC表。

DROP TABLE SC;

4)在所有操作結(jié)束后刪除TEACHER表。

DROP TABLETeacher;

5)在所有操作結(jié)束后刪除DEPT表。

DROP TABLE Dept;

 

()、索引操作

1.建立索引

1)在Student表上建立關(guān)于SNO的唯一索引stusno。

CREATE UNIQUEINDEXstusnoON Student(SNO);

2)Course表上建立關(guān)于CNO升序的唯一索引coucno。

CREATE UNIQUE INDEX coucno ONCourse(CNO);

 

2.刪除索引

1)刪除Student表上的索引stusno

DROP INDEXStudent.stusno;

2)刪除Course表上的索引coucno。

DROP INDEX Course.coucno;

 

()、視圖操作

1.建立視圖

在插入數(shù)據(jù)的Student基本表上為計算機(jī)科學(xué)與技術(shù)系的學(xué)生記錄建立一個視圖CS_STUDENT

 

CREATE VIEWCS_STUDENT

  AS

  SELECT SNO,SNAME,SEX,DEPTNO,SAGE

  FROM Student

  WHERE DEPTNO=10

  WITH CHECK OPTION

2.刪除視圖

在操作結(jié)束后刪除視圖CS_STUDENT。

 DROPVIEWCS_STUDENT;

 

二、數(shù)據(jù)操作

()、更新操作

1.插入數(shù)據(jù)

1)向STUDENT表插入下列數(shù)據(jù):

1001,張?zhí)?span>,男,10,20

1002,李蘭,,10,21

1003,陳銘,,10,21

1004,劉茜,,20,21

1005,馬朝陽,,20,22

命令行操作:

INSERT INTOStudent

VALUES(1001,'張?zhí)?/span>','',10,20);

INSERT INTOStudent

VALUES(1002,'李蘭','',10,21);

INSERT INTOStudent

VALUES(1003,'陳銘','',10,21);

INSERT INTOStudent

VALUES(1004,'劉茜','',20,21);

INSERT INTOStudent

VALUES(1005,'馬朝陽','',20,22);

2)向COURSE表插入下列數(shù)據(jù):

1,數(shù)據(jù)結(jié)構(gòu),101,4

2,數(shù)據(jù)庫,102,4

3,離散數(shù)學(xué),103,4

4,C 語言程序設(shè)計,101,2

命令行操作:

INSERT INTOCourse

VALUES(1,'數(shù)據(jù)結(jié)構(gòu)',101,4);

INSERT INTOCourse

VALUES(2,'數(shù)據(jù)庫',102,4);

INSERT INTOCourse

VALUES(3,'離散數(shù)學(xué)',103,4);

INSERT INTOCourse

VALUES(4,'C語言程序設(shè)計',101,2);

 

3)向SC表插入下列數(shù)據(jù):

1001,1,80

1001,2,85

1001,3,78

1002,1,78

1002,2,82

1002,3,86

1003,1,92

1003,3,90

1004,1,87

1004,4,90

1005,1,85

1005,4,92

命令行操作:

INSERT INTOSC(SNO,CNO,GRAGE)

SELECT 1001,1,80union

SELECT 1001,2,85union

SELECT 1001,3,78union

SELECT 1002,1,78union

SELECT 1002,2,82union

SELECT 1002,3,86union

SELECT 1003,1,92union

SELECT 1003,3,90union

SELECT 1004,1,87union

SELECT 1004,4,90union

SELECT 1005,1,85union

SELECT 1005,4,92

4)向TEACHER表插入下列數(shù)據(jù):

101,張星,10

102,李珊,10

103,趙天應(yīng),10

104,劉田, 20

命令行操作:

INSERT INTOTeacher(TNO,TNAME,DEPTNO)

SELECT 101,'張星',10union

SELECT 102,'李珊',10union

SELECT 103,'趙天應(yīng)',10union

SELECT 104,'劉田', 20

 

5)向DEPT表插入下列數(shù)據(jù):

10,計算機(jī)科學(xué)與技術(shù)

20,信息

命令行操作:

INSERT INTODept(DEPTNO,DNAME)

SELECT 10,'計算機(jī)科學(xué)與技術(shù)'union

SELECT 20,'信息'

 

2.修改數(shù)據(jù)

將張星老師數(shù)據(jù)結(jié)構(gòu)課的學(xué)生成績?nèi)考?span>2

UPDATE SC

SET GRAGE=GRAGE + 2

WHERE CNOIN

      (SELECTCNO

       FROMCourse

       WHERECNAME='數(shù)據(jù)結(jié)構(gòu)'andcnoin

       (SELECTcno

        FROM Teacher

        WHERE TNAME='張星')

        )

3.刪除數(shù)據(jù)

刪除馬朝陽同學(xué)的所有選課記錄

DELETE

FROM SC

WHERE SNO =1005

()、查詢操作

1.單表查詢

1)查詢所有學(xué)生的信息。

SELECT SNO,SNAME,SEX,DEPTNO,SAGE

FROM Student;

 

2)查詢所有女生的姓名。

SELECT SNAME

FROM Student

WHERE SEXIN('');

 

3)查詢成績在8089之間的所有學(xué)生選課記錄,查詢結(jié)果按成績的降序排列。

SELECT CNO

FROM SC

WHERE GRAGE BETWEEN 80 AND 89;

4)查詢各個系的學(xué)生人數(shù)。

SELECT DISTINCTDEPTNO

FROM Dept;

2.連接查詢

查詢信息系年齡在21歲以下(含21歲)的女生姓名及其年齡。

SELECT SNAME,SAGE

FROM Student,Dept

WHERE DNAME = '信息'ANDSAGE<> 21 AND SEX= '';

3.嵌套查詢

1)查詢修課總學(xué)分在10學(xué)分以下的學(xué)生姓名。

SELECT SNAME

FROM Student,Course

WHERE CREDIT 10;

2)查詢各門課程取得最高成績的學(xué)生姓名及其成績。

SELECT SNAME,GRAGE,

FROM Student,SC

WHERE Student.SNO=SC.SNOANDGRAGEIN

       (SELECTMAX(GRAGE)

        FROM SC

        GROUP BYCNO);

3)查詢選修了1001學(xué)生選修的全部課程的學(xué)生學(xué)號。

 

SELECT DISTINCTSNO

FROM SCSCX

WHERE SNO!= 1001 AND NOT EXISTS

    (SELECT*

    FROM SCSCY

    WHERE SCY.SNO = 1001 AND

       NOT EXISTS

       (SELECT*

       FROM SCSCZ

       WHERE SCZ.SNO = SCX.SNOAND

             SCZ.CNO= SCY.CNO))

4)查詢選修了張星老師開設(shè)的全部課程的學(xué)生姓名。

 

SELECT SNAME

FROM Student

WHERE SNOIN

    (SELECTSNO

     FROMSC

     WHERECNOIN

       (SELECTCNO

        FROM Course

        WHERE TNO IN

           (SELECTTNO

           FROM Teacher

           WHERE TNAME='張星')

           )

       )

 

出現(xiàn)的問題及解決方案:

1.在創(chuàng)建基本表時是否可以缺省主碼?

解:可以

2.對基本表進(jìn)行修改,執(zhí)行ALTER TABLE Student MODIFY Sage SMALLINT顯示執(zhí)行失敗。

解:將MODIFY更改為alter column就可以解決。

 

 

 

 

 

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
SQL語句匯總
第四章、SQL Server數(shù)據(jù)庫查詢大全(單表查詢、多表連接查詢、嵌套查詢、關(guān)聯(lián)子查詢、拼sql字符串的查詢、交叉查詢)
5-2
SQL多表連接查詢(詳細(xì)實例)
SQL Server表的創(chuàng)建及索引的控制
sql server 增刪改(查太多了)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服