數(shù)據(jù)庫(kù)第3章上機(jī)報(bào)告.doc_第1頁(yè)
數(shù)據(jù)庫(kù)第3章上機(jī)報(bào)告.doc_第2頁(yè)
數(shù)據(jù)庫(kù)第3章上機(jī)報(bào)告.doc_第3頁(yè)
數(shù)據(jù)庫(kù)第3章上機(jī)報(bào)告.doc_第4頁(yè)
數(shù)據(jù)庫(kù)第3章上機(jī)報(bào)告.doc_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

實(shí)驗(yàn)二實(shí)習(xí)報(bào)告內(nèi)容:(1)連接后打開左面的樹狀表, Microsoft Sql Server-SQL Server組-LOCAL 下面有數(shù)據(jù)庫(kù),數(shù)據(jù)轉(zhuǎn)換服務(wù),管理,復(fù)制,安全性等等,右擊數(shù)據(jù)庫(kù),選擇新建數(shù)據(jù)庫(kù)(2開始-MS SQL Serve -查詢分析器(或在企業(yè)管理器界面中:開始-查詢分析器)-在查詢分析器下拉選擇框中,選中GrandeManager,使之成為當(dāng)前操作的數(shù)據(jù)庫(kù),在編輯框中鍵入SQL語(yǔ)句創(chuàng)建Worker表思考題:1:三種;主數(shù)據(jù)文件的后綴是mdf;次數(shù)據(jù)文件的后綴是ndf;日志文件的后綴是ldf。2:1)字符型數(shù)據(jù):1.char(n):長(zhǎng)度為n的固定長(zhǎng)度字符串,其中n最大可以是8000;2.varchar(n):表示一個(gè)長(zhǎng)度為n的固定長(zhǎng)度字符串,其中n最大可以達(dá)到800。 3.text:如果字符長(zhǎng)度超過(guò)8000個(gè),則可使用text數(shù)據(jù)類型,長(zhǎng)度達(dá)2GB。2)整型數(shù)據(jù)類型:1.Bigint:8個(gè)字節(jié),64位 2.Int:4個(gè)字節(jié),32位 3.Smallint:2個(gè)字節(jié),16位 3.Tinyint:1個(gè)字節(jié),8位3)精確數(shù)據(jù)類型:decinal和numeric4)浮點(diǎn)數(shù)據(jù)類型:1.float:7位有效數(shù)字,4個(gè)字節(jié)或15位有效數(shù)字,8個(gè)字節(jié)2.Real:4個(gè)字節(jié)5)貨幣型數(shù)據(jù)類型:1.money 2.smallmoney6)日期時(shí)間型數(shù)據(jù)類型:1.Datetime:8個(gè)字節(jié) 2.Smalldatetime:4個(gè)字節(jié)7)統(tǒng)一字符數(shù)據(jù)類型8) 布爾數(shù)據(jù)類型實(shí)驗(yàn)三:CREATE TABLE Student(Sno Char(7)NOT NULL UNIQUE,Sname VarChar(20)NOT NULL,Ssex Char(2)NOT NULL,Sage Smallint NOT NULL,Clno Char(5) Not NULL);INSERT INTO StudentVALUES(2000101, 李勇, 男, 20, 00311);INSERT INTO StudentVALUES(2000102, 劉詩(shī)晨, 女, 19, 00311);INSERT INTO StudentVALUES(2000103, 王一鳴, 男, 20, 00312);INSERT INTO StudentVALUES(2000104, 張婷婷, 女, 21, 00312);INSERT INTO StudentVALUES(2001101, 李勇敏, 女, 19, 01311);INSERT INTO StudentVALUES(2001102, 賈向東, 男, 22, 01311);INSERT INTO StudentVALUES(2001103, 陳寶玉, 男, 20, 01311);INSERT INTO StudentVALUES(2001104, 張逸凡, 男, 21, 01311);CREATE TABLE Course(Cno Char(1)NOT NULL,Cname VarChar(20)NOT NULL,Credit Smallint NOT NULL);INSERT INTO CourseVALUES(1, 數(shù)據(jù)庫(kù), 4);INSERT INTO CourseVALUES(2, 離散數(shù)學(xué), 3);INSERT INTO CourseVALUES(3, 管理信息系統(tǒng), 2);INSERT INTO CourseVALUES(4, 操作系統(tǒng), 4);INSERT INTO CourseVALUES(5, 數(shù)據(jù)結(jié)構(gòu), 4);INSERT INTO CourseVALUES(6, 數(shù)據(jù)處理, 2);INSERT INTO CourseVALUES(7, C語(yǔ)言, 4);CREATE TABLE Class(Clno Char(5) NOT NULL,Speciality VarChar(20) NOT NULL,Inyear Char(4) NOT NULL,Number Integer NOT NULL,Monitor Char(7) NOT NULL,);INSERT INTO ClassVALUES(00311, 計(jì)算機(jī)軟件, 2000, 120, 2000101);INSERT INTO ClassVALUES(00312, 計(jì)算機(jī)應(yīng)用, 2000, 140, 2000103);INSERT INTO ClassVALUES(01311, 計(jì)算機(jī)軟件, 2001, 220, 2001103);CREATE TABLE Grade(Sno Char(7),Cno Char(1),Gmark Numeric(4,1);INSERT INTO GradeVALUES(2000101, 1, 92);INSERT INTO GradeVALUES(2000101, 3, 88);INSERT INTO GradeVALUES(2000101, 5, 86);INSERT INTO GradeVALUES(2000102, 1, 78);INSERT INTO GradeVALUES(2000102, 6, 55);INSERT INTO GradeVALUES(2000103, 3, 65);INSERT INTO GradeVALUES(2000103, 6, 78);INSERT INTO GradeVALUES(2000103, 5, 66);INSERT INTO GradeVALUES(2000104, 1, 54);INSERT INTO GradeVALUES(2000104, 6, 83);INSERT INTO GradeVALUES(2001101, 2, 70);INSERT INTO GradeVALUES(2001101, 4, 65);INSERT INTO GradeVALUES(2001102, 2, 80);INSERT INTO GradeVALUES(2001102, 4, 90);INSERT INTO GradeVALUES(2000103, 1, 83);INSERT INTO GradeVALUES(2000103, 2, 76);INSERT INTO GradeVALUES(2000103, 4, 56);INSERT INTO GradeVALUES(2000103, 7, 88);11.alter table Studentadd Nation varchar(20);alter table Studentdrop column Nation;/ 刪除新增的屬性Nationinsert into Gradevalues(2001110,3,80);/ 向成績(jī)表中插入記錄(2001110,3,80)update Gradeset Gmark = 70where Sno = 2001110;/ 將學(xué)號(hào)為“”的學(xué)生的成績(jī)修改為分delete from Gradewhere Sno = 200110;/ 刪除學(xué)號(hào)為“”的學(xué)生的成績(jī)記錄create index IX_Classon Student(Clno);/ 在學(xué)生表的Clno屬性上創(chuàng)建一個(gè)名為IX_Class的索引,以班級(jí)號(hào)的升序排序 drop index Student.IX_Class;/ 刪除IX_Class索引思考題:1:規(guī)定相應(yīng)的不能為空實(shí)驗(yàn)四:select distinct Cnofrom Grade;/ 找出所有被學(xué)生選修了的課程號(hào) select*from Studentwhere Clno = 01311 and Ssex = 女;/ 找出班女學(xué)生的個(gè)人信息 select Sname, Ssex, 2016-Sage as Year from Student where Clno = 01311 or Clno = 01312; /找出班和班的學(xué)生姓名和、性別、出生年份 select* from Student where Sname like 李% /找出姓李的學(xué)生的個(gè)人信息 select Number from Class where Clno in (select Clno from Student where Sname = 李勇);/ 找出李勇所在班級(jí)的學(xué)生人數(shù)select AVG(Gmark) as 平均成績(jī), MAX(Gmark) as 最高分, MIN(Gmark) as 最低分from Gradewhere Cno in (select Cnofrom Coursewhere Cname = 操作系統(tǒng));/ 找出課程名為操作系統(tǒng)的平均成績(jī),最高分,最低分select count (distinct Sno) as 學(xué)生人數(shù)from Grade/選修了課程的學(xué)生人數(shù)select count (distinct Sno) as 學(xué)生人數(shù)from Gradewhere Cno in (select Cno from Coursewhere Cname = 操作系統(tǒng));/ 選修了操作系統(tǒng)的學(xué)生人數(shù) SELECT Sname 學(xué)生姓名 FROM(SELECT * FROM StudentWHERE Clno in(SELECT Clno FROM ClassWHERE Speciality=計(jì)算機(jī)軟件 AND Inyear=2000) ) ruanjianWHERE ruanjian.Sno not in(SELECT DISTINCT Sno FROMGrade)with ruanjian as(SELECT Sno,SnameFROM Student join Classon Student.Clno=Class.ClnoWHERE Class.Speciality=計(jì)算機(jī)軟件 and Class.Inyear=2000)SELECT Sname 學(xué)生姓名 FROM ruanjianWHERE not exists(SELECT * FROM GradeWHERE ruanjian.Sno=Grade.Sno);/ 找出級(jí)計(jì)算機(jī)軟件班的成績(jī)?yōu)榭盏膶W(xué)生姓名2、不對(duì),聚合函數(shù)不應(yīng)該出現(xiàn)在where語(yǔ)句中,除非該聚合位于HAVING 子句或選擇列表所包含的子查詢中,并且要對(duì)其進(jìn)行聚合的列是外部引用思考題:如果遇到子查詢,就基本上都需要?jiǎng)e名.或者認(rèn)為實(shí)際表名寫起來(lái)太麻煩時(shí),可以用一個(gè)字母的別名來(lái)代替實(shí)驗(yàn)五: select*from Studentwhere Sname李勇 and Clno in(SELECT Clnofrom Studentwhere Sname = 李勇);/ 找出和李勇在同一個(gè)班級(jí)的學(xué)生的信息 select*from Studentwhere Sname李勇 and exists(select*from Gradewhere Student.Sno = Grade.Sno and Grade.Cno in(select Cnofrom Gradewhere Sno in(select Snofrom Studentwhere Sname = 李勇)/ 找出所有與學(xué)生李勇有相同選修課程的學(xué)生信息select*from Studentwhere Sage (select Sagefrom Studentwhere Sname = 李勇)/ 找出年齡介于學(xué)生李勇和歲之間的學(xué)生信息 select Sno as 學(xué)號(hào), Sname as 姓名from Studentwhere exists(select*from Grade where Cno in(Select Cno from Coursewhere Cname = 操作系統(tǒng)) ) /選修了課程是操作系統(tǒng)的學(xué)生學(xué)號(hào)和姓名 select Sname as 姓名from Studentwhere not exists(select*from Gradewhere Student.Sno = Grade.Sno and Cno = 1);/ 找出沒(méi)有選修號(hào)課程的所有學(xué)生姓名 select Sname as 姓名from Studentwhere not exists(select Cno from Courseexceptselect Cnofrom Gradewhere Student.Sno = Grade.Sno)/ 找出選修了全部課程的學(xué)生姓名select Sno as 學(xué)號(hào), Gmark as 成績(jī)from Gradewhere Cno = 3order by Gmark desc /查詢選修了號(hào)課程的學(xué)生學(xué)號(hào)及成績(jī),并按成績(jī)的降序排列select*from Studentorder by Clno asc,Sage desc;/ 查詢?nèi)w學(xué)生的信息,要求查詢結(jié)果按班級(jí)號(hào)升序排列,同一班級(jí)學(xué)生按年齡降序排列select Grade.Cno as 課程號(hào), COUNT(Grade.Cno) as 選課人數(shù)from Grade join Course on Grade.Cno = Course.Cnogroup by Grade.Cno;/ 求每個(gè)課程號(hào)及相應(yīng)的選課人數(shù)select Sno as 學(xué)號(hào) from Gradegroup by Snohaving COUNT(Sno)3;/ 查詢選修了3門以上課程的學(xué)生學(xué)號(hào)思考題:1:UNION 命令只會(huì)選取不同的值,UNION ALL 命令和 UNION 命令幾乎是等效的,不過(guò) UNION ALL 命令會(huì)列出所有的值。2:選用連接詞查詢好。 因?yàn)檫B接詞查詢,效率比嵌套查詢高。3:庫(kù)函數(shù)可以使用在SELECT選取目標(biāo)、HAVING字句、WHERE子句,不能使用在GROUP BY列名。實(shí)驗(yàn)六: update Gradeset Gmark = 0where Sno in (select Snofrom Studentwhere Clno=01311);/ 將班的全體學(xué)生的成績(jī)置零 delete from Gradewhere Sno in(Select Clnofrom Studentwhere Clno in(select Clnofrom Classwhere Speciality = 計(jì)算機(jī)軟件 and Inyear = 2001);/ 刪除級(jí)計(jì)算機(jī)軟件的全體學(xué)生的選課記錄delete from Gradewhere Sno in(select Sno from Student where Sname = 李勇)update Class set Number = Number - 1where Clno in(select Clno from Studentwhere Sname = 李勇)update Class set Monitor = casewhen Monitor =(select Sno from Student where Sname = 李勇)thenendfrom Classwhere Clno in(select Clnofrom student where Sname=李勇)delete from Studentwhere Sname = 李勇/學(xué)生李勇已經(jīng)退學(xué),從數(shù)據(jù)庫(kù)中刪除有關(guān)他的記錄alter table Classadd avage Smallint nullupdate classset Cage = casewhen Clno=00311then(select AVG(Sage)from Student where Clno=00312)when Clno =01311then(select AVG(Sage)from Studentwhere Clno =01311)endfrom Class/對(duì)每個(gè)班,求學(xué)生的平均年齡,并把結(jié)果存入數(shù)據(jù)庫(kù)create view Stu_01311_1as select Student.Sno, Sname, Gmarkfrom Student,Gradewhere Cno = 1and Clno = 01311and Student.Sno = Grade.Sno with check option/建立班選修了號(hào)課程的學(xué)生視圖Stu_01311_2create view Stu_01311_2as select*from Stu_01311_1where Gmark1990;/ 查詢以后出生的學(xué)生姓名SELECT * FROM Stu_yearWHERE Sno in (SELECT Sno FROM Stu_01311_2);/ 查詢班選修了號(hào)課程并且成績(jī)不合格的學(xué)生的學(xué)號(hào)、姓名、出生年份2正確思考題:DROP是刪除表;DELETE是刪除表中的記錄實(shí)驗(yàn)七:1create view Stu_01312_1AS select *From student,Gradewhere clno=01312 and

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論