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

下載本文檔

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

文檔簡介

實驗二實習(xí)報告內(nèi)容:(1)連接后打開左面的樹狀表, Microsoft Sql Server-SQL Server組-LOCAL 下面有數(shù)據(jù)庫,數(shù)據(jù)轉(zhuǎn)換服務(wù),管理,復(fù)制,安全性等等,右擊數(shù)據(jù)庫,選擇新建數(shù)據(jù)庫(2開始-MS SQL Serve -查詢分析器(或在企業(yè)管理器界面中:開始-查詢分析器)-在查詢分析器下拉選擇框中,選中GrandeManager,使之成為當(dāng)前操作的數(shù)據(jù)庫,在編輯框中鍵入SQL語句創(chuàng)建Worker表思考題:1:三種;主數(shù)據(jù)文件的后綴是mdf;次數(shù)據(jù)文件的后綴是ndf;日志文件的后綴是ldf。2:1)字符型數(shù)據(jù):1.char(n):長度為n的固定長度字符串,其中n最大可以是8000;2.varchar(n):表示一個長度為n的固定長度字符串,其中n最大可以達(dá)到800。 3.text:如果字符長度超過8000個,則可使用text數(shù)據(jù)類型,長度達(dá)2GB。2)整型數(shù)據(jù)類型:1.Bigint:8個字節(jié),64位 2.Int:4個字節(jié),32位 3.Smallint:2個字節(jié),16位 3.Tinyint:1個字節(jié),8位3)精確數(shù)據(jù)類型:decinal和numeric4)浮點數(shù)據(jù)類型:1.float:7位有效數(shù)字,4個字節(jié)或15位有效數(shù)字,8個字節(jié)2.Real:4個字節(jié)5)貨幣型數(shù)據(jù)類型:1.money 2.smallmoney6)日期時間型數(shù)據(jù)類型:1.Datetime:8個字節(jié) 2.Smalldatetime:4個字節(jié)7)統(tǒng)一字符數(shù)據(jù)類型8) 布爾數(shù)據(jù)類型實驗三: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, 劉詩晨, 女, 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ù)庫, 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語言, 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ī)軟件, 2000, 120, 2000101);INSERT INTO ClassVALUES(00312, 計算機(jī)應(yīng)用, 2000, 140, 2000103);INSERT INTO ClassVALUES(01311, 計算機(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);/ 向成績表中插入記錄(2001110,3,80)update Gradeset Gmark = 70where Sno = 2001110;/ 將學(xué)號為“”的學(xué)生的成績修改為分delete from Gradewhere Sno = 200110;/ 刪除學(xué)號為“”的學(xué)生的成績記錄create index IX_Classon Student(Clno);/ 在學(xué)生表的Clno屬性上創(chuàng)建一個名為IX_Class的索引,以班級號的升序排序 drop index Student.IX_Class;/ 刪除IX_Class索引思考題:1:規(guī)定相應(yīng)的不能為空實驗四:select distinct Cnofrom Grade;/ 找出所有被學(xué)生選修了的課程號 select*from Studentwhere Clno = 01311 and Ssex = 女;/ 找出班女學(xué)生的個人信息 select Sname, Ssex, 2016-Sage as Year from Student where Clno = 01311 or Clno = 01312; /找出班和班的學(xué)生姓名和、性別、出生年份 select* from Student where Sname like 李% /找出姓李的學(xué)生的個人信息 select Number from Class where Clno in (select Clno from Student where Sname = 李勇);/ 找出李勇所在班級的學(xué)生人數(shù)select AVG(Gmark) as 平均成績, MAX(Gmark) as 最高分, MIN(Gmark) as 最低分from Gradewhere Cno in (select Cnofrom Coursewhere Cname = 操作系統(tǒng));/ 找出課程名為操作系統(tǒng)的平均成績,最高分,最低分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ī)軟件 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ī)軟件 and Class.Inyear=2000)SELECT Sname 學(xué)生姓名 FROM ruanjianWHERE not exists(SELECT * FROM GradeWHERE ruanjian.Sno=Grade.Sno);/ 找出級計算機(jī)軟件班的成績?yōu)榭盏膶W(xué)生姓名2、不對,聚合函數(shù)不應(yīng)該出現(xiàn)在where語句中,除非該聚合位于HAVING 子句或選擇列表所包含的子查詢中,并且要對其進(jìn)行聚合的列是外部引用思考題:如果遇到子查詢,就基本上都需要別名.或者認(rèn)為實際表名寫起來太麻煩時,可以用一個字母的別名來代替實驗五: select*from Studentwhere Sname李勇 and Clno in(SELECT Clnofrom Studentwhere Sname = 李勇);/ 找出和李勇在同一個班級的學(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é)號, Sname as 姓名from Studentwhere exists(select*from Grade where Cno in(Select Cno from Coursewhere Cname = 操作系統(tǒng)) ) /選修了課程是操作系統(tǒng)的學(xué)生學(xué)號和姓名 select Sname as 姓名from Studentwhere not exists(select*from Gradewhere Student.Sno = Grade.Sno and Cno = 1);/ 找出沒有選修號課程的所有學(xué)生姓名 select Sname as 姓名from Studentwhere not exists(select Cno from Courseexceptselect Cnofrom Gradewhere Student.Sno = Grade.Sno)/ 找出選修了全部課程的學(xué)生姓名select Sno as 學(xué)號, Gmark as 成績from Gradewhere Cno = 3order by Gmark desc /查詢選修了號課程的學(xué)生學(xué)號及成績,并按成績的降序排列select*from Studentorder by Clno asc,Sage desc;/ 查詢?nèi)w學(xué)生的信息,要求查詢結(jié)果按班級號升序排列,同一班級學(xué)生按年齡降序排列select Grade.Cno as 課程號, COUNT(Grade.Cno) as 選課人數(shù)from Grade join Course on Grade.Cno = Course.Cnogroup by Grade.Cno;/ 求每個課程號及相應(yīng)的選課人數(shù)select Sno as 學(xué)號 from Gradegroup by Snohaving COUNT(Sno)3;/ 查詢選修了3門以上課程的學(xué)生學(xué)號思考題:1:UNION 命令只會選取不同的值,UNION ALL 命令和 UNION 命令幾乎是等效的,不過 UNION ALL 命令會列出所有的值。2:選用連接詞查詢好。 因為連接詞查詢,效率比嵌套查詢高。3:庫函數(shù)可以使用在SELECT選取目標(biāo)、HAVING字句、WHERE子句,不能使用在GROUP BY列名。實驗六: update Gradeset Gmark = 0where Sno in (select Snofrom Studentwhere Clno=01311);/ 將班的全體學(xué)生的成績置零 delete from Gradewhere Sno in(Select Clnofrom Studentwhere Clno in(select Clnofrom Classwhere Speciality = 計算機(jī)軟件 and Inyear = 2001);/ 刪除級計算機(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ù)庫中刪除有關(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/對每個班,求學(xué)生的平均年齡,并把結(jié)果存入數(shù)據(jù)庫create view Stu_01311_1as select Student.Sno, Sname, Gmarkfrom Student,Gradewhere Cno = 1and Clno = 01311and Student.Sno = Grade.Sno with check option/建立班選修了號課程的學(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);/ 查詢班選修了號課程并且成績不合格的學(xué)生的學(xué)號、姓名、出生年份2正確思考題:DROP是刪除表;DELETE是刪除表中的記錄實驗七:1create view Stu_01312_1AS select *From student,Gradewhere clno=01312 and

溫馨提示

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

最新文檔

評論

0/150

提交評論