SQL實訓(xùn)報告
SQLServer實訓(xùn)報告
班級:姓名:學(xué)號:實訓(xùn)名稱:SQLServer數(shù)據(jù)庫應(yīng)用技術(shù)實訓(xùn)題目:教學(xué)信息管理
實訓(xùn)目的:通過本次實訓(xùn),使學(xué)生了解開發(fā)數(shù)據(jù)庫應(yīng)用程序的過程;通過數(shù)據(jù)庫設(shè)計,加深對數(shù)據(jù)庫基礎(chǔ)理論的理解并能靈活運用;掌握利用SQLServer201*數(shù)據(jù)庫管理系統(tǒng)創(chuàng)建、管理、維護數(shù)據(jù)庫的基本方法及過程;培養(yǎng)開發(fā)數(shù)據(jù)庫的設(shè)計思維。實訓(xùn)內(nèi)容:
本人與郭曉峰主要負責‘教學(xué)信息管理’系統(tǒng)。
主要包括數(shù)據(jù)的導(dǎo)入和導(dǎo)出、數(shù)據(jù)庫結(jié)構(gòu)的分析與建立、表關(guān)系的添加、查詢、外關(guān)鍵字的約束、檢查約束、默認值、試圖、表存儲過程和觸發(fā)器的學(xué)習(xí),以及在表的操作過程中,有查看表信息、查看表屬性、修改表中的數(shù)據(jù)、刪除表中的數(shù)據(jù)及修改表和刪除表的操作。本人主要負責數(shù)據(jù)的導(dǎo)入,數(shù)據(jù)庫的建立,查詢數(shù)據(jù)庫的建立:包括數(shù)據(jù)附加分離數(shù)據(jù)導(dǎo)入:導(dǎo)入EXCEL表中各個數(shù)據(jù)(學(xué)生信息表班機信息表學(xué)生成績表授課表教師表課程信息表)
查詢:查詢學(xué)生記錄數(shù)查詢成績平均分上課人數(shù)學(xué)校人員低于平均分者學(xué)生信息低于平均分者自定義函數(shù)
一總體設(shè)計思路
當看到這個題目我想到一個完整的教學(xué)信息管理應(yīng)包括:學(xué)生信息表、班級信息表、課程信息表、學(xué)生成績表、教師表、授課表等。在整個系統(tǒng)中有兩個實體:學(xué)生和老師。二表結(jié)構(gòu)
我的系統(tǒng)有六張表組成:學(xué)生信息表
列名數(shù)據(jù)類型寬度允許空值說明學(xué)號char4否主鍵姓名char10是性別char2是默認值:男班級號char8是專業(yè)char20是系別char20是聯(lián)系電話char20是入學(xué)日期datetime8是備注char50是班級信息表
列名數(shù)據(jù)類型寬度允許空值說明班級號Char8否主鍵、外鍵年級Char8是班主任Char8是教師號char8是課程信息表
列名數(shù)據(jù)類型寬度允許空值說明課程號Char8否主鍵課程名稱Char10是課程類型Char8是學(xué)分Char8是課程說明Char10是學(xué)生成績表
列名數(shù)據(jù)類型寬度允許空值說明學(xué)號Char8否主鍵班級號Char8是學(xué)期Char8是課程號Char是課程名稱Char8是成績decimal8是教師表
列名數(shù)據(jù)類型寬度允許空值說明教工號Char8否主鍵教師姓名Char8是性別Char8是職稱Char8是授課表
列名數(shù)據(jù)類型寬度允許空值說明教工號Char8否主鍵課程號char8是Excel表格主要如下:班級信息
學(xué)生信息
學(xué)生成績教師表授課表
課程信息:
二數(shù)據(jù)庫的建立:
1在開始菜單中選擇“程序MicrosoftSqlServer企業(yè)管理器”選型,就啟動了企業(yè)管理器,打開工具窗口如圖所示
2在企業(yè)管理器樹狀目錄窗口中展開一個服務(wù)器組,選定服務(wù)器。然后在該服務(wù)器下的‘數(shù)據(jù)庫’結(jié)點上單擊鼠標右鍵,快捷菜單中的‘新建數(shù)據(jù)庫’選項出現(xiàn)數(shù)據(jù)庫屬性對話框,如下圖所示
3數(shù)據(jù)庫屬性有三個標簽,用來數(shù)據(jù)名稱和數(shù)據(jù)文件,日志文件的名稱、位置、初始大小和屬性等內(nèi)容。
在‘常規(guī)‘標簽的名稱文本框中輸入’教學(xué)管理系統(tǒng)‘選擇服務(wù)器默認設(shè)置的排序規(guī)則名稱4數(shù)據(jù)文件、日志文件均按服務(wù)器默認的數(shù)值
三數(shù)據(jù)的導(dǎo)入如下:
1在‘教學(xué)管理系統(tǒng)‘數(shù)據(jù)庫節(jié)點上單擊鼠標右鍵’,在‘所有任務(wù)’菜單上單擊‘導(dǎo)入數(shù)據(jù)’選項啟動后,顯示初始工作界面如下圖:
‘數(shù)據(jù)源’選擇microsoftExcel97-201*,‘文件名’選擇所需的表,單擊下一步,過程如下圖所示:
四查詢過程(1)查詢學(xué)生信息的學(xué)生人數(shù)。
use教學(xué)信息管理
declare@recordcountint
select@recordcount=count(*)from學(xué)生信息表
select@recordcountas"學(xué)生表(學(xué)生信息表)中記錄數(shù)"go
查詢結(jié)果
(2)查詢學(xué)校人員use教學(xué)信息管理
select教師姓名+職稱as"學(xué)校人員"from教師表查詢結(jié)果
(3)查詢平均分,首先要自定義函數(shù)1、use教學(xué)信息管理go
createfunctionaverage_1()returnsrealbegin
declare@averreal
select@aver=(selectavg(成績)from學(xué)生成績)return@averend
2、use教學(xué)信息管理go
selectdbo.average_1()as總平均分select*from學(xué)生成績$
where成績>dbo.average_1()查詢結(jié)果
(4)查詢低于平均分人數(shù)查詢結(jié)果
use教學(xué)信息管理
selectdistinct學(xué)號as分數(shù)低于平均分者from學(xué)生成績
where成績查詢結(jié)果
(6)查詢上課人數(shù)use教學(xué)信息管理go
declare@recordint
select@record=count(*)from學(xué)生信息表if@record>40begin
print"該班有"+ltrim(str(@record))+"人"print"進行分班上課"endelsebegin
print"該班有"+ltrim(str(@record))+"人"print"單班上課"end
查詢結(jié)果
五實訓(xùn)總結(jié)
我們進入了一個新的充滿機遇與挑戰(zhàn)的時代,信息系統(tǒng)在管理各項事務(wù)中有著普遍的應(yīng)用,促進了企業(yè)管理工作的提升。管理信息系統(tǒng)是為管理服務(wù)的,它的開發(fā)和建立使企業(yè)擺脫落后的管理方式,實現(xiàn)管理現(xiàn)代化的有效途徑。管理信息系統(tǒng)將管理工作統(tǒng)一化、規(guī)范化、現(xiàn)代化,極大地提高了管理的效率,使現(xiàn)代化管理形成統(tǒng)一、高效的系統(tǒng)。管理信息系統(tǒng)使用系統(tǒng)思想建立起來的,以計算機為信息處理手段,以現(xiàn)代化通信設(shè)備為基本傳輸工具,能力管理決策者提供信息服務(wù)的人機系統(tǒng),這無疑是將管理與現(xiàn)代化接軌,以科技提高管理質(zhì)量的重大舉措。管理信息系統(tǒng)將大量復(fù)雜的信息處理交給計算機,使人和計算機充分發(fā)揮各自的特長,組織一個和諧、有效的系統(tǒng),為現(xiàn)代化管理帶來便捷。?
數(shù)據(jù)庫是計算機應(yīng)用的一項重要技術(shù)。通過這次的實訓(xùn),學(xué)到了很多的東西,首先是小組成員的協(xié)調(diào)工作,分配工作,知道了團結(jié)的力量與重要性,其次是我把課本里的難關(guān)攻克了,查詢就是我的難關(guān),在這兩周的實訓(xùn)中,了解了查詢的相關(guān)內(nèi)容,對查詢再也不是茫然的!。本數(shù)據(jù)庫與課本內(nèi)容緊密結(jié)合,結(jié)構(gòu)緊湊,根據(jù)所學(xué)知識,建立了教學(xué)性能系管理系統(tǒng),建表時也有很多困難,要考慮字段的類型,長度、主鍵的建立等等
Excel表的導(dǎo)入也不是那么順利,經(jīng)過失敗的嘗試,還是完美的導(dǎo)入到數(shù)據(jù)庫中。
查詢是SqlServer中的重中之重,在制作過程中,也是小組最努力的地方,了解查詢語句的先后順序,例如selectfromwherebegincreate這些單詞的在Sqlserver中的主要功能。有時在查詢中會遇到把它們的順序?qū)戝e,有時會把表里的字段弄錯。但最終還是克服了種種難題,經(jīng)過我們的努力最終完成了教學(xué)信息管理系統(tǒng)。
雖然不是最好的,但我相信,只要努力了,付出了,把不明白的弄懂了,學(xué)會了,才是關(guān)鍵!
擴展閱讀:SQL Server 201*實習(xí)報告
一、實驗二實驗?zāi)康?/p>
1、掌握使用SQL語句創(chuàng)建和刪除數(shù)據(jù)庫;
2、掌握使用SQL語句創(chuàng)建和刪除數(shù)據(jù)表,創(chuàng)建各種完整性約束,修改表的結(jié)構(gòu);3、掌握索引的創(chuàng)建和刪除方法。
實驗三實驗?zāi)康?/p>
掌握查詢語句的使用方法,重點掌握連接查詢和嵌套查詢,理解查詢的執(zhí)行過程。
實驗四實驗?zāi)康?/p>
1、掌握數(shù)據(jù)更新語句的使用;
2、掌握視圖操作的基本方法和應(yīng)用,理解基于視圖的查詢和數(shù)據(jù)更新操作的過程。
二、實驗二預(yù)備知識
1、數(shù)據(jù)庫的建立與刪除
可以使用SQL語句建立數(shù)據(jù)庫,語句格式為:
CREATEDATABASE
其中CREATEDATABASE為關(guān)鍵字,為用戶創(chuàng)建的數(shù)據(jù)庫的名稱,由用戶自定。
使用DROPDATABASE語句可以刪除數(shù)據(jù)庫,語句格式為:
DROPDATABASE
其中DROPDATABASE為關(guān)鍵字,為要刪除的數(shù)據(jù)庫的名稱。當數(shù)據(jù)庫被刪除時,數(shù)據(jù)庫中的所有數(shù)據(jù)對象也一起被刪除掉。2、數(shù)據(jù)表的創(chuàng)建與刪除
使用CreateTable語句創(chuàng)建數(shù)據(jù)表,語句格式為:
CREATETABLE([列級完整性約束條件][,[列級完整性約束條件]]
[,]);
其中CREATETABLE為關(guān)鍵字,為數(shù)據(jù)表的名稱,由用戶確定,為組成這個表的屬性列的名稱,由用戶確定,為屬性列的取值的類型,由用戶在具體的DBMS所提供的數(shù)據(jù)類型中選擇。
使用DropTable語句刪除數(shù)據(jù)表,語句格式為:
DROPTABLE
注意:刪除一個表,表的定義以及表中的所有數(shù)據(jù),以及該表的索引、約束、觸發(fā)器等將自動刪除,并且與表相關(guān)聯(lián)的規(guī)則和默認對象也將失去與它的關(guān)聯(lián)關(guān)系。3、修改基本表
使用ALTERTABLE語句修改已建立好的基本表,該語句可以實現(xiàn)添加、修改、刪除基本(1)添加操作
表中的屬性列、約束等操作,下面分別給出語句格式及說明:
在ALTERTABLE語句中使用ADD子句添加新列和新的完整性約束,添加新列的語句格式
ALTERTABLEADD
添加新的完整性約束語句格式如下:
ALTERTABLEADD
(2)修改操作
在ALTERTABLE語句中使用ALTERCOLUMN子句修改原有列的定義,語句格式如下:
ALTERTABLEALTERCOLUMN
(3)刪除操作
如下:
在ALTERTABLE語句中使用DROP子句刪除已有的列和完整性約束條件,刪除列的語句
ALTERTABLEDROPCOLUMN
格式如下:
刪除完整性約束條件的語句格式為:
ALTERTABLEDROP
關(guān)于ALTERTABLE語句更詳細的語法格式請參照“聯(lián)機叢書”,下面通過實例給出ALTERTABLE語句的具體用法,如下:
操作添加修改刪除類型添加新列添加新的完整性約束修改原有列的定義刪除已有完整性約束刪除已有列實例AltertablesaddSidchar(20)Altertablesaddunique(sid)AltertablesaltercolumnSidchar(30)Altertablesdropuq_sidAltertablesdropcolumnSid4、索引的創(chuàng)建與刪除
使用CREATEINDEX語句創(chuàng)建索引,語句格式為:
CREATE[UNIQUE][CLUSTERED|NONCLUSTERED]INDEX
ON(列名[ASC|DESC][,...n])
其中UNIQUE、CLUSTERED、NONCLUSTERED指出所建索引的類型,分別為唯一性索引、聚集索引和非聚集索引。
注意:不能在數(shù)據(jù)類型為text、ntext和image的列上建立索引。使用DROPINDEX語句刪除索引,語句格式為:
DROPINDEX
注意:DropIndex語句能夠刪除CreateIndex語句所建立的索引,但是它不能刪除SQLSever為PrimaryKey或Unique約束所建立的索引,這些索引只能通過刪除約束或表的方法來刪除。
實驗三預(yù)備知識
查詢語句的基本格式如下:
SELECT--需要哪些列
FROM--來自于哪些表[WHERE]--根據(jù)什么條件[GROUPBY]--分組[HAVING]--篩選[ORDERBY]--排序
實驗四預(yù)備知識
1.數(shù)據(jù)更新基本語句及其格式(1)插入操作
SQL的數(shù)據(jù)插入語句INSERT有兩種形式:①插入單個元組,使用命令:
INSERTINTO基本表名(列名表)
VALUES(元組)
②插入子查詢的結(jié)果:
INSERTINTO基本表名(列表名)查詢語句
(2)修改操作
當需要修改指定關(guān)系中元組的值時,可使用下列語句實現(xiàn):UPDATE基本表名
SET列名1=值表達式1[,列名2=值表達式2][WHERE條件表達式](3)刪除操作
刪除關(guān)系中滿足條件的元組語句格式如下:DELETEFROMWhere
三.實驗步驟
實驗二
1.建立數(shù)據(jù)庫,點擊新建查詢,如圖:
單擊刷新,數(shù)據(jù)庫中出現(xiàn)新建的“gongcheng”數(shù)據(jù)庫。2.建立數(shù)據(jù)表
右擊“gongcheng”,單擊新建查詢,寫入代碼,如圖:
單擊刷新,展開表,可看見新建的四個表。3.修改數(shù)據(jù)庫,寫入代碼后執(zhí)行。
寫入代碼,分別在表S、P、J表中的Sno,Pno,Jno屬性列上建立唯一索引(升序)。如圖:
4.錄入數(shù)據(jù)
將課本上的數(shù)據(jù)寫進excel表格中,在SQLServer201*中執(zhí)行導(dǎo)入操作,結(jié)果如圖:
5右擊“gongcheng”,單擊“新建查詢”。完成以下查詢:(1)查詢所有供應(yīng)商所在的城市。
(2)查詢零件重量在10-20之間(包括10和20)的零件名和顏色。
(3)查詢工程項目的總個數(shù)。
(4)查詢所有零件的平均重量。
(5)查詢供應(yīng)商S3供應(yīng)的零件號。
(6)查詢各個供應(yīng)商號及其供應(yīng)了多少類零件。
(7)查詢供應(yīng)了2類以上零件的供應(yīng)商號。
(select供應(yīng)情況表SPJ.Snofrom供應(yīng)情況表SPJwhere
(selectCOUNT(供應(yīng)情況表SPJ.Pno)From供應(yīng)情況表SPJ)>2groupbySno)
(8)查詢零件名以“螺”字開頭的零件信息。
(9)查詢工程項目名中最后一個字為“廠”字的工程項目所在的城市。
(10)查詢給每個工程供應(yīng)零件的供應(yīng)商的個數(shù)。
(11)查詢供應(yīng)數(shù)量在1000201*之間(包括1000和201*)的零件名稱。
select零件表P.pnamefrom零件表P,供應(yīng)情況表SPJgroupby供應(yīng)情況表SPJ.PnohavingCOUNT(供應(yīng)情況表SPJ.QTY)>=1000andcount(供應(yīng)情況表SPJ.QTY)=1000and供應(yīng)情況表SPJ.QTY
問題一:
問題二:
問題三:
問題四:
問題五:
問題六:
問題七:
6.在“學(xué)生選課管理”數(shù)據(jù)庫中完成以下查詢:(1)查詢是“選修課”的課程號、課程名。
(2)查詢學(xué)號為“09105103”學(xué)生所學(xué)課程的課程名與學(xué)分。
(3)查詢選修課程號為“002”或“004”的學(xué)生的學(xué)號。
(4)查詢選修了課程號為“002”和“004”的學(xué)生的學(xué)號。
(5)查詢學(xué)習(xí)全部課程的學(xué)生姓名。
實驗三
1.在“gongcheng”新建查詢,對數(shù)據(jù)庫做一下更新:
(1)現(xiàn)有一供應(yīng)商,代碼為S9、姓名為英特爾、所在城市西安,供應(yīng)情況如下:供應(yīng)零件P5給工程J7數(shù)量為600,供應(yīng)零件P4給工程J4數(shù)量為500,請將此供應(yīng)商的信息和供應(yīng)信息插入數(shù)據(jù)庫。
(2)請將北京供應(yīng)商的供應(yīng)數(shù)量加20
零件P3已經(jīng)停產(chǎn),請將P3的相關(guān)信息從數(shù)據(jù)庫中刪除。
(4)創(chuàng)建零件名為螺絲刀的供應(yīng)情況的視圖P_ls,包括供應(yīng)商名(Sname),零件名(Pname),零件重量(Weight),工程項目代碼(Jno),供應(yīng)數(shù)量(QTY).
(5)在視圖P_ls中查詢供應(yīng)數(shù)量為500的供應(yīng)商姓名。
2.導(dǎo)入“student”數(shù)據(jù)庫,新建查詢,完成以下操作:(1)學(xué)生孫天要退學(xué),請刪除該學(xué)生的所有記錄。先刪除學(xué)生選課表中信息:
再刪除學(xué)生表中信息:
學(xué)號為“9105101”的學(xué)生信息全部被刪除。
(2)將學(xué)號為09105103學(xué)生的所有課程成績加10分。
(3)學(xué)校開了一門新課,課稱號為056課程名為信息系統(tǒng)分析,請將此門課程的信息插入。
(4)創(chuàng)建查詢每個學(xué)生的修課學(xué)分的視圖,要求列出學(xué)生學(xué)號及總學(xué)分。
(5)在創(chuàng)建的視圖中查詢學(xué)生李麗所修的學(xué)分數(shù)。
實驗代碼:
在創(chuàng)建的“gongcheng”數(shù)據(jù)庫中使用SQL語句建立4個關(guān)系(可參考課本P74習(xí)題5),如下:供應(yīng)商表S(Sno,Sname,Status,Ctiy)零件表P(Pno,Pname,Color,Weight)工程項目表J(Jno,Jname,City)供應(yīng)情況表SPJ(Sno,Pno,Jno,QTY)要求:
(1)創(chuàng)建每個關(guān)系的主鍵,有外鍵的創(chuàng)建外鍵。(2)S表中的Sname屬性列的取值唯一
(3)P表中weight屬性列的取值范圍在1-50之間(4)J表中的Jname取值不能為空并且是唯一的(5)SPJ表中QTY屬性列的數(shù)據(jù)類型必須為int
Createtable供應(yīng)商表S(Snochar(10)primarykey,Snamechar(10)unique,Statuschar(10)null,citychar(10)null)
Createtable零件表P(Pnochar(10)primarykey,Pnamechar(10)null,colorchar(10)null,
weightintcheck(weight>=0andweight
Jnamechar(10)notnullunique,citychar(10)null)
Createtable供應(yīng)情況表SPJ(Snochar(10)notnull,Jnochar(10)notnull,Pnochar(10)notnull,QTYintnull,
primarykey(Sno,Jno,Pno),
foreignkey(Sno)references供應(yīng)商表S(Sno),foreignkey(Pno)references零件表P(Pno),foreignkey(Jno)references項目工程表J(Jno))2.修改表的結(jié)構(gòu)
用SQL語句完成以下操作:
(1)給S表增加Sphone和Semail兩個屬性列,分別用來存放供應(yīng)商的聯(lián)系電話和電子信箱。
altertable供應(yīng)商表Saddsemailchar(20);(2)刪除Jname屬性列取值唯一的約束。
altertable項目工程表JdropUQ__項目工程表J__5A1986B60DAF0CB0;
(3)將QTY屬性列的數(shù)據(jù)類型修改為Smallint型。
altertable供應(yīng)情況表SPJaltercolumnQTYsmallint;(4)刪除S表中的屬性列Semail
altertable供應(yīng)商表Sdropcolumnsemail;
3.創(chuàng)建、刪除索引
通過SQL語句分別在表S、P、J表中的Sno,Pno,Jno屬性列上建立唯一索引(升序)
CreateuniqueindexSsnoon供應(yīng)商表S(Sno);CreateuniqueindexPpnoon零件表P(Pno);CreateuniqueindexJjnoon項目工程表J(Jno);4.在“gongcheng”數(shù)據(jù)庫中完成以下查詢(1)查詢所有供應(yīng)商所在的城市。SelectcityFrom供應(yīng)商表S
(2)查詢零件重量在10-20之間(包括10和20)的零件名和顏色。Selectweight,colorFrom零件表P
Whereweight>10andweight
From供應(yīng)情況表SPJWhereSno="S3"
(6)查詢各個供應(yīng)商號及其供應(yīng)了多少類零件。SelectSno,COUNT(Pno)From供應(yīng)情況表SPJGroupbySno
(7)查詢供應(yīng)了2類以上零件的供應(yīng)商號。SelectSno
From供應(yīng)情況表SPJGroupbySnoHavingCOUNT(Pno)>2
(8)查詢零件名以“螺”字開頭的零件信息。SelectPno,Pname,color,weightFrom零件表P
WherePnamelike"螺%"
(9)查詢工程項目名中最后一個字為“廠”字的工程項目所在的城市。Select*
From項目工程表JWhereJnamelike"%廠"
(10)查詢給每個工程供應(yīng)零件的供應(yīng)商的個數(shù)。Selectcount(Sno)
From供應(yīng)情況表SPJGroupbyJno
(11)查詢供應(yīng)數(shù)量在1000201*之間(包括1000和201*)的零件名稱。
Select零件表P.PnameFrom零件表P,供應(yīng)情況表SPJGroupby供應(yīng)情況表SPJ.PnoHavingCOUNT(供應(yīng)情況表SPJ.QTY)>=1000andcount(供應(yīng)情況表SPJ.QTY)=1000and供應(yīng)情況表SPJ.QTY
Groupby項目工程表J.Jno
Select零件表P.Pno,供應(yīng)情況表SPJ.QTYFrom零件表P,供應(yīng)情況表SPJ
Where供應(yīng)情況表SPJ.Jno="J2"and零件表P.Pno=供應(yīng)情況表SPJ.PnoSelect零件表P.Pno
From零件表P,供應(yīng)商表S,供應(yīng)情況表SPJWhere供應(yīng)商表S.city="上海"and供應(yīng)情況表SPJ.Pno=零件表P.Pnoand供應(yīng)情況表SPJ.Sno=供應(yīng)商表S.SnoGroupby零件表P.PnoSelect項目工程表J.Jname
From項目工程表J,供應(yīng)情況表SPJ,供應(yīng)商表SWhere項目工程表J.Jno=供應(yīng)情況表SPJ.Jno供應(yīng)商表S.city="上海"and
供應(yīng)情況表SPJ.Sno=供應(yīng)商表S.SnoGroupby項目工程表J.JnameSelect項目工程表J.Jno
From項目工程表J,供應(yīng)情況表SPJ,供應(yīng)商表SWhere項目工程表J.Jno=供應(yīng)情況表SPJ.Jno供應(yīng)商表S.city"天津"and供應(yīng)情況表SPJ.Sno=供應(yīng)商表S.Sno
andand
Groupby項目工程表J.Jno
5.在“學(xué)生選課管理”數(shù)據(jù)庫中完成以下查詢(1)查詢是“選修課”的課程號、課程名。SelectCno,CnameFrom[課程表(C)]WhereProperty="選修"
(2)查詢學(xué)號為“09105103”學(xué)生所學(xué)課程的課程名與學(xué)分。Select[課程表(C)].Cname,CreditFrom[課程表(C)],[學(xué)生選課表(SC)]
Where[學(xué)生選課表(SC)].Sno="9105103"and[課程表(C)].Cno=[學(xué)生選課表(SC)].Cno
(3)查詢選修課程號為“002”或“004”的學(xué)生的學(xué)號。SelectSno
From[學(xué)生選課表(SC)]WhereCno=2orCno=4GroupbySno
(4)查詢選修了課程號為“002”和“004”的學(xué)生的學(xué)號。SelectSno
From[學(xué)生選課表(SC)]WhereCno=2andCno=4GroupbySno
(5)查詢學(xué)習(xí)全部課程的學(xué)生姓名。
Select[學(xué)生表(S)].Sname
From[學(xué)生表(S)],[學(xué)生選課表(SC)]WhereCno=all(SelectCno
From[學(xué)生選課表(SC)])
And[學(xué)生表(S)].Sno=[學(xué)生選課表(SC)].Sno6.在實習(xí)二創(chuàng)建的“gongcheng”數(shù)據(jù)庫中使用SQL語句完成以下操作
(1)現(xiàn)有一供應(yīng)商,代碼為S9、姓名為英特爾、所在城市西安,供應(yīng)情況如下:供應(yīng)零件P5給工程J7數(shù)量為600,供應(yīng)零件P4給工程J4數(shù)量為500,請將此供應(yīng)商的信息和供應(yīng)信息插入數(shù)據(jù)庫。Insert
Into供應(yīng)商表S(Sno,Sname,city)Values("S9","英特爾","西安");Insert
Into供應(yīng)情況表SPJ(Pno,Jno,Sno,QTY)
Values("P5","J7","S9","600"),("P4","J4","S9","500")
(2)請將北京供應(yīng)商的供應(yīng)數(shù)量加20Update供應(yīng)情況表SPJSetQTY=QTY+20WhereSnoin
(SelectSnoFrom供應(yīng)商表SWherecity="北京")
(3)零件P3已經(jīng)停產(chǎn),請將P3的相關(guān)信息從數(shù)據(jù)庫中刪除。Delete
From供應(yīng)情況表SPJWherePno="P3"DeleteFrom零件表PWherePno="P3"
(4)創(chuàng)建零件名為螺絲刀的供應(yīng)情況的視圖P_ls,包括供應(yīng)商名(Sname),零件名(Pname),零件重量(Weight),工程項目代碼(Jno),供應(yīng)數(shù)量(QTY).
CreateviewP_ls(Sname,Pname,weight,Jno,QTY)as
SelectSname,Pname,weight,Jno,QTYFrom供應(yīng)商表S,零件表P,供應(yīng)情況表SPJWherePname="螺絲刀"
and供應(yīng)商表S.Sno=供應(yīng)情況表SPJ.Snoand零件表P.Pno=供應(yīng)情況表SPJ.Pno
(5)在視圖P_ls中查詢供應(yīng)數(shù)量為500的供應(yīng)商姓名。SelectSname
FromP_lsWhereQTY=500GroupbySname
7.在實習(xí)一創(chuàng)建的“學(xué)生選課管理”數(shù)據(jù)庫中使用SQL語句完成以下操作
(1)學(xué)生孫天要退學(xué),請刪除該學(xué)生的所有記錄。Delete
From[學(xué)生選課表(SC)]Where[學(xué)生選課表(SC)].Sno=(SelectSnoFrom[學(xué)生表(S)]WhereSname="孫天")Delete
From[學(xué)生表(S)]WhereSname="孫天"
(2)將學(xué)號為09105103學(xué)生的所有課程成績加10分。Update[學(xué)生選課表(SC)]SetGrade=Grade+10WhereSno="9105103"
(3)學(xué)校開了一門新課,課稱號為056課程名為信息系統(tǒng)分析,請將此門課程的信息插入。Insert
Into[課程表(C)](Cno,Cname)Values("056","信息系統(tǒng)分析")
(4)創(chuàng)建查詢每個學(xué)生的修課學(xué)分的視圖,要求列出學(xué)生學(xué)號及總學(xué)分。
CreateviewCri_Student(學(xué)號,姓名,總學(xué)分)as
Select[學(xué)生表(S)].Sno,[學(xué)生表(S)].Sname,SUM(Credit)
From[學(xué)生表(S)],[學(xué)生選課表(SC)],[課程表(C)]Where[學(xué)生表(S)].Sno=[學(xué)生選課表(SC)].Snoand[學(xué)生選課表(SC)].Cno=[課程表(C)].CnoGroupby[學(xué)生表(S)].Sno,[學(xué)生表(S)].Sname(5)在創(chuàng)建的視圖中查詢學(xué)生李麗所修的學(xué)分數(shù)。Select姓名,總學(xué)分FromCri_StudentWhere姓名="李麗"實驗總結(jié):
三次實習(xí)分別學(xué)習(xí)了數(shù)據(jù)的查詢,數(shù)據(jù)庫的更新,和視圖的相關(guān)操作,了解了數(shù)據(jù)庫的更深入的部分知識,獲益匪淺,是我對數(shù)據(jù)庫的功能和使用方法有了更多的了解。我會繼續(xù)努力學(xué)好數(shù)據(jù)庫。
友情提示:本文中關(guān)于《SQL實訓(xùn)報告》給出的范例僅供您參考拓展思維使用,SQL實訓(xùn)報告:該篇文章建議您自主創(chuàng)作。
來源:網(wǎng)絡(luò)整理 免責聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時刪除。