sql server數(shù)據(jù)庫實驗代碼_第1頁
sql server數(shù)據(jù)庫實驗代碼_第2頁
sql server數(shù)據(jù)庫實驗代碼_第3頁
sql server數(shù)據(jù)庫實驗代碼_第4頁
sql server數(shù)據(jù)庫實驗代碼_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、重 慶 交 通 大 學(xué)學(xué) 生 實 驗 報 告實驗課程名稱 數(shù)據(jù)庫應(yīng)用與設(shè)計 開課實驗室 xxxxxxxxx 學(xué) 院 xxx 年級 2011 專業(yè)班 xxxx 學(xué) 生 姓 名 xxxxxx 學(xué) 號 xxxxxx 開 課 時 間 2013 至 2014 學(xué)年第 2 學(xué)期總 成 績教師簽名實驗2 建立表和定義完整性約束實驗名稱建立模式、表和定義完整性約束實驗內(nèi)容在實驗一建立的數(shù)據(jù)庫的基礎(chǔ)上,參照下圖和下表建立表并定義完整性約束。倉庫號城市面積供應(yīng)商號供應(yīng)商名地址 倉庫職工號經(jīng)理工資 職工 供應(yīng)商職工號供應(yīng)商號訂購單號訂購日期金額 訂購單訂購單號序號產(chǎn)品名稱單價數(shù)量 訂購單明細(xì)表名字段名字段類型關(guān)鍵字

2、約束說明倉庫倉庫號6個字符是前2位為英文,后4位為數(shù)字字符城市10個字符唯一,不允許為空面積數(shù)值大于等于50職工職工號8個字符是前6位參照倉庫表的倉庫號,后2位為數(shù)字字符經(jīng)理參照職工號,說明該職工的經(jīng)理是誰,允許空值工資貨幣大于等于1000,小于等于10000供應(yīng)商供應(yīng)商號4個字符是首位為大寫字母S,后三位為數(shù)字字符供應(yīng)商名16個字符地址30個字符訂購單職工號參照職工表得職工號,不允許空值供應(yīng)商號參照供應(yīng)商表得供應(yīng)商號,允許空值訂購單號6個字符是前2位為英文大寫字母OR,后四位為數(shù)字字符訂購日期日期默認(rèn)為當(dāng)前日期金額貨幣默認(rèn)空值,根據(jù)訂購單明細(xì)的單價和數(shù)量計算訂購單明細(xì)訂購單號是參照訂購單表的

3、訂購單號,不允許空值序號2位數(shù)字是產(chǎn)品名稱20個字符單價貨幣大于0,默認(rèn)空值數(shù)量整數(shù)大于0,不允許空值實驗?zāi)康?熟練掌握表的建立和數(shù)據(jù)完整性速描定義方法,實踐DBMS提供的數(shù)據(jù)完整性功能,加深對數(shù)據(jù)完整性的理解。 實驗方法 在實驗一建立數(shù)據(jù)庫的基礎(chǔ)上用CREATE SCHEMA命令建立模式,用CREATE TABLE命令建立表并定義數(shù)據(jù)完整性約束,用ALTER TABLE命令修改表結(jié)構(gòu)。實驗要求1、用CREATE SCHEMA命令建立模式(自己命名模式名稱)。 2、在定義的模式下參照圖1和表1使用CREATE TABLE命令

