版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
千里之行,始于足下讓知識(shí)帶有溫度。第第2頁/共2頁精品文檔推薦sqlserver數(shù)據(jù)庫實(shí)驗(yàn)代碼重慶交通高校
同學(xué)試驗(yàn)報(bào)告
試驗(yàn)課程名稱數(shù)據(jù)庫應(yīng)用與設(shè)計(jì)
開課試驗(yàn)室xxxxxxxxx
學(xué)院xxx年級(jí)2022專業(yè)班xxxx
同學(xué)姓名xxxxxx學(xué)號(hào)xxxxxx
開課時(shí)光2022至2022學(xué)年第2學(xué)期
試驗(yàn)2建立表和定義完整性約束
試驗(yàn)名稱
建立模式、表和定義完整性約束
試驗(yàn)內(nèi)容
試驗(yàn)?zāi)康?/p>
嫻熟把握表的建立和數(shù)據(jù)完整性速描定義辦法,實(shí)踐DBMS提供的數(shù)據(jù)完整性功能,加深對(duì)數(shù)據(jù)完整性的理解。
試驗(yàn)辦法
在試驗(yàn)一建立數(shù)據(jù)庫的基礎(chǔ)上用CREATESCHEMA命令建立模式,用CREATETABLE命令建立表并定義數(shù)據(jù)完整性約束,用ALTERTABLE命令修改表結(jié)構(gòu)。
試驗(yàn)要求
1、用CREATESCHEMA命令建立模式(自己命名模式名稱)。
2、在定義的模式下參照?qǐng)D1和表1使用CREATETABLE命令建立表并定義完整性約束。
3、使用ALTERTABLE命令按如下要求修改表結(jié)構(gòu):
a)為訂購單增強(qiáng)一個(gè)新的字段“完成日期”,類型為日期時(shí)光型,默認(rèn)是空值。
b)為訂單明細(xì)表的“數(shù)量”字段重新定義約束:大于0、小于等于1000的正整數(shù),不允許為空值。
c)將供給商表的供給商名字段的類型修改為varchar(30)。
試驗(yàn)步驟
createtable倉庫
(倉庫號(hào)nchar(6)primarykey
check(倉庫號(hào)like'[A-Z][A-Z][0-9][0-9][0-9][0-9]'),
城市nchar(10)notnullunique,
面積floatcheck(面積>=50));
createtable職工
(職工號(hào)nchar(8)primarykeycheck(職工號(hào)like'____[0-9][0-9]'),
倉庫號(hào)asconvert(nchar(6),substring(職工號(hào),1,6))persistednotnullforeignkeyreferences倉庫(倉庫號(hào)),
經(jīng)理nchar(8)foreignkeyreferences職工(職工號(hào)),
工資moneycheck(工資>=1000and工資0),
數(shù)量intnotnullcheck(數(shù)量>0));
createtriggerdgdmxon訂購單明細(xì)
afterinsert
asbegin
declare@訂購單號(hào)nchar(6)select@訂購單號(hào)=訂購單號(hào)frominserted
update訂購單set金額=(selectsum(單價(jià)*數(shù)量)from訂購單明細(xì)where訂購單號(hào)=@訂購單號(hào))
where訂購單號(hào)=@訂購單號(hào)
end
試驗(yàn)3數(shù)據(jù)操作和完整性約束的作用
試驗(yàn)名稱
數(shù)據(jù)操作筆完整性約束的作用
試驗(yàn)內(nèi)容
在試驗(yàn)二的基礎(chǔ)上完成數(shù)據(jù)的插入操作,然后舉行部分修改和刪除操作,在這些操作中體味數(shù)據(jù)完整性約束的作用。
試驗(yàn)?zāi)康?/p>
嫻熟把握SQL的INSERT,UPDATE和DELETE命令,深刻理解數(shù)據(jù)完整性約束的作用以及約束時(shí)機(jī)。
試驗(yàn)辦法
在試驗(yàn)二的基礎(chǔ)上首先用INSERT命令插入各個(gè)表的記錄,然后使用UPDATE和DELETE命令對(duì)部分記錄舉行修改和刪除操作。
試驗(yàn)要求
1、自行設(shè)計(jì)各個(gè)表的記錄,其中倉庫表至少5條記錄,職工表至少10條記錄、供給商表至少5條記錄,訂購單表至少20條記錄,訂購單明細(xì)表至少50條記錄。
2、使用INSERT命令完成記錄的插入操作,要求分離設(shè)計(jì)若干違背實(shí)體完整性、參照完整性和用戶定義完整性約束的插入操作,并分析緣由。
3、設(shè)計(jì)若干刪除操作,體味執(zhí)行刪除操作時(shí)檢查參照完整性規(guī)章的效果(要求涉及否決刪除、空值刪除和級(jí)聯(lián)刪除等不同的處理方式)。
4、設(shè)計(jì)若干更新操作,體味執(zhí)行更新操作時(shí)檢查實(shí)體完整性規(guī)章、參照完整性規(guī)章和用戶定義完整性規(guī)章的效果。
5、將x城市倉庫的職工的工資提高10%。
6、用UPDATE語句完成訂購單表金額字段的計(jì)算(提醒:某張訂購單的金額為該訂購單全部訂購項(xiàng)目(訂購單明細(xì))單價(jià)乘以數(shù)量的總和)。
7、設(shè)計(jì)2~3個(gè)刪除操作,它需要另外一個(gè)表中的數(shù)據(jù)作為刪除條件(例如,按指定的供給商名稱刪除訂購單記錄)。
8、在試驗(yàn)報(bào)告中給出詳細(xì)的記錄和設(shè)計(jì)的操作,并針對(duì)各種數(shù)據(jù)完整性檢查,給出詳細(xì)的分析和研究。
試驗(yàn)步驟
insertinto倉庫(倉庫號(hào),城市,面積)values('GH1111','重慶',99);
insertinto倉庫(倉庫號(hào),城市,面積)values('GH2222','北京',199);
insertinto倉庫(倉庫號(hào),城市,面積)values('GH3333','上海',299);
insertinto倉庫(倉庫號(hào),城市,面積)values('GH4444','廈門',399);
insertinto倉庫(倉庫號(hào),城市,面積)values('GH5555','杭州',499);
insertinto職工(職工號(hào),經(jīng)理,工資)values('GH111111','GH111111',9999);insertinto職工(職工號(hào),經(jīng)理,工資)values('GH111122','GH111122',9999);insertinto職工(職工號(hào),經(jīng)理,工資)values('GH222211','GH222211',9999);insertinto職工(職工號(hào),經(jīng)理,工資)values('GH222222','GH222222',9999);insertinto職工(職工號(hào),經(jīng)理,工資)values('GH333311','GH333311',9999);insertinto職工(職工號(hào),經(jīng)理,工資)values('GH333322','GH333322',9999);insertinto職工(職工號(hào),經(jīng)理,工資)values('GH444411','GH444411',9999);insertinto職工(職工號(hào),經(jīng)理,工資)
values('GH444422','GH444422',9999);
insertinto職工(職工號(hào),經(jīng)理,工資)
values('GH555511','GH555511',9999);
insertinto職工(職工號(hào),經(jīng)理,工資)
values('GH555522','GH555522',9999);
insertinto供給商(供給商號(hào),供給商名,地址)values('S111','高回報(bào)','杭州');
insertinto供給商(供給商號(hào),供給商名,地址)values('S222','高回報(bào)','杭州');
insertinto供給商(供給商號(hào),供給商名,地址)values('S333','高回報(bào)','杭州');
insertinto供給商(供給商號(hào),供給商名,地址)values('S444','高回報(bào)','杭州');
insertinto供給商(供給商號(hào),供給商名,地址)values('S555','高回報(bào)','杭州');
insertinto訂購單(職工號(hào),供給商號(hào),訂購單號(hào))values('GH111111','S111','OR1111');
insertinto訂購單(職工號(hào),供給商號(hào),訂購單號(hào))values('GH111111','S111','OR1112');
insertinto訂購單(職工號(hào),供給商號(hào),訂購單號(hào))values('GH111122','S111','OR1113');
insertinto訂購單(職工號(hào),供給商號(hào),訂購單號(hào))values('GH111122','S111','OR1114');
insertinto訂購單(職工號(hào),供給商號(hào),訂購單號(hào))values('GH222211','S222','OR2222');
insertinto訂購單(職工號(hào),供給商號(hào),訂購單號(hào))values('GH222211','S222','OR2221');
insertinto訂購單(職工號(hào),供給商號(hào),訂購單號(hào))values('GH222222','S222','OR2223');
insertinto訂購單(職工號(hào),供給商號(hào),訂購單號(hào))values('GH222222','S222','OR2224');
insertinto訂購單(職工號(hào),供給商號(hào),訂購單號(hào))values('GH333311','S333','OR3333');
insertinto訂購單(職工號(hào),供給商號(hào),訂購單號(hào))values('GH333311','S333','OR3331');
insertinto訂購單(職工號(hào),供給商號(hào),訂購單號(hào))values('GH333322','S333','OR3332');
insertinto訂購單(職工號(hào),供給商號(hào),訂購單號(hào))values('GH333322','S333','OR3334');
insertinto訂購單(職工號(hào),供給商號(hào),訂購單號(hào))values('GH444411','S444','OR4444');
insertinto訂購單(職工號(hào),供給商號(hào),訂購單號(hào))values('GH444411','S444','OR4441');
insertinto訂購單(職工號(hào),供給商號(hào),訂購單號(hào))values('GH444422','S444','OR4442');
insertinto訂購單(職工號(hào),供給商號(hào),訂購單號(hào))values('GH444422','S444','OR4443');
insertinto訂購單(職工號(hào),供給商號(hào),訂購單號(hào))values('GH555511','S555','OR5555');
insertinto訂購單(職工號(hào),供給商號(hào),訂購單號(hào))values('GH555511','S555','OR5551');
insertinto訂購單(職工號(hào),供給商號(hào),訂購單號(hào))values('GH555522','S555','OR5552');
insertinto訂購單(職工號(hào),供給商號(hào),訂購單號(hào))
values('GH555522','S555','OR5553');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR1111','01','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR1111','02','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR1111','03','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR1111','04','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR1111','05','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR1111','06','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR1111','07','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR1111','08','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR1111','09','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR1111','10','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR2222','11','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR2222','12','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR2222','13','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR2222','14','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR2222','15','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR2222','16','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR2222','17','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR2222','18','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR2222','19','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR2222','20','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR3333','21','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR3333','22','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR3333','23','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR3333','24','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR3333','25','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR3333','26','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)
values('OR3333','27','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR3333','28','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR3333','29','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR3333','30','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR4444','31','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR4444','32','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR4444','33','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR4444','34','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR4444','35','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR4444','36','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR4444','37','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR4444','38','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR4444','39','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)values('OR4444','40','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)
values('OR5555','41','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)
values('OR5555','42','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)
values('OR5555','43','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)
values('OR5555','44','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)
values('OR5555','45','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)
values('OR5555','46','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)
values('OR5555','47','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)
values('OR5555','48','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)
values('OR5555','49','哈根達(dá)斯','50','100');
insertinto訂購單明細(xì)(訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量)
values('OR5555','50','哈根達(dá)斯','50','100');
update職工set工資=工資*(1+wheresubstring(職工號(hào),1,6)in(select倉庫號(hào)from倉庫where城市='北京');
試驗(yàn)4數(shù)據(jù)查詢
試驗(yàn)名稱
使用SQLSELECT語句的數(shù)據(jù)查詢操作。
試驗(yàn)內(nèi)容
在試驗(yàn)二和試驗(yàn)三的基礎(chǔ)上完成規(guī)定的查詢操作。試驗(yàn)?zāi)康模簨故彀盐誗QLSELECT命令。
試驗(yàn)辦法
在試驗(yàn)二和試驗(yàn)三的基礎(chǔ)上使用SQLSELECT命令完成試驗(yàn)要求中所規(guī)定的各種查詢。試驗(yàn)要求
用SQLSELECT命令完成以下查詢(1)~(12)是普通容易查詢:
1.職工表查詢?nèi)抗べY值(考慮去掉和不去掉重復(fù)值兩種狀況)。
2.查詢倉庫表中所有信息。
3.查詢工資多于x元的職工號(hào)。
4.查詢哪些倉庫有工資多于y元的職工。
5.給出在倉庫x或y(x,y是倉庫號(hào))工作,并且工資少于z元的職工號(hào)。
6.查詢工資在x~y元范圍內(nèi)的職工信息(x>y)。
7.從供給商表中查詢出所有公司的信息(不要工廠或其他供給商的信息,即供給商名最后兩個(gè)漢字是“公司”的記錄)。
8.查詢城市不是x的所有倉庫信息。
9.查詢尚未確定供給商的訂購單(即訂購單的供給商號(hào)為空值的記錄)。
10.查詢已經(jīng)確定了供給商的訂購單信息。
11.按職工的工資值升序列出所有職工信息。
12.先按倉庫號(hào)升序,再按工資降序列出所有職工信息。
(13)~(21)使用銜接查詢:
13.查詢工資多于x元的職工號(hào)和他們所在的城市。
14.查詢工作在面積大于x的倉庫的職工號(hào)以及這些職工工作所在的城市。
15.按照職工表列出上一級(jí)經(jīng)理及其職工(被其領(lǐng)導(dǎo))的清單(即列出誰領(lǐng)導(dǎo)誰的清單)。
16.列出倉庫表和職工表的廣義笛卡兒積的去處結(jié)果。
17.按照倉庫表和職工表的廣義笛卡兒積得到倉庫表和職工表舉行自然銜接的結(jié)果。
18.查詢供給商-訂購單信息,查詢結(jié)果中包括供給商號(hào)、供給商名、訂購單號(hào)和訂購日期
這4個(gè)字段。
19.查詢供給商-訂購單信息,查詢結(jié)果中包括供給商號(hào)、供給商名、訂購單號(hào)和訂購日期
這4個(gè)字段,要求結(jié)果中列出全部供給商信息(包括目前沒有訂購單的)。
20.查詢供給商-訂購單信息,查詢結(jié)果中包括供給商號(hào)、供給商名、訂購單號(hào)和訂購日期
這4個(gè)字段,要求結(jié)果中能夠反映目前沒有確定供給商的訂購單狀況。
21.查詢供給商-訂購單信息,查詢結(jié)果中包括供給商號(hào)、供給商名、訂購單號(hào)和訂購日期
這4個(gè)字段,要求結(jié)果即能反映目前沒有訂購半日的供給商信息,又能反映目前沒有確定供給商的訂購單狀況。
(22)~(31)使用嵌套查詢(注重使用ANY,ALL和EXISTS):
22.查詢哪些城市至少有一個(gè)倉庫的職工的工資為x元。
23.查詢?nèi)柯毠さ墓べY都多于x元的倉庫的信息。
24.查詢和職工x掙同樣工資的全部職工信息。
25.查詢哪些城市的倉庫向地址為x的供給商發(fā)出了訂購單。
26.查詢地址為x的供給商目前有y城市倉庫的訂購單的供給商的名稱(分離用嵌套查詢和
銜接查詢完成,分析各自的效率)。
27.查詢有職工的工資大于或等于x倉庫中任何一名職工的工資的倉庫號(hào)。
28.查詢有職工的工資大于或等于x倉庫中全部職工的工資的倉庫號(hào)。
29.列出每人職工經(jīng)手的具有最高金額的訂購單信息。
30.查詢目前還沒有職工的倉庫的信息。
31.查詢目前至少有一個(gè)職工的倉庫的信息。
(32)~(42)匯總和分組查詢:
32.查詢目前倉庫所在城市的數(shù)目。
33.查詢目前需要支付的職工工資的總數(shù)。
34.查詢x和y兩個(gè)城市的倉庫職工的工資總和。
35.查詢?nèi)柯毠さ墓べY都多于x元的倉庫的平均面積。
36.查詢工資大于x元的職工所經(jīng)手的訂購單的最高金額。
37.查詢每個(gè)倉庫的職工的平均工資。
38.查詢每個(gè)倉庫的訂購單的最高金額、最低金額和平均金額。
39.查詢至少有5個(gè)訂購項(xiàng)目的每張訂購單的平均金額。
40.列出職工所有記錄并計(jì)算各倉庫的平均工資和工資小計(jì),最后給出全體職工的平均工資
和工資總和(使用COMPUTE…BY和COMPUTE)。
41.列出所有訂購單明細(xì)并計(jì)算各訂購單的金額,最后給出全部訂購單的平均金額和金額總
計(jì)(使用COMPUTE…BY和COMPUTE)。
42.列出所有訂購單記錄并計(jì)算全部訂購單的平均金額和金額總計(jì)(使用COMPUTE)。
試驗(yàn)步驟
工資from職工;
*from倉庫;
職工號(hào)from職工where工資>9999;
倉庫號(hào)from倉庫where倉庫號(hào)in(select倉庫號(hào)from職工where工資>9999);
職工號(hào)from職工where工資9000and工資10000;
職工號(hào),城市from職工join倉庫on面積>300;
經(jīng)理,職工號(hào)from職工where經(jīng)理='GH111111';
distinct*from職工,倉庫;
distinct*from職工crossjoin倉庫wheresubstring(職工號(hào),1,6)=倉庫.倉庫號(hào);
供給商.供給商號(hào),供給商名,訂購單號(hào),訂購日期from供給商join訂購單on供給商.供給商號(hào)=訂購單.供給商號(hào);
供給商.供給商號(hào),供給商名,訂購單號(hào),訂購日期from供給商leftjoin訂購單on供給商.供給商號(hào)=訂購單.供給商號(hào);
供給商.供給商號(hào),供給商名,訂購單號(hào),訂購日期from供給商rightjoin訂購單on供給商.供給商號(hào)=訂購單.供給商號(hào);
供給商.供給商號(hào),供給商名,訂購單號(hào),訂購日期from供給商fulljoin訂購單on供給商.供給商號(hào)=訂購單.供給商號(hào);
城市from倉庫where倉庫號(hào)in(selectsubstring(職工號(hào),1,6)from職工where工資
=9999);
*from倉庫wherenotexists(select*from職工where工資=any(select工資from職工wheresubstring(職工號(hào),1,6)='GH1111');
substring(職工號(hào),1,6)from職工where職工.工資>=all(select工資from職工wheresubstring(職工號(hào),1,6)='GH1111');
*from訂購單where金額in(selectmax(金額)from訂購單groupby職工號(hào));
*from倉庫where倉庫號(hào)notin(selectsubstring(職工號(hào),1,6)from職工);
*from倉庫where倉庫號(hào)in(selectsubstring(職工號(hào),1,6)from職工);
count(城市)from倉庫;
sum(工資)from職工;
sum(工資)from職工wheresubstring(職工號(hào),1,6)in(select倉庫號(hào)from倉庫where城市='北京'or城市='上海');
avg(面積)from倉庫where倉庫號(hào)in(selectsubstring(職工號(hào),1,6)from職工where工資>10000);
max(金額)from訂購單where職工號(hào)in(select職工號(hào)from職工where工資>10000);
avg(工資)from職工wheresubstring(職工號(hào),1,6)in(select倉庫號(hào)from倉庫);
max(金額)from訂購單wheresubstring(職工號(hào),1,6)in(select倉庫號(hào)from倉庫);
selectmin(金額)from訂購單wheresubstring(職工號(hào),1,6)in(select倉庫號(hào)from倉庫);
selectavg(金額)from訂購單wheresubstring(職工號(hào),1,6)in(select倉庫號(hào)from倉庫);
avg(單價(jià)*數(shù)量)from訂購單明細(xì)groupby訂購單號(hào)havingcount(序號(hào))>=5;
職工.職工號(hào),經(jīng)理,工資from職工join倉庫onsubstring(職工號(hào),1,6)=倉庫.倉庫號(hào)orderby倉庫.倉庫號(hào)
computeavg(工資),sum(工資)by倉庫.倉庫號(hào)
computeavg(工資),sum(工資);
訂購單明細(xì).訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量,單價(jià)*數(shù)量from訂購單明細(xì)join訂購單on
訂購單明細(xì).訂購單號(hào)=訂購單.訂購單號(hào)orderby訂購單.訂購單號(hào)
computesum(單價(jià)*數(shù)量)by訂購單.訂購單號(hào)
computeavg(單價(jià)*數(shù)量),sum(單價(jià)*數(shù)量);
訂購單.職工號(hào),供給商號(hào),訂購單號(hào),訂購日期,金額from訂購單
computeavg(金額),sum(金額);
試驗(yàn)5視圖的應(yīng)用
試驗(yàn)名稱
視圖的建立和應(yīng)用。
試驗(yàn)內(nèi)容
在試驗(yàn)三和試驗(yàn)三的基礎(chǔ)上定義視圖,并在視圖上完成查詢、插入、更新和刪除操作。試驗(yàn)?zāi)康?/p>
把握視圖定義和應(yīng)用的辦法,體味視圖和基本表的異同之處。
試驗(yàn)辦法
在試驗(yàn)二和試驗(yàn)三的基礎(chǔ)上用CREATEVIEW命令定義視圖,然后使用SELECT命令完成查詢,使用INSERT,UPDATE和DELETE命令分離完成插入、更新和刪除操作。
試驗(yàn)要求
1、在試驗(yàn)二建立的基本表的基礎(chǔ)上,按如下要求設(shè)計(jì)和建立視圖:
a)基于單個(gè)表按投影操作定義視圖。
b)基于單個(gè)表按挑選操作定義視圖。
c)基于單個(gè)表按挑選和投影操作定義視圖。
d)基于多個(gè)表按照銜接操作定義視圖。
e)基于多個(gè)表按照嵌套查詢定義視圖。f)定義含有虛字段的視圖。
2、分離在定義的視圖上設(shè)計(jì)一些查詢(包括基于視圖和基本表的銜接或嵌套查詢)。
3、在不同的視圖上分離設(shè)計(jì)一些插入、更新和刪除操作,分狀況研究哪些操作可以勝利完
成,哪些操作不能完成,并分析緣由。
4、在試驗(yàn)報(bào)告中要給出詳細(xì)的視圖定義要求和操作要求,并針對(duì)各種狀況做出詳細(xì)的分析
和研究。
試驗(yàn)步驟
1.
createviewview1
as
select職工號(hào),工資from職工
2.
createviewview2
as
select*from職工where工資>10000
3.
createviewview3
as
select訂購單號(hào),金額from訂購單where職工號(hào)='GH222222'
4.
createviewview4
as
select倉庫.倉庫號(hào),城市from倉庫join職工onsubstring(職工號(hào),1,6)=倉庫.倉庫號(hào)join訂購單on訂購單.職工號(hào)=職工.職工號(hào)where面積>200
5.
createviewview5
as
select城市from倉庫where倉庫.倉庫號(hào)in(select職工.倉庫號(hào)from職工where職工.職工
號(hào)in(select訂購單.職工號(hào)from訂購單where金額>10000))
viewview6
as
select訂購單號(hào),sum(單價(jià)*數(shù)量)金額from訂購單明細(xì)groupby訂購單號(hào)
selectview1.職工號(hào)fromview1joinview2onview1.職工號(hào)=view2.職工號(hào)whereview2.工資>10000
selectview4.城市fromview4whereview4.倉庫號(hào)in(selectview2.倉庫號(hào)fromview2whereview2.工資>10000)
insertintoview1values('GH555533','')
updateview4set城市='邯鄲'where倉庫號(hào)='GH3333'
deleteview3where訂購單號(hào)='OR2223'
試驗(yàn)6游標(biāo)
試驗(yàn)名稱
游標(biāo)的設(shè)計(jì)和使用
試驗(yàn)內(nèi)容
在SQLServer環(huán)境下使用T-SQL的游標(biāo)功能完成指定的操作。
試驗(yàn)?zāi)康?/p>
理解和把握游標(biāo)的使用辦法
試驗(yàn)辦法
在SQLServer環(huán)境下使用游標(biāo)完成指定的操作。
試驗(yàn)要求
1、定義一個(gè)游標(biāo),其內(nèi)容是按單價(jià)升序列出的所有訂購單及其明細(xì)信息。
2、逐一讀出游標(biāo)中的記錄,并顯示。
試驗(yàn)步驟
1.DECLARE@職工號(hào)nchar(8),@供給商號(hào)nchar(4),@訂購單號(hào)nchar(6),@訂購日期datetime,@金額money
DECLARECOMPUTER_CURSORCURSOR
FORSELECT職工號(hào),供給商號(hào),訂購單號(hào),訂購日期,金額from訂購單
OPENCOMPUTER_CURSOR
PRINT'職工號(hào),供給商號(hào),訂購單號(hào),訂購日期,金額'
FETCHFROMCOMPUTER_CURSORINTO@職工號(hào),@供給商號(hào),@訂購單號(hào),@訂購日期,@金額
WHILE@@FETCH_STATUS=0
BEGIN
PRINT@職工號(hào)+''+@供給商號(hào)+''+@訂購單號(hào)+''+convert(nchar(17),@訂購日期)+'
'+convert(nchar(11),@金額)
FETCHFROMCOMPUTER_CURSORINTO@職工號(hào),@供給商號(hào),@訂購單號(hào),@訂購日期,@金額
END
CLOSECOMPUTER_CURSOR
2.DECLARE@訂購單號(hào)nchar(4),@序號(hào)tinyint,@產(chǎn)品名稱nchar(20),@單價(jià)money,@數(shù)量intDECLARECOMPUTER_CURSOR1CURSOR
FORSELECT訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量from訂購單明細(xì)orderby單價(jià)asc
OPENCOMPUTER_CURSOR1
PRINT'訂購單號(hào),序號(hào),產(chǎn)品名稱,單價(jià),數(shù)量'
FETCHFROMCOMPUTER_CURSOR1INTO@訂購單號(hào),@序號(hào),@產(chǎn)品名稱,@單價(jià),@數(shù)量
WHILE@@FETCH_STATUS=0
BEGIN
PRINT@訂購單號(hào)+''+convert(nchar(2),@序號(hào))+''+@產(chǎn)品名稱+''+convert(nchar(9),@單價(jià))+''+convert(nchar(3),@數(shù)量)
FETCHFROMCOMPUTER_CURSOR1INTO@訂購單號(hào),@序號(hào),@產(chǎn)品名稱,@單價(jià),@數(shù)量
END
CLOSECOMPUTER_CURSOR1
試驗(yàn)7存儲(chǔ)過程
試驗(yàn)名稱
存儲(chǔ)過程的設(shè)計(jì)和使用
試驗(yàn)內(nèi)容
在SQLServer環(huán)境下設(shè)計(jì)、創(chuàng)建并執(zhí)行存儲(chǔ)過程。
試驗(yàn)?zāi)康?/p>
理解和把握數(shù)據(jù)庫存儲(chǔ)過程的創(chuàng)建和調(diào)用辦法。
試驗(yàn)辦法
在SQLServer環(huán)境下,按要求創(chuàng)建和調(diào)用存儲(chǔ)過程完成指定的操作。
試驗(yàn)要求
1、建立如下存儲(chǔ)過程
(1)查詢工資范圍在x元到y(tǒng)元范圍內(nèi)的職工信息。
(2)查詢?cè)谀衬昴吃履橙罩蠛炗喌挠嗁弳蔚挠嘘P(guān)供給商信息。
(3)更新操作,將某倉庫的訂購單的訂購日期統(tǒng)一修改為一個(gè)指定日期。
2、在客戶端以存儲(chǔ)過程和輸入SQL語句的方式分離執(zhí)行相同的查詢或操作,比較使用和不使用存儲(chǔ)過程的區(qū)分。
試驗(yàn)步驟
procedure
@xint,@yint
as
select職工.倉庫號(hào),職工.職工號(hào),職工.工資,倉庫.城市from職工,倉庫
where職工.工資>=@xand職工.工資@xorderby訂購單號(hào)
execute'2022-4-10'
procedure
@xdatetime
as
update訂購單
set訂購日期=@x
wheresubstring(訂購單.職工號(hào),1,6)='GH1111'
execute'2022-5-92
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度借款人抵押反擔(dān)保合同簽字確認(rèn)書范本解讀3篇
- 辦公環(huán)境的智能化與創(chuàng)新教育的發(fā)展
- 2024-2025學(xué)年貴州省黔西南布依族苗族自治州安龍縣數(shù)學(xué)三年級(jí)第一學(xué)期期末達(dá)標(biāo)測試試題含解析
- 2024年桶裝水生產(chǎn)商與酒店直供合同3篇
- 初中化學(xué)實(shí)驗(yàn)教學(xué)與科技創(chuàng)新能力的培養(yǎng)
- 醫(yī)療輔助家居產(chǎn)品的設(shè)計(jì)創(chuàng)新
- 2025中國郵政集團(tuán)公司常熟市分公司招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國聯(lián)通湖南分公司春季校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國華電集團(tuán)限公司校招+社招高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年福建莆田事業(yè)單位招聘331人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- DB62-T 4963-2024 地質(zhì)災(zāi)害警示牌技術(shù)規(guī)范
- 農(nóng)村道路建設(shè)項(xiàng)目可行性研究報(bào)告
- 人教版高中生物選擇性必修1-綜合測評(píng)(B)
- 會(huì)計(jì)學(xué)原理期末測試練習(xí)題及答案
- 2022年福建省中考滿分作文《好更好》5
- 2 學(xué)會(huì)溝通交流第1課時(shí)正確對(duì)待不同看法 教學(xué)設(shè)計(jì)-2024-2025學(xué)年道德與法治五年級(jí)上冊(cè)統(tǒng)編版
- 你好瘋子劇本-你好瘋子話劇
- 寶鋼股份發(fā)行綠色債券融資案例研究
- 2024年7月國家開放大學(xué)法律事務(wù)??啤镀髽I(yè)法務(wù)》期末紙質(zhì)考試試題及答案
- 2024-2030年六方氮化硼行業(yè)營銷策略及前景運(yùn)行狀況監(jiān)測分析研究報(bào)告
- 專題06直線與圓的位置關(guān)系、圓與圓的位置關(guān)系(課時(shí)訓(xùn)練)原卷版
評(píng)論
0/150
提交評(píng)論