4、建立表并定義完整性約束。3、使用ALTER TABLE命令按如下要求修改表結(jié)構(gòu): a)為訂購單增加一個新的字段“完成日期”,類型為日期時間型,默認(rèn)是空值。 b)為訂單明細(xì)表的“數(shù)量”字段重新定義約束:大于0、小于等于1000的正整數(shù),不允許為空值。 c) 將供應(yīng)商表的供應(yīng)商名字段的類型修改為varchar(30)。實驗步驟create table 倉庫(倉庫號nchar(6) primary keycheck(倉庫號like 'A-ZA-Z0-90-90-90-9'),城市nchar(10)not null unique,面積f

5、loat check(面積>=50);create table 職工(職工號nchar(8)primary key check(職工號like'_0-90-9'),倉庫號 as convert (nchar(6),substring(職工號,1,6) persisted not null foreign key references 倉庫(倉庫號),經(jīng)理nchar(8) foreign key references 職工(職工號),工資money check(工資>=1000 and 工資<=10000);create table 供應(yīng)商(供應(yīng)商號nchar(

6、4)primary keycheck(供應(yīng)商號like'S0-90-90-9'),供應(yīng)商名nchar(16),地址nchar(30);create table 訂購單(職工號nchar(8) not null foreign key references 職工(職工號),供應(yīng)商名nchar(16),訂購單號nchar(6) primary key check(訂購單號like'OR0-90-90-90-9'),訂購日期datetime default getdate(),金額money default null);create table 訂購單明細(xì)(訂購單號n

7、char(6) not null foreign key references 訂購單(訂購單號),序號tinyint,primary key(訂購單號,序號),產(chǎn)品名稱nchar(20),單價money default null check(單價>0),數(shù)量int not null check(數(shù)量>0);create trigger dgdmx on 訂購單明細(xì)after insertas begindeclare 訂購單號nchar(6) select 訂購單號=訂購單號from inserted update 訂購單set 金額=(select sum(單價*數(shù)量) fro

8、m 訂購單明細(xì)where 訂購單號=訂購單號)where 訂購單號=訂購單號end實驗3 數(shù)據(jù)操作和完整性約束的作用實驗名稱 數(shù)據(jù)操作筆完整性約束的作用 實驗內(nèi)容 在實驗二的基礎(chǔ)上完成數(shù)據(jù)的插入操作,然后進(jìn)行部分修改和刪除操作,在這些操作中體會數(shù)據(jù)完整性約束的作用。 實驗?zāi)康?熟練掌握SQL的INSERT,UPDATE和DELETE命令,深刻理解數(shù)據(jù)完整性約束的作用以及約束時機(jī)。 實驗方法 在實驗二的基礎(chǔ)上首先用INSERT命令插入各個表的記錄,然后使用UPDATE和DELETE命令對部分記錄進(jìn)行修改和刪除操作。 實驗要求1、自行設(shè)計各個表的記錄,其中倉

9、庫表至少5條記錄,職工表至少10條記錄、供應(yīng)商表至少5條記錄,訂購單表至少20條記錄,訂購單明細(xì)表至少50條記錄。2、使用INSERT命令完成記錄的插入操作,要求分別設(shè)計若干違反實體完整性、參照完整性和用戶定義完整性約束的插入操作,并分析原因。3、設(shè)計若干刪除操作,體會執(zhí)行刪除操作時檢查參照完整性規(guī)則的效果(要求涉及拒絕刪除、空值刪除和級聯(lián)刪除等不同的處理方式)。4、設(shè)計若干更新操作,體會執(zhí)行更新操作時檢查實體完整性規(guī)則、參照完整性規(guī)則和用戶定義完整性規(guī)則的效果。5、將x城市倉庫的職工的工資提高10%。6、用UPDATE語句完成訂購單表金額字段的計算(提示:某張訂購單的金額為該訂購單所有訂購項

10、目(訂購單明細(xì))單價乘以數(shù)量的總和)。7、設(shè)計23個刪除操作,它需要另外一個表中的數(shù)據(jù)作為刪除條件(例如,按指定的供應(yīng)商名稱刪除訂購單記錄)。8、在實驗報告中給出具體的記錄和設(shè)計的操作,并針對各種數(shù)據(jù)完整性檢查,給出具體的分析和討論。實驗步驟insert into 倉庫(倉庫號,城市,面積) values ('GH1111','重慶',99);insert into 倉庫(倉庫號,城市,面積) values ('GH2222','北京',199);insert into 倉庫(倉庫號,城市,面積) values ('GH3

11、333','上海',299);insert into 倉庫(倉庫號,城市,面積) values ('GH4444','廈門',399);insert into 倉庫(倉庫號,城市,面積) values ('GH5555','杭州',499);insert into 職工(職工號,經(jīng)理,工資)values ('GH111111','GH111111',9999);insert into 職工(職工號,經(jīng)理,工資)values ('GH111122','G

12、H111122',9999);insert into 職工(職工號,經(jīng)理,工資)values ('GH222211','GH222211',9999);insert into 職工(職工號,經(jīng)理,工資)values ('GH222222','GH222222',9999);insert into 職工(職工號,經(jīng)理,工資)values ('GH333311','GH333311',9999);insert into 職工(職工號,經(jīng)理,工資)values ('GH333322'

13、;,'GH333322',9999);insert into 職工(職工號,經(jīng)理,工資)values ('GH444411','GH444411',9999);insert into 職工(職工號,經(jīng)理,工資)values ('GH444422','GH444422',9999);insert into 職工(職工號,經(jīng)理,工資)values ('GH555511','GH555511',9999);insert into 職工(職工號,經(jīng)理,工資)values ('GH55

14、5522','GH555522',9999);insert into 供應(yīng)商(供應(yīng)商號,供應(yīng)商名,地址)values ('S111','高回報','杭州');insert into 供應(yīng)商(供應(yīng)商號,供應(yīng)商名,地址)values ('S222','高回報','杭州');insert into 供應(yīng)商(供應(yīng)商號,供應(yīng)商名,地址)values ('S333','高回報','杭州');insert into 供應(yīng)商(供應(yīng)商號,供應(yīng)商名

15、,地址)values ('S444','高回報','杭州');insert into 供應(yīng)商(供應(yīng)商號,供應(yīng)商名,地址)values ('S555','高回報','杭州');insert into 訂購單(職工號,供應(yīng)商號,訂購單號)values ('GH111111','S111','OR1111');insert into 訂購單(職工號,供應(yīng)商號,訂購單號)values ('GH111111','S111',

16、9;OR1112');insert into 訂購單(職工號,供應(yīng)商號,訂購單號)values ('GH111122','S111','OR1113');insert into 訂購單(職工號,供應(yīng)商號,訂購單號)values ('GH111122','S111','OR1114');insert into 訂購單(職工號,供應(yīng)商號,訂購單號)values ('GH222211','S222','OR2222');insert into 訂購單

17、(職工號,供應(yīng)商號,訂購單號)values ('GH222211','S222','OR2221');insert into 訂購單(職工號,供應(yīng)商號,訂購單號)values ('GH222222','S222','OR2223');insert into 訂購單(職工號,供應(yīng)商號,訂購單號)values ('GH222222','S222','OR2224');insert into 訂購單(職工號,供應(yīng)商號,訂購單號)values ('GH

18、333311','S333','OR3333');insert into 訂購單(職工號,供應(yīng)商號,訂購單號)values ('GH333311','S333','OR3331');insert into 訂購單(職工號,供應(yīng)商號,訂購單號)values ('GH333322','S333','OR3332');insert into 訂購單(職工號,供應(yīng)商號,訂購單號)values ('GH333322','S333',

19、9;OR3334');insert into 訂購單(職工號,供應(yīng)商號,訂購單號)values ('GH444411','S444','OR4444');insert into 訂購單(職工號,供應(yīng)商號,訂購單號)values ('GH444411','S444','OR4441');insert into 訂購單(職工號,供應(yīng)商號,訂購單號)values ('GH444422','S444','OR4442');insert into 訂購單

20、(職工號,供應(yīng)商號,訂購單號)values ('GH444422','S444','OR4443');insert into 訂購單(職工號,供應(yīng)商號,訂購單號)values ('GH555511','S555','OR5555');insert into 訂購單(職工號,供應(yīng)商號,訂購單號)values ('GH555511','S555','OR5551');insert into 訂購單(職工號,供應(yīng)商號,訂購單號)values ('GH

21、555522','S555','OR5552');insert into 訂購單(職工號,供應(yīng)商號,訂購單號)values ('GH555522','S555','OR5553');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR1111','01','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values (&#

22、39;OR1111','02','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR1111','03','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR1111','04','哈根達(dá)斯','50','100

23、');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR1111','05','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR1111','06','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR1111&

24、#39;,'07','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR1111','08','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR1111','09','哈根達(dá)斯','50','100');ins

25、ert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR1111','10','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR2222','11','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR2222','

26、12','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR2222','13','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR2222','14','哈根達(dá)斯','50','100');insert into 訂

27、購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR2222','15','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR2222','16','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR2222','17',&#

28、39;哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR2222','18','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR2222','19','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,

29、序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR2222','20','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR3333','21','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR3333','22','哈根達(dá)斯

30、9;,'50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR3333','23','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR3333','24','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價

31、,數(shù)量)values ('OR3333','25','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR3333','26','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR3333','27','哈根達(dá)斯','50

32、','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR3333','28','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR3333','29','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values

33、 ('OR3333','30','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR4444','31','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR4444','32','哈根達(dá)斯','50','

34、;100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR4444','33','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR4444','34','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR4

35、444','35','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR4444','36','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR4444','37','哈根達(dá)斯','50','100')

36、;insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR4444','38','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR4444','39','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR4444',&

37、#39;40','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR5555','41','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR5555','42','哈根達(dá)斯','50','100');insert in

38、to 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR5555','43','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR5555','44','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR5555','45'

39、;,'哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR5555','46','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR5555','47','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂

40、購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR5555','48','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR5555','49','哈根達(dá)斯','50','100');insert into 訂購單明細(xì)(訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量)values ('OR5555','50','哈根達(dá)

41、斯','50','100');update 職工set 工資=工資*(1+0.1) where substring(職工號,1,6) in (select 倉庫號from 倉庫where 城市='北京');實驗4 數(shù)據(jù)查詢實驗名稱 使用SQL SELECT語句的數(shù)據(jù)查詢操作。 實驗內(nèi)容 在實驗二和實驗三的基礎(chǔ)上完成規(guī)定的查詢操作。 實驗?zāi)康模菏炀氄莆誗QL SELECT命令。 實驗方法在實驗二和實驗三的基礎(chǔ)上使用SQL SELECT命令完成實驗要求中所規(guī)定的各種查詢。實驗要求用S

42、QL SELECT命令完成以下查詢(1)(12)是一般簡單查詢: 1.  職工表查詢所有工資值(考慮去掉和不去掉重復(fù)值兩種情況)。2.  查詢倉庫表中全部信息。3.  查詢工資多于x元的職工號。 4. 查詢哪些倉庫有工資多于y元的職工。 5. 給出在倉庫x或y(x,y是倉庫號)工作,并且工資少于z元的職工號。 6. 查詢工資在xy元范圍內(nèi)的職工信息(x>y)。 7. 從供應(yīng)商表中查詢出全部公司的信息(不要工廠或其他供應(yīng)商的信息,即供應(yīng)商名最后兩個漢字是“公司”

43、的記錄)。 8. 查詢城市不是x的全部倉庫信息。 9. 查詢尚未確定供應(yīng)商的訂購單(即訂購單的供應(yīng)商號為空值的記錄)。 10. 查詢已經(jīng)確定了供應(yīng)商的訂購單信息。 11. 按職工的工資值升序列出全部職工信息。 12. 先按倉庫號升序,再按工資降序列出全部職工信息。  (13)(21)使用連接查詢: 13. 查詢工資多于x元的職工號和他們所在的城市。 14. 查詢工作在面積大于x的倉庫的職工號以及這些職工工作所在的城市。 15.

44、 根據(jù)職工表列出上一級經(jīng)理及其職工(被其領(lǐng)導(dǎo))的清單(即列出誰領(lǐng)導(dǎo)誰的清單)。 16. 列出倉庫表和職工表的廣義笛卡兒積的去處結(jié)果。 17. 根據(jù)倉庫表和職工表的廣義笛卡兒積得到倉庫表和職工表進(jìn)行自然連接的結(jié)果。 18. 查詢供應(yīng)商訂購單信息,查詢結(jié)果中包括供應(yīng)商號、供應(yīng)商名、訂購單號和訂購日期這4個字段。 19. 查詢供應(yīng)商訂購單信息,查詢結(jié)果中包括供應(yīng)商號、供應(yīng)商名、訂購單號和訂購日期這4個字段,要求結(jié)果中列出所有供應(yīng)商信息(包括目前沒有訂購單的)。 20. 查詢供應(yīng)商訂購單信息,

45、查詢結(jié)果中包括供應(yīng)商號、供應(yīng)商名、訂購單號和訂購日期這4個字段,要求結(jié)果中能夠反映目前沒有確定供應(yīng)商的訂購單情況。 21. 查詢供應(yīng)商訂購單信息,查詢結(jié)果中包括供應(yīng)商號、供應(yīng)商名、訂購單號和訂購日期這4個字段,要求結(jié)果即能反映目前沒有訂購半日的供應(yīng)商信息,又能反映目前沒有確定供應(yīng)商的訂購單情況。(22) (31)使用嵌套查詢(注意使用ANY,ALL和EXISTS): 22. 查詢哪些城市至少有一個倉庫的職工的工資為x元。 23.  查詢所有職工的工資都多于x元的倉庫的信息。 24. 查詢和職工x掙同樣工資的所有職工

46、信息。 25. 查詢哪些城市的倉庫向地址為x的供應(yīng)商發(fā)出了訂購單。 26. 查詢地址為x的供應(yīng)商目前有y城市倉庫的訂購單的供應(yīng)商的名稱(分別用嵌套查詢和連接查詢完成,分析各自的效率)。 27.  查詢有職工的工資大于或等于x倉庫中任何一名職工的工資的倉庫號。 28.  查詢有職工的工資大于或等于x倉庫中所有職工的工資的倉庫號。 29.  列出每人職工經(jīng)手的具有最高金額的訂購單信息。 30.  查詢目前還沒有職工的倉庫的信息。 31.  查詢目前至少有一個職

47、工的倉庫的信息。  (32) (42)匯總和分組查詢: 32. 查詢目前倉庫所在城市的數(shù)目。 33. 查詢目前需要支付的職工工資的總數(shù)。 34. 查詢x和y兩個城市的倉庫職工的工資總和。 35. 查詢所有職工的工資都多于x元的倉庫的平均面積。 36. 查詢工資大于x元的職工所經(jīng)手的訂購單的最高金額。 37. 查詢每個倉庫的職工的平均工資。 38. 查詢每個倉庫的訂購單的最高金額、最低金額和平均金額。 39. 查詢至少

48、有5個訂購項目的每張訂購單的平均金額。 40. 列出職工全部記錄并計算各倉庫的平均工資和工資小計,最后給出全體職工的平均工資和工資總和(使用COMPUTEBY和COMPUTE)。 41. 列出全部訂購單明細(xì)并計算各訂購單的金額,最后給出所有訂購單的平均金額和金額總計(使用COMPUTEBY和COMPUTE)。 42.  列出全部訂購單記錄并計算所有訂購單的平均金額和金額總計(使用COMPUTE)。實驗步驟1.select 工資from 職工;2.select * from 倉庫;3.select 職工號from 職工where 工資&

49、gt;9999;4.select 倉庫號from 倉庫where 倉庫號in (select 倉庫號from 職工where 工資>9999);5.select 職工號from 職工where 工資<10000 and 倉庫號='GH1111' or 倉庫號='GH3333'6.select * from 職工where 工資>9000 and 工資<10000;7.select * from 供應(yīng)商where 供應(yīng)商名like '%回報%'8.select * from 倉庫where 城市!='重慶'9

50、.select * from 訂購單where 供應(yīng)商號is NULL;10.select * from 訂購單where 供應(yīng)商號is not NULL;11.select * from 職工order by 工資asc;12.select * from 職工order by 倉庫號asc; select * from 職工order by 工資desc;13.select 職工號,城市from 職工join 倉庫on 工資>10000;14.select 職工號,城市from 職工join 倉庫on 面積>300;15.select 經(jīng)理,職工號from 職工where 經(jīng)理=

51、'GH111111'16.select distinct * from 職工,倉庫;17.select distinct * from 職工cross join 倉庫where substring(職工號,1,6)=倉庫.倉庫號;18.select 供應(yīng)商.供應(yīng)商號,供應(yīng)商名,訂購單號,訂購日期from 供應(yīng)商join 訂購單on 供應(yīng)商.供應(yīng)商號=訂購單.供應(yīng)商號;19.select 供應(yīng)商.供應(yīng)商號,供應(yīng)商名,訂購單號,訂購日期from 供應(yīng)商left join 訂購單on 供應(yīng)商.供應(yīng)商號=訂購單.供應(yīng)商號;20.select 供應(yīng)商.供應(yīng)商號,供應(yīng)商名,訂購單號,訂購日

52、期from 供應(yīng)商right join 訂購單on 供應(yīng)商.供應(yīng)商號=訂購單.供應(yīng)商號;21.select 供應(yīng)商.供應(yīng)商號,供應(yīng)商名,訂購單號,訂購日期from 供應(yīng)商full join 訂購單on 供應(yīng)商.供應(yīng)商號=訂購單.供應(yīng)商號;22.select 城市from 倉庫where 倉庫號in (select substring(職工號,1,6) from 職工where 工資=9999);23.select * from 倉庫where not exists (select * from 職工where 工資<=9999 and 倉庫.倉庫號=substring(職工號,1,6);

53、24.select * from 職工where 工資in (select 工資from 職工where 職工號='GH222222'); 25.select 城市from 倉庫where 倉庫號in (select substring(職工號,1,6) from 訂購單where 供應(yīng)商號in (select 供應(yīng)商號from 供應(yīng)商where 地址='杭州');26.select 供應(yīng)商名from 供應(yīng)商where 地址='杭州' and 供應(yīng)商號in (select 供應(yīng)商號from 訂購單where substring(職工號,1,6)

54、in (select 倉庫號from 倉庫where 城市='重慶'); select distinct 供應(yīng)商名from 供應(yīng)商join 訂購單on 供應(yīng)商.供應(yīng)商號=訂購單.供應(yīng)商號join 倉庫on substring(訂購單.職工號,1,6)=倉庫.倉庫號where 供應(yīng)商.地址='杭州' and 倉庫.城市='重慶'27.select substring(職工號,1,6) from 職工where 職工.工資>=any(select 工資from 職工where substring(職工號,1,6)='GH1111'

55、;);28.select substring(職工號,1,6) from 職工where 職工.工資>=all(select 工資from 職工where substring(職工號,1,6)='GH1111');29.select * from 訂購單where 金額in (select max(金額) from 訂購單group by 職工號);30.select * from 倉庫where 倉庫號not in (select substring(職工號,1,6) from 職工);31.select * from 倉庫where 倉庫號in (select sub

56、string(職工號,1,6) from 職工); 32.select count(城市) from 倉庫;33.select sum(工資) from 職工;34.select sum(工資) from 職工where substring(職工號,1,6) in (select 倉庫號from 倉庫where 城市='北京' or 城市='上海');35.select avg(面積) from 倉庫where 倉庫號in (select substring(職工號,1,6) from 職工where 工資>10000);36.select max(金額)

57、 from 訂購單where 職工號in (select 職工號from 職工where 工資>10000);37.select avg(工資) from 職工where substring(職工號,1,6) in (select 倉庫號from 倉庫);38.select max(金額) from 訂購單where substring(職工號,1,6) in (select 倉庫號from 倉庫); select min(金額) from 訂購單where substring(職工號,1,6) in (select 倉庫號from 倉庫); select avg(金額) from 訂購

58、單where substring(職工號,1,6) in (select 倉庫號from 倉庫);39.select avg(單價*數(shù)量) from 訂購單明細(xì)group by 訂購單號having count(序號)>=5;40.select 職工.職工號,經(jīng)理,工資from 職工join 倉庫on substring(職工號,1,6)=倉庫.倉庫號order by 倉庫.倉庫號compute avg(工資),sum(工資) by 倉庫.倉庫號compute avg(工資),sum(工資);41.select 訂購單明細(xì).訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量,單價*數(shù)量from 訂購單

59、明細(xì)join 訂購單on 訂購單明細(xì).訂購單號=訂購單.訂購單號order by 訂購單.訂購單號compute sum(單價*數(shù)量) by 訂購單.訂購單號compute avg(單價*數(shù)量),sum(單價*數(shù)量);42.select 訂購單.職工號,供應(yīng)商號,訂購單號,訂購日期,金額from 訂購單compute avg(金額),sum(金額);實驗5 視圖的應(yīng)用實驗名稱 視圖的建立和應(yīng)用。 實驗內(nèi)容 在實驗三和實驗三的基礎(chǔ)上定義視圖,并在視圖上完成查詢、插入、更新和刪除操作。 實驗?zāi)康?掌握視圖定義和應(yīng)用的方法,體會視圖和基本表的異同之處。實驗方法 在實驗二和實驗三的

60、基礎(chǔ)上用CREATE VIEW命令定義視圖,然后使用SELECT命令完成查詢,使用INSERT,UPDATE和DELETE命令分別完成插入、更新和刪除操作。 實驗要求1、 在實驗二建立的基本表的基礎(chǔ)上,按如下要求設(shè)計和建立視圖: a) 基于單個表按投影操作定義視圖。 b) 基于單個表按選擇操作定義視圖。 c) 基于單個表按選擇和投影操作定義視圖。 d) 基于多個表根據(jù)連接操作定義視圖。 e) 基于多個表根據(jù)嵌套查詢定義視圖。 f) 定義含有虛字段

61、的視圖。 2、 分別在定義的視圖上設(shè)計一些查詢(包括基于視圖和基本表的連接或嵌套查詢)。 3、 在不同的視圖上分別設(shè)計一些插入、更新和刪除操作,分情況討論哪些操作可以成功完成,哪些操作不能完成,并分析原因。 4、 在實驗報告中要給出具體的視圖定義要求和操作要求,并針對各種情況做出具體的分析和討論。實驗步驟1.create view view1asselect 職工號,工資from 職工2.create view view2asselect * from 職工where 工資>100003.create view view3ass

62、elect 訂購單號,金額from 訂購單where 職工號='GH222222'4.create view view4as select 倉庫.倉庫號,城市from 倉庫join 職工on substring(職工號,1,6)=倉庫.倉庫號join 訂購單on 訂購單.職工號=職工.職工號where 面積>2005.create view view5asselect 城市from 倉庫where 倉庫.倉庫號in (select 職工.倉庫號from 職工where 職工.職工號in (select 訂購單.職工號from 訂購單where 金額>10000)6.

63、create view view6asselect 訂購單號,sum(單價*數(shù)量) 金額from 訂購單明細(xì)group by 訂購單號select view1.職工號from view1 join view2 on view1.職工號=view2.職工號where view2.工資>10000select view4.城市from view4 where view4.倉庫號in (select view2.倉庫號from view2 where view2.工資>10000)insert into view1 values('GH555533','9999.

64、0000')update view4 set 城市='邯鄲' where 倉庫號='GH3333'delete view3 where 訂購單號='OR2223'實驗6 游標(biāo)實驗名稱 游標(biāo)的設(shè)計和使用實驗內(nèi)容 在SQL Server環(huán)境下使用T-SQL的游標(biāo)功能完成指定的操作。實驗?zāi)康?理解和掌握游標(biāo)的使用方法實驗方法 在SQL Server環(huán)境下使用游標(biāo)完成指定的操作。實驗要求1、 定義一個游標(biāo),其內(nèi)容是按單價升序列出的全部訂購單及其明細(xì)信息。2、 逐一讀出游標(biāo)中的記錄,并顯示。實驗步驟1. DECLARE 職工號nchar(8),供應(yīng)

65、商號nchar(4), 訂購單號nchar(6),訂購日期datetime,金額moneyDECLARE COMPUTER_CURSOR CURSOR FOR SELECT 職工號,供應(yīng)商號,訂購單號,訂購日期,金額from 訂購單OPEN COMPUTER_CURSOR PRINT '職工號,供應(yīng)商號,訂購單號,訂購日期,金額'FETCH FROM COMPUTER_CURSOR INTO 職工號,供應(yīng)商號,訂購單號,訂購日期,金額WHILE FETCH_STATUS=0BEGINPRINT 職工號+' '+供應(yīng)商號+' '+ 訂購單號+

66、9; '+convert(nchar(17),訂購日期)+' '+convert(nchar(11),金額)FETCH FROM COMPUTER_CURSOR INTO 職工號,供應(yīng)商號, 訂購單號,訂購日期,金額ENDCLOSE COMPUTER_CURSOR 2. DECLARE 訂購單號nchar(4),序號tinyint, 產(chǎn)品名稱nchar(20),單價money,數(shù)量intDECLARE COMPUTER_CURSOR1 CURSOR FOR SELECT 訂購單號,序號,產(chǎn)品名稱,單價,數(shù)量from 訂購單明細(xì)order by 單價ascOPEN COMPUTER_CURSOR1 PRINT '

溫馨提示

  • 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

提交評論