




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)據(jù)庫(kù)應(yīng)用與設(shè)計(jì)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)1實(shí)驗(yàn)9 學(xué) 院 管理學(xué)院 專(zhuān) 業(yè) 電子商務(wù) 年級(jí)班別 2013級(jí)1班 學(xué) 號(hào) 3113004762 學(xué)生姓名 吳孫德 指導(dǎo)教師 胡 鳳 成 績(jī) 目錄實(shí)驗(yàn)1 建立數(shù)據(jù)庫(kù)1實(shí)驗(yàn)2 建立表和定義完整性約束6實(shí)驗(yàn)3 數(shù)據(jù)庫(kù)操作和完整性約束的作用10實(shí)驗(yàn)4 數(shù)據(jù)的查詢(xún)19實(shí)驗(yàn)5 視圖的應(yīng)用42實(shí)驗(yàn)6 游標(biāo)51實(shí)驗(yàn)7 存儲(chǔ)過(guò)程53實(shí)驗(yàn)8 觸發(fā)器56實(shí)驗(yàn)9 用戶(hù)管理和權(quán)限管理59實(shí)驗(yàn)1 建立數(shù)據(jù)庫(kù) 實(shí)驗(yàn)名稱(chēng):建立數(shù)據(jù)庫(kù) 實(shí)驗(yàn)內(nèi)容:在SQL Server環(huán)境下建立數(shù)據(jù)庫(kù)和維護(hù)數(shù)據(jù)庫(kù)。 實(shí)驗(yàn)?zāi)康模豪斫釹QL Server
2、數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu),掌握SQL Server數(shù)據(jù)庫(kù)的建立方法和維護(hù)方法。 實(shí)驗(yàn)方法:在SQL Server環(huán)境下用CREATE DATABASE命令建立數(shù)據(jù)庫(kù)(注意:需要是系統(tǒng)管理員用戶(hù),或者被指定dbcreator固定服務(wù)器角色的成員,或者被顯式地授予CREATE DATABASE權(quán)限,有關(guān)權(quán)限的內(nèi)容請(qǐng)課文5.2節(jié))實(shí)驗(yàn)要求: 1、 根據(jù)上體要求創(chuàng)建如下3個(gè)數(shù)據(jù)庫(kù): (1) 創(chuàng)建數(shù)據(jù)庫(kù)test1(使用一個(gè)數(shù)據(jù)文件和一個(gè)日志文件),要求指定一個(gè)數(shù)據(jù)文件、一個(gè)事務(wù)日志文件,并把它們安排在不同的硬盤(pán)上。
3、0;(2) 創(chuàng)建數(shù)據(jù)庫(kù)test2(使用多個(gè)數(shù)據(jù)文件和多個(gè)日志文件),要求使用3個(gè)數(shù)據(jù)文件和兩個(gè)事務(wù)日志文件,主數(shù)據(jù)文件是列表中的第一個(gè)文件或者用關(guān)鍵字PRIMARY指定(文件擴(kuò)展名:主數(shù)據(jù)文件使用.mdf,次數(shù)據(jù)文件使用.ndf,事務(wù)日志文件使用.ldf)。(3) 創(chuàng)建數(shù)據(jù)庫(kù)test3(使用文件組),要求使用3個(gè)文件組(含主文件組,默認(rèn)的文件組),每個(gè)文件組包含兩個(gè)數(shù)據(jù)文件,并且每個(gè)文件組要安排在不同的硬盤(pán)上。 2、 修改建立的test1數(shù)據(jù)庫(kù),為之添加一個(gè)5MB大小的新數(shù)據(jù)文件。3、 修改建立的test2數(shù)據(jù)庫(kù),將其中的主數(shù)據(jù)文件增加5MB的
4、存儲(chǔ)空間。4、 刪除建立的數(shù)據(jù)庫(kù)test1。實(shí)驗(yàn)操作:1、 根據(jù)上體要求創(chuàng)建如下3個(gè)數(shù)據(jù)庫(kù): (1) 創(chuàng)建數(shù)據(jù)庫(kù)test1(使用一個(gè)數(shù)據(jù)文件和一個(gè)日志文件),要求指定一個(gè)數(shù)據(jù)文件、一個(gè)事務(wù)日志文件,并把它們安排在不同的硬盤(pán)上。create database test1 on(name=test,filename='e:test.mdf',size=10,maxsize=50,filegrowth=5)log on(name=test_log,filename='f:test.ldf',size=5mb,maxsize=25
5、mb,filegrowth=5mb) (2) 創(chuàng)建數(shù)據(jù)庫(kù)test2(使用多個(gè)數(shù)據(jù)文件和多個(gè)日志文件),要求使用3個(gè)數(shù)據(jù)文件和兩個(gè)事務(wù)日志文件,主數(shù)據(jù)文件是列表中的第一個(gè)文件或者用關(guān)鍵字PRIMARY指定(文件擴(kuò)展名:主數(shù)據(jù)文件使用.mdf,次數(shù)據(jù)文件使用.ndf,事務(wù)日志文件使用.ldf)。 create database test2 onprimary (name=t1,filename='e:a1.mdf',size=10,maxsize=50,filegrowth=5),(name=t2,filename='e:a2.ndf'
6、,size=10,maxsize=50,filegrowth=5),(name=t3,filename='e:a3.ndf',size=10,maxsize=50,filegrowth=5)log on(name=t1_log,filename='e:a1.ldf',size=5mb,maxsize=25mb,filegrowth=5mb),(name=t2_log,filename='e:a2.ldf',size=5mb,maxsize=25mb,filegrowth=5mb)(3) 創(chuàng)建數(shù)據(jù)庫(kù)test3(使用文件組),要求使用3個(gè)文
7、件組(含主文件組,默認(rèn)的文件組),每個(gè)文件組包含兩個(gè)數(shù)據(jù)文件,并且每個(gè)文件組要安排在不同的硬盤(pán)上。 create database test3 onprimary (name=te0,filename='f:b0.mdf',size=10,maxsize=50,filegrowth=5),filegroup fg1 (name=te1,filename='f:b1.mdf',size=10,maxsize=50,filegrowth=5),(name=te2,filename='f:b2.ndf',size=10,maxsize=50,
8、filegrowth=5),filegroup fg2 (name=te3,filename='f:b3.ndf',size=10,maxsize=50,filegrowth=5),(name=te4,filename='f:b4.ndf',size=10,maxsize=50,filegrowth=5),filegroup fg3 (name=te5,filename='f:b5.ndf',size=10,maxsize=50,filegrowth=5),(name=te6,filename='f:b6.ndf',size=10
9、,maxsize=50,filegrowth=5)2、 修改建立的test1數(shù)據(jù)庫(kù),為之添加一個(gè)5MB大小的新數(shù)據(jù)文件。alter database test1add file(name=test1,filename='f:test1.ndf',size=5mb,maxsize=50,filegrowth=5)3、 修改建立的test2數(shù)據(jù)庫(kù),將其中的主數(shù)據(jù)文件增加5MB的存儲(chǔ)空間。alter database test2modify file(name=t1,filename='e:a1.mdf',size=15,maxsize=55,fi
10、legrowth=10)4、 刪除建立的數(shù)據(jù)庫(kù)test1。drop database test1實(shí)驗(yàn)2 建立表和定義完整性約束 實(shí)驗(yàn)名稱(chēng):建立模式、表和定義完整性約束 實(shí)驗(yàn)內(nèi)容:在實(shí)驗(yàn)一建立的數(shù)據(jù)庫(kù)的基礎(chǔ)上,參照下圖和下表建立表并定義完整性約束。表名字段名字段類(lèi)型關(guān)鍵字約束說(shuō)明倉(cāng)庫(kù)倉(cāng)庫(kù)號(hào)6個(gè)字符是前2位為英文大寫(xiě)字母,后4位為數(shù)字字符城市10個(gè)字符唯一,不允許空值面積數(shù)值大于等于50職工職工號(hào)8個(gè)字符是前2位為英文大寫(xiě)字母,后6位為數(shù)字字符倉(cāng)庫(kù)號(hào)參照倉(cāng)庫(kù)表的倉(cāng)庫(kù)號(hào)工資貨幣大于等于1000,小于等于10000供應(yīng)商供應(yīng)商號(hào)4個(gè)字符是首位為大寫(xiě)字母S,后3位
11、為數(shù)字字符供應(yīng)商名16個(gè)字符地址30個(gè)字符訂購(gòu)單職工號(hào)參照職工表的職工號(hào),不允許空值供應(yīng)商號(hào)參照供應(yīng)商表的供應(yīng)商號(hào),允許空值訂購(gòu)單號(hào)6個(gè)字符是前2位為英文大寫(xiě)字母OR,后4位數(shù)字字符訂購(gòu)日期日期默認(rèn)是當(dāng)前日期金額貨幣默認(rèn)空值訂購(gòu)單明細(xì)訂購(gòu)單號(hào)是參照訂購(gòu)單表的訂購(gòu)單號(hào),不允許空值序號(hào)2位數(shù)字是產(chǎn)品名稱(chēng)20個(gè)字符單價(jià)貨價(jià)大于0,默認(rèn)空值數(shù)量整數(shù)大于0,不允許空值實(shí)驗(yàn)?zāi)康模菏炀氄莆毡淼慕⒑蛿?shù)據(jù)完整性速描定義方法,實(shí)踐DBMS提供的數(shù)據(jù)完整性功能,加深對(duì)數(shù)據(jù)完整性的理解。 實(shí)驗(yàn)方法:在實(shí)驗(yàn)一建立數(shù)據(jù)庫(kù)的基礎(chǔ)上用CREATE SCHEMA命令建立模式,用CREATE TA
12、BLE命令建立表并定義數(shù)據(jù)完整性約束(注意:需要有CREATE SCHEMA和CREATE TABLE的權(quán)限,或者其他具有相應(yīng)權(quán)限的身份,有關(guān)權(quán)限的內(nèi)容請(qǐng)參見(jiàn)課文5.2節(jié)),用ALTER TABLE命令修改表結(jié)構(gòu)。 實(shí)驗(yàn)要求: 1、 用CREATE SCHEMA命令建立模式(自己命名模式名稱(chēng))。 create database 實(shí)驗(yàn)create schema wusunde2、 在定義的模式下參照?qǐng)D1和表1使用CREATE TABLE命令建立表并定義完整性約束。create table wusu
13、nde.倉(cāng)庫(kù)(倉(cāng)庫(kù)號(hào) char(6) primary key check(倉(cāng)庫(kù)號(hào) like 'A-ZA-Z0-90-90-90-9'), 城市 char(10) unique not null, 面積 int check(面積>=50)create table wusunde.職工(職工號(hào) char(8) primary key check(職工號(hào) like 'A-ZA-Z0-90-90-90-90-90-9'), 倉(cāng)庫(kù)號(hào) char(6) constraint ck foreign key references wusunde.倉(cāng)庫(kù)(倉(cāng)庫(kù)號(hào)), 工資 mo
14、ney check(工資>=1000 and 工資<=10000)create table wusunde.供應(yīng)商(供應(yīng)商號(hào) char(4) primary key check(供應(yīng)商號(hào) like 'S0-90-90-9'), 供應(yīng)商名 char(16), 地址 char(30)create table wusunde.訂購(gòu)單(職工號(hào) char(8) not null foreign key references wusunde.職工(職工號(hào)), 供應(yīng)商號(hào) char(4) null constraint supply foreign key references w
15、usunde.供應(yīng)商(供應(yīng)商號(hào)) on delete set null, 訂購(gòu)單號(hào) char(6) primary key check(訂購(gòu)單號(hào) like 'OR0-90-90-90-9'), 訂購(gòu)日期 datetime default getdate(), 金額 money default null)create table wusunde.訂購(gòu)單明細(xì)(訂購(gòu)單號(hào) char(6) not null foreign key references wusunde.訂購(gòu)單(訂購(gòu)單號(hào)), 序號(hào) char(2), 產(chǎn)品名稱(chēng) char(20), 單價(jià) money default null
16、check(單價(jià)>0), 數(shù)量 int not null check(數(shù)量>0), primary key(訂購(gòu)單號(hào),序號(hào)) 3、 使用ALTER TABLE命令按如下要求修改表結(jié)構(gòu): (1) 為訂購(gòu)單增加一個(gè)新的字段“完成日期”,類(lèi)型為日期時(shí)間型,默認(rèn)是空值。alter table wusunde.訂購(gòu)單add 完成日期 datetime default null(2) 為訂單明細(xì)表的“數(shù)量”字段重新定義約束:大于0、小于等于1000的正整數(shù),不允許為空值。alter table wusunde.訂購(gòu)單明細(xì)add check(數(shù)量
17、 between 0 and 1000)alter table wusunde.訂購(gòu)單明細(xì)alter column 數(shù)量 int not null (3) 將供應(yīng)商表的供應(yīng)商名字段的類(lèi)型修改為varchar(30)。alter table wusunde.供應(yīng)商alter column 供應(yīng)商名 varchar(30)實(shí)驗(yàn)3 數(shù)據(jù)操作和完整性約束的作用 實(shí)驗(yàn)名稱(chēng):數(shù)據(jù)操作筆完整性約束的作用 實(shí)驗(yàn)內(nèi)容:在實(shí)驗(yàn)二的基礎(chǔ)上完成數(shù)據(jù)的插入操作,然后進(jìn)行部分修改和刪除操作,在這些操作中體會(huì)數(shù)據(jù)完整性約束的作用。 實(shí)驗(yàn)?zāi)康模菏炀氄莆誗QL的INSERT,U
18、PDATE和DELETE命令,深刻理解數(shù)據(jù)完整性約束的作用以及約束時(shí)機(jī)。 實(shí)驗(yàn)方法:在實(shí)驗(yàn)二的基礎(chǔ)上首先用INSERT命令插入各個(gè)表的記錄,然后使用UPDATE和DELETE命令對(duì)部分記錄進(jìn)行修改和刪除操作。 實(shí)驗(yàn)要求: 1、 自行設(shè)計(jì)各個(gè)表的記錄,其中倉(cāng)庫(kù)表至少5條記錄,職工表至少10條記錄、供應(yīng)商表至少5條記錄,訂購(gòu)單表至少20條記錄,訂購(gòu)單明細(xì)表至少50條記錄。2、 使用INSERT命令完成記錄的插入操作,要求分別設(shè)計(jì)若干違反實(shí)體完整性、參照完整性和用戶(hù)定義完整性約束的插入操作,并分析原因。 3、 設(shè)計(jì)若干刪除操作,體
19、會(huì)執(zhí)行刪除操作時(shí)檢查參照完整性規(guī)則的效果(要求涉及拒絕刪除、空值刪除和級(jí)聯(lián)刪除等不同的處理方式)。 4、 設(shè)計(jì)若干更新操作,體會(huì)執(zhí)行更新操作時(shí)檢查實(shí)體完整性規(guī)則、參照完整性規(guī)則和用戶(hù)定義完整性規(guī)則的效果。 5、 將x城市倉(cāng)庫(kù)的職工的工資提高10%。 6、 用UPDATE語(yǔ)句完成訂購(gòu)單表金額字段的計(jì)算(提示:某張訂購(gòu)單的金額為該訂購(gòu)單所有訂購(gòu)項(xiàng)目(訂購(gòu)單明細(xì))單價(jià)乘以數(shù)量的總和)。 7、 設(shè)計(jì)23個(gè)刪除操作,它需要另外一個(gè)表中的數(shù)據(jù)作為刪除條件(例如,按指定的供應(yīng)商名稱(chēng)刪除訂購(gòu)單記錄)。 8、 在
20、實(shí)驗(yàn)報(bào)告中給出具體的記錄和設(shè)計(jì)的操作,并針對(duì)各種數(shù)據(jù)完整性檢查,給出具體的分析和討論。實(shí)驗(yàn)操作:1、分別設(shè)計(jì)倉(cāng)庫(kù)表5條記錄,職工表10條記錄、供應(yīng)商表5條記錄,訂購(gòu)單表20條記錄,訂購(gòu)單明細(xì)表50條記錄。insert into wusunde.倉(cāng)庫(kù) values('QW0001','廣州',500)insert into wusunde.倉(cāng)庫(kù) values('QW0002','上海',900)insert into wusunde.倉(cāng)庫(kù) values('QW0003','北京',250)insert
21、 into wusunde.倉(cāng)庫(kù) values('QW0004','紐約',1000)insert into wusunde.倉(cāng)庫(kù) values('QW0005','深圳',650)insert into wusunde.職工 values('ZG000001','QW0005',3000)insert into wusunde.職工 values('ZG000002','QW0001',5600)insert into wusunde.職工 values('
22、ZG000003','QW0004',6600)insert into wusunde.職工 values('ZG000004','QW0002',3800)insert into wusunde.職工 values('ZG000005','QW0005',3900)insert into wusunde.職工 values('ZG000006','QW0001',4600)insert into wusunde.職工 values('ZG000007',
23、39;QW0003',4000)insert into wusunde.職工 values('ZG000008','QW0003',5000)insert into wusunde.職工 values('ZG000009','QW0002',4800)insert into wusunde.職工 values('ZG000010','QW0004',6000)insert into wusunde.供應(yīng)商 values('S001','華廣','深圳&
24、#39;)insert into wusunde.供應(yīng)商 values('S002','廣工','廣州')insert into wusunde.供應(yīng)商 values('S003','美的','茂名')insert into wusunde.供應(yīng)商 values('S004','樂(lè)視','深圳')insert into wusunde.供應(yīng)商 values('S005','康佳','廣州')insert
25、into wusunde.訂購(gòu)單 values('ZG000007','S005','OR0001','2015-1-6',5000,'2015-2-5')insert into wusunde.訂購(gòu)單 values('ZG000002','S001','OR0002','2015-2-3',10000,'2015-3-4')insert into wusunde.訂購(gòu)單 values('ZG000003','S
26、004','OR0003','2015-2-17',3000,'2015-5-16')insert into wusunde.訂購(gòu)單 values('ZG000006','S002','OR0004','2015-2-16',9000,'2015-4-18')insert into wusunde.訂購(gòu)單 values('ZG000010','S005','OR0005','2015-3-20',
27、8000,'2015-6-27')insert into wusunde.訂購(gòu)單 values('ZG000001','S001','OR0006','2015-3-22',7500,'2015-7-29')insert into wusunde.訂購(gòu)單 values('ZG000006','S003','OR0021','2015-2-15',4600,'2015-10-13')insert into wusunde.
28、訂購(gòu)單 values('ZG000004','S002','OR0007','2015-2-23',8500,'2015-8-29')insert into wusunde.訂購(gòu)單 values('ZG000003','S005','OR0008','2015-1-5',3600,'2015-11-11')insert into wusunde.訂購(gòu)單 values('ZG000001','S004',&
29、#39;OR0009','2015-1-31',7600,'2015-12-14')insert into wusunde.訂購(gòu)單 values('ZG000007','S001','OR0010','2015-3-25',12000,'2015-7-30')insert into wusunde.訂購(gòu)單 values('ZG000008','S002','OR0011','2015-2-26',4600,
30、9;2015-9-27')insert into wusunde.訂購(gòu)單 values('ZG000010','S002','OR0012','2015-1-28',3400,'2015-11-21')insert into wusunde.訂購(gòu)單 values('ZG000009','S004','OR0013','2015-3-19',2300,'2015-10-24')insert into wusunde.訂購(gòu)單 val
31、ues('ZG000007','S005','OR0014','2015-2-23',9000,'2015-9-21')insert into wusunde.訂購(gòu)單 values('ZG000008','S003','OR0015','2015-2-27',6400,'2015-12-23')insert into wusunde.訂購(gòu)單 values('ZG000002','S001','OR
32、0016','2015-1-30',7900,'2015-6-30')insert into wusunde.訂購(gòu)單 values('ZG000005','S004','OR0017','2015-1-27',20000,'2015-8-18')insert into wusunde.訂購(gòu)單 values('ZG000009','S004','OR0018','2015-3-5',13000,'2015-
33、7-31')insert into wusunde.訂購(gòu)單 values('ZG000004','S002','OR0019','2015-3-14',7000,'2015-6-17')insert into wusunde.訂購(gòu)單 values('ZG000006','S005','OR0020','2015-2-21',4300,'2015-5-25')insert into wusunde.訂購(gòu)單明細(xì) values(
34、9;OR0020','01','沐浴露',32,240)insert into wusunde.訂購(gòu)單明細(xì) values('OR0001','02','洗衣粉',30,125)insert into wusunde.訂購(gòu)單明細(xì) values('OR0012','03','洗衣液',39,59)insert into wusunde.訂購(gòu)單明細(xì) values('OR0014','04','香皂',14,99)ins
35、ert into wusunde.訂購(gòu)單明細(xì) values('OR0004','05','鹽',2,169)insert into wusunde.訂購(gòu)單明細(xì) values('OR0005','06','醬油',14,65)insert into wusunde.訂購(gòu)單明細(xì) values('OR0011','07','化妝品',26,24)insert into wusunde.訂購(gòu)單明細(xì) values('OR0019','08
36、','洗面奶',39,68)insert into wusunde.訂購(gòu)單明細(xì) values('OR0008','09','面膜',5,147)insert into wusunde.訂購(gòu)單明細(xì) values('OR0003','10','花生油',36,258)insert into wusunde.訂購(gòu)單明細(xì) values('OR0017','11','鼠標(biāo)',69,72)insert into wusunde.訂購(gòu)單明細(xì)
37、values('OR0015','12','鼠標(biāo)墊',18,64)insert into wusunde.訂購(gòu)單明細(xì) values('OR0016','13','移動(dòng)電源',58,69)insert into wusunde.訂購(gòu)單明細(xì) values('OR0012','14','插座',37,169)insert into wusunde.訂購(gòu)單明細(xì) values('OR0011','15','牛奶',
38、72,111)insert into wusunde.訂購(gòu)單明細(xì) values('OR0020','16','洗潔精',9,114)insert into wusunde.訂購(gòu)單明細(xì) values('OR0019','17','潔廁液',6,300)insert into wusunde.訂購(gòu)單明細(xì) values('OR0010','18','雞蛋',14,124)insert into wusunde.訂購(gòu)單明細(xì) values('OR0009
39、','19','牛肉',38,300)insert into wusunde.訂購(gòu)單明細(xì) values('OR0016','20','內(nèi)褲',59,654)insert into wusunde.訂購(gòu)單明細(xì) values('OR0018','21','鞋子',299,300)insert into wusunde.訂購(gòu)單明細(xì) values('OR0015','22','手表',890,34)insert into
40、 wusunde.訂購(gòu)單明細(xì) values('OR0005','23','錢(qián)包',129,124)insert into wusunde.訂購(gòu)單明細(xì) values('OR0008','24','行李箱',344,64)insert into wusunde.訂購(gòu)單明細(xì) values('OR0014','25','手袋',3,874)insert into wusunde.訂購(gòu)單明細(xì) values('OR0018','26'
41、;,'籃球',360,59)insert into wusunde.訂購(gòu)單明細(xì) values('OR0003','27','足球',260,36)insert into wusunde.訂購(gòu)單明細(xì) values('OR0005','28','羽毛球拍',78,69)insert into wusunde.訂購(gòu)單明細(xì) values('OR0007','29','乒乓球拍',89,145)insert into wusunde.訂購(gòu)單明細(xì)
42、values('OR0020','30','羽毛球',5,645)insert into wusunde.訂購(gòu)單明細(xì) values('OR0013','31','乒乓球',3,542)insert into wusunde.訂購(gòu)單明細(xì) values('OR0016','32','牙膏',23,200)insert into wusunde.訂購(gòu)單明細(xì) values('OR0009','33','牙刷',6
43、,456)insert into wusunde.訂購(gòu)單明細(xì) values('OR0019','34','防曬霜',56,65)insert into wusunde.訂購(gòu)單明細(xì) values('OR0017','35','水杯',39,1187)insert into wusunde.訂購(gòu)單明細(xì) values('OR0010','36','拖把',15,187)insert into wusunde.訂購(gòu)單明細(xì) values('OR0004&
44、#39;,'37','掃把',6,200)insert into wusunde.訂購(gòu)單明細(xì) values('OR0005','38','垃圾桶',16,254)insert into wusunde.訂購(gòu)單明細(xì) values('OR0006','39','書(shū)',46,688)insert into wusunde.訂購(gòu)單明細(xì) values('OR0016','40','衛(wèi)生紙',13,500)insert into w
45、usunde.訂購(gòu)單明細(xì) values('OR0020','41','相機(jī)',3698,32)insert into wusunde.訂購(gòu)單明細(xì) values('OR0013','42','手機(jī)',2000,200)insert into wusunde.訂購(gòu)單明細(xì) values('OR0017','43','音響',500,143)insert into wusunde.訂購(gòu)單明細(xì) values('OR0001','44
46、9;,'吸塵器',1688,40)insert into wusunde.訂購(gòu)單明細(xì) values('OR0012','45','油煙機(jī)',3500,10)insert into wusunde.訂購(gòu)單明細(xì) values('OR0010','46','臺(tái)式電腦',4000,25)insert into wusunde.訂購(gòu)單明細(xì) values('OR0013','47','空調(diào)',50,230)insert into wusunde.訂
47、購(gòu)單明細(xì) values('OR0005','48','電視機(jī)',1300,100)insert into wusunde.訂購(gòu)單明細(xì) values('OR0016','49','洗衣機(jī)',3400,15)insert into wusunde.訂購(gòu)單明細(xì) values('OR0011','50','筆記本',6000,20)2、 使用INSERT命令完成記錄的插入操作,要求分別設(shè)計(jì)若干違反實(shí)體完整性、參照完整性和用戶(hù)定義完整性約束的插入操作,
48、并分析原因。1)違反實(shí)體完整性 insert into wusunde.倉(cāng)庫(kù) values('QW0001','惠州',600) 原因:違反了PRIMARY KEY 約束'PK_倉(cāng)庫(kù)_530C599C7F60ED59'。不能在對(duì)象'wusunde.倉(cāng)庫(kù)' 中插入重復(fù)鍵。語(yǔ)句已終止。2)違反參照完整性insert into wusunde.職工 values('ZG000011','QW0009',3000)原因:倉(cāng)庫(kù)號(hào)列參照倉(cāng)庫(kù)表的倉(cāng)庫(kù)號(hào),此時(shí)在倉(cāng)庫(kù)表中找不到倉(cāng)庫(kù)號(hào)為QW0009的倉(cāng)庫(kù)。INSERT
49、 語(yǔ)句與FOREIGN KEY 約束"FK_職工_倉(cāng)庫(kù)號(hào)_0AD2A005"沖突。該沖突發(fā)生于數(shù)據(jù)庫(kù)"實(shí)驗(yàn)",表"wusunde.倉(cāng)庫(kù)", column '倉(cāng)庫(kù)號(hào)'。3)違反用戶(hù)定義完整性insert into wusunde.倉(cāng)庫(kù) values('QW0006','天津',30)原因:在定義時(shí),面積要大于等于50,這里面積為30,明顯違反了用戶(hù)定義完整性3、 設(shè)計(jì)若干刪除操作,體會(huì)執(zhí)行刪除操作時(shí)檢查參照完整性規(guī)則的效果(要求涉及拒絕刪除、空值刪除和級(jí)聯(lián)刪除等不同的處理方式)。
50、 1)拒絕刪除delete wusunde.倉(cāng)庫(kù) where 城市='北京'刪除操作失敗。因?yàn)橛新毠⒄樟烁捎涗?)空值刪除delete wusunde.供應(yīng)商 where 供應(yīng)商號(hào)='S002'因?yàn)閯h除參照完整性規(guī)則定義為set null3)級(jí)聯(lián)刪除alter table wusunde.職工drop constraint ckalter table wusunde.職工drop column 倉(cāng)庫(kù)號(hào)alter table wusunde.職工add 倉(cāng)庫(kù)號(hào) char(6)constraint ck foreign key references wu
51、sunde.倉(cāng)庫(kù)on delete cascadeon update cascade 4、 設(shè)計(jì)若干更新操作,體會(huì)執(zhí)行更新操作時(shí)檢查實(shí)體完整性規(guī)則、參照完整性規(guī)則和用戶(hù)定義完整性規(guī)則的效果。 1)違反參照完整性u(píng)pdate wusunde.職工 set 倉(cāng)庫(kù)號(hào)='QW0006' where 職工號(hào)='ZG000002'更新操作失敗,因?yàn)槁毠け硭鶇⒖嫉膫}(cāng)庫(kù)表中不存在倉(cāng)庫(kù)號(hào)為QW0006的倉(cāng)庫(kù)。2)違反實(shí)體完整性u(píng)pdate wusunde.倉(cāng)庫(kù) set 倉(cāng)庫(kù)號(hào)=null where 倉(cāng)庫(kù)號(hào)='QW0001'更新操作失敗,因?yàn)閭}(cāng)庫(kù)
52、號(hào)是關(guān)鍵字,不能為空。3) 更新違反自定義完整性u(píng)pdate wusunde.倉(cāng)庫(kù) set 面積=30 where 倉(cāng)庫(kù)號(hào)='QW0001'更新操作失敗,因?yàn)槊娣e被定義約束大于或等于50,此處面積=30,顯然違反了約束。5、 將x城市倉(cāng)庫(kù)的職工的工資提高10%。 update wusunde.職工 set 工資=(工資+(工資*0.1)6、 用UPDATE語(yǔ)句完成訂購(gòu)單表金額字段的計(jì)算(提示:某張訂購(gòu)單的金額為該訂購(gòu)單所有訂購(gòu)項(xiàng)目(訂購(gòu)單明細(xì))單價(jià)乘以數(shù)量的總和)。 update wusunde.訂購(gòu)單 set 金額=(select SU
53、M(單價(jià)*數(shù)量) from wusunde.訂購(gòu)單明細(xì) where 訂購(gòu)單明細(xì).訂購(gòu)單號(hào)=訂購(gòu)單.訂購(gòu)單號(hào))7、 設(shè)計(jì)23個(gè)刪除操作,它需要另外一個(gè)表中的數(shù)據(jù)作為刪除條件(例如,按指定的供應(yīng)商名稱(chēng)刪除訂購(gòu)單記錄)1)delete wusunde.職工 where 倉(cāng)庫(kù)號(hào) in (select 倉(cāng)庫(kù)號(hào) from wusunde.倉(cāng)庫(kù) where 城市='北京')2)delete wusunde.訂購(gòu)單 where 供應(yīng)商號(hào) in (select 供應(yīng)商號(hào) from wusunde.供應(yīng)商 where 供應(yīng)商名='廣工')實(shí)驗(yàn)4 數(shù)據(jù)查詢(xún)
54、0;實(shí)驗(yàn)名稱(chēng):使用SQL SELECT語(yǔ)句的數(shù)據(jù)查詢(xún)操作。 實(shí)驗(yàn)內(nèi)容:在實(shí)驗(yàn)2和實(shí)驗(yàn)3的基礎(chǔ)上完成規(guī)定的查詢(xún)操作。 實(shí)驗(yàn)?zāi)康模菏炀氄莆誗QL SELECT命令。 實(shí)驗(yàn)方法:在實(shí)驗(yàn)2和實(shí)驗(yàn)3的基礎(chǔ)上使用SQL SELECT命令完成實(shí)驗(yàn)要求中所規(guī)定的各種查詢(xún)。 實(shí)驗(yàn)要求: 用SQL SELECT命令完成以下查詢(xún)(在完成查詢(xún)時(shí)將題目中的x,y等根據(jù)實(shí)驗(yàn)三產(chǎn)生的數(shù)據(jù)具體化): (1)(12)是一般簡(jiǎn)單查詢(xún): 1.職工表查詢(xún)所有工資值(考慮去掉和不去掉重復(fù)值兩種情況)。 2.查詢(xún)倉(cāng)庫(kù)表
55、中的全部信息。 3.查詢(xún)工資多于x元的職工號(hào)。 4.查詢(xún)哪些倉(cāng)庫(kù)有工資多于y元的職工。 5.給出在倉(cāng)庫(kù)x或y(x,y是倉(cāng)庫(kù)號(hào))工作,并且工資少于z元的職工號(hào)。 6.查詢(xún)工資在xy元范圍內(nèi)的職工信息(x>y)。 7.從供應(yīng)商表中查詢(xún)出全部公司的信息(不要工廠或其他供應(yīng)商的信息,即供應(yīng)商名最后兩個(gè)漢字是“公司”的記錄)。 8.查詢(xún)城市不是x的全部倉(cāng)庫(kù)信息。 9.查詢(xún)尚未確定供應(yīng)商的訂購(gòu)單(即訂購(gòu)單的供應(yīng)商號(hào)為空值的記錄)。 10.查詢(xún)已經(jīng)確定了供應(yīng)商的訂購(gòu)單信息。 11.按職工的工資值升序列出全部職工信
56、息。 12.先按倉(cāng)庫(kù)號(hào)升序,再按工資降序列出全部職工信息。 (13)(21)使用連接查詢(xún): 13.查詢(xún)工資多于x元的職工號(hào)和他們所在的城市。 14.查詢(xún)工作在面積大于x的倉(cāng)庫(kù)的職工號(hào)以及這些職工工作所在的城市。 15.根據(jù)職工表列出上一級(jí)經(jīng)理及其職工(被其領(lǐng)導(dǎo))的清單(即列出誰(shuí)領(lǐng)導(dǎo)誰(shuí)的清單)。 16.列出倉(cāng)庫(kù)表和職工表的廣義笛卡兒積的去處結(jié)果。 17.根據(jù)倉(cāng)庫(kù)表和職工表的廣義笛卡兒積得到倉(cāng)庫(kù)表和職工表進(jìn)行自然連接的結(jié)果。 18.查詢(xún)供應(yīng)商訂購(gòu)單信息,查詢(xún)結(jié)果中包括供應(yīng)商號(hào)、供應(yīng)商名、訂購(gòu)單號(hào)和訂購(gòu)日期這
57、4個(gè)字段。 19.查詢(xún)供應(yīng)商訂購(gòu)單信息,查詢(xún)結(jié)果中包括供應(yīng)商號(hào)、供應(yīng)商名、訂購(gòu)單號(hào)和訂購(gòu)日期這4個(gè)字段,要求結(jié)果中列出所有供應(yīng)商信息(包括目前沒(méi)有訂購(gòu)單的)。 20.查詢(xún)供應(yīng)商訂購(gòu)單信息,查詢(xún)結(jié)果中包括供應(yīng)商號(hào)、供應(yīng)商名、訂購(gòu)單號(hào)和訂購(gòu)日期這4個(gè)字段,要求結(jié)果中能夠反映目前沒(méi)有確定供應(yīng)商的訂購(gòu)單情況。 21.查詢(xún)供應(yīng)商訂購(gòu)單信息,查詢(xún)結(jié)果中包括供應(yīng)商號(hào)、供應(yīng)商名、訂購(gòu)單號(hào)和訂購(gòu)日期這4個(gè)字段,要求結(jié)果即能反映目前沒(méi)有訂購(gòu)半日的供應(yīng)商信息,又能反映目前沒(méi)有確定供應(yīng)商的訂購(gòu)單情況。 提示:(18)(21)分別用內(nèi)連接、左連接、右連接和全連接完成,分析它們的效
58、果。 (22)(31)使用嵌套查詢(xún)(注意使用ANY,ALL和EXISTS): 22.查詢(xún)哪些城市至少有一個(gè)倉(cāng)庫(kù)的職工的工資為x元。 23.查詢(xún)所有職工的工資都多于x元的倉(cāng)庫(kù)的信息。24.查詢(xún)和職工x掙同樣工資的所有職工信息。 25.查詢(xún)哪些城市的倉(cāng)庫(kù)向地址為x的供應(yīng)商發(fā)出了訂購(gòu)單。 26.查詢(xún)地址為x的供應(yīng)商目前有y城市倉(cāng)庫(kù)的訂購(gòu)單的供應(yīng)商的名稱(chēng)(分別用嵌套查詢(xún)和連接查詢(xún)完成,分析各自的效率)。 27.查詢(xún)有職工的工資大于或等于x倉(cāng)庫(kù)中任何一名職工的工資的倉(cāng)庫(kù)號(hào)。 28.查詢(xún)有職工的工資大于或等于x倉(cāng)庫(kù)中所有職工
59、的工資的倉(cāng)庫(kù)號(hào)。 29.列出每人職工經(jīng)手的具有最高金額的訂購(gòu)單信息。 30.查詢(xún)目前還沒(méi)有職工的倉(cāng)庫(kù)的信息。31.查詢(xún)目前至少有一個(gè)職工的倉(cāng)庫(kù)的信息。 (32)(42)匯總和分組查詢(xún): 32.查詢(xún)目前倉(cāng)庫(kù)所在城市的數(shù)目。 33.查詢(xún)目前需要支付的職工工資的總數(shù)。 34.查詢(xún)x和y兩個(gè)城市的倉(cāng)庫(kù)職工的工資總和。 35.查詢(xún)所有職工的工資都多于x元的倉(cāng)庫(kù)的平均面積。 36.查詢(xún)工資大于x元的職工所經(jīng)手的訂購(gòu)單的最高金額。 37.查詢(xún)每個(gè)倉(cāng)庫(kù)的職工的平均工資。 38.查詢(xún)每個(gè)倉(cāng)庫(kù)的訂購(gòu)單的
60、最高金額、最低金額和平均金額。 39.查詢(xún)至少有5個(gè)訂購(gòu)項(xiàng)目的每張訂購(gòu)單的平均金額。 40.列出職工全部記錄并計(jì)算各倉(cāng)庫(kù)的平均工資和工資小計(jì),最后給出全體職工的平均工資和工資總和(使用COMPUTEBY和COMPUTE)。 41.列出全部訂購(gòu)單明細(xì)并計(jì)算各訂購(gòu)單的金額,最后給出所有訂購(gòu)單的平均金額和金額總計(jì)(使用COMPUTEBY和COMPUTE)。 42.列出全部訂購(gòu)單記錄并計(jì)算所有訂購(gòu)單的平均金額和金額總計(jì)(使用COMPUTE)實(shí)驗(yàn)操作: 1.職工表查詢(xún)所有工資值(考慮去掉和不去掉重復(fù)值兩種情況)。 select distinct
61、 工資 from wusunde.職工(去掉重復(fù)值)select all 工資 from wusunde.職工(不去掉重復(fù))2.查詢(xún)倉(cāng)庫(kù)表中的全部信息。 select * from wusunde.倉(cāng)庫(kù)3.查詢(xún)工資多于x元的職工號(hào)。 select 職工號(hào) from wusunde.職工 where 工資>50004.查詢(xún)哪些倉(cāng)庫(kù)有工資多于y元的職工。 select * from wusunde.倉(cāng)庫(kù) where 倉(cāng)庫(kù)號(hào) in(select 倉(cāng)庫(kù)號(hào) from wusunde.職工 where 工資>5000)5.給出在倉(cāng)庫(kù)x或y(x,y是倉(cāng)庫(kù)號(hào))工作,并
62、且工資少于z元的職工號(hào)。select 職工號(hào) from wusunde.職工 where 倉(cāng)庫(kù)號(hào) in ('QW0005','QW0002') and 工資<50006.查詢(xún)工資在xy元范圍內(nèi)的職工信息(x>y)。 select * from wusunde.職工 where 工資 between 3000 and 50007.從供應(yīng)商表中查詢(xún)出全部公司的信息(不要工廠或其他供應(yīng)商的信息,即供應(yīng)商名最后兩個(gè)漢字是“公司”的記錄)。 select * from wusunde.供應(yīng)商 where 供應(yīng)商名 like '%公司
63、'8.查詢(xún)城市不是x的全部倉(cāng)庫(kù)信息。 select * from wusunde.倉(cāng)庫(kù) where 城市!='北京'9.查詢(xún)尚未確定供應(yīng)商的訂購(gòu)單(即訂購(gòu)單的供應(yīng)商號(hào)為空值的記錄)。select * from wusunde.訂購(gòu)單 where 供應(yīng)商號(hào) is null 10.查詢(xún)已經(jīng)確定了供應(yīng)商的訂購(gòu)單信息。 select * from wusunde.訂購(gòu)單 where 供應(yīng)商號(hào) is not null11.按職工的工資值升序列出全部職工信息。 select * from wusunde.職工 order by 工資 ASC1
64、2.先按倉(cāng)庫(kù)號(hào)升序,再按工資降序列出全部職工信息。 select * from wusunde.職工 order by 倉(cāng)庫(kù)號(hào) ASC,工資 DESC13.查詢(xún)工資多于x元的職工號(hào)和他們所在的城市。 select 職工號(hào),城市 from wusunde.職工 join wusunde.倉(cāng)庫(kù) on 職工.倉(cāng)庫(kù)號(hào)=倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào) where 工資>600014.查詢(xún)工作在面積大于x的倉(cāng)庫(kù)的職工號(hào)以及這些職工工作所在的城市。 select 職工號(hào),城市 from wusunde.職工 join wusunde.倉(cāng)庫(kù) on 職工.倉(cāng)庫(kù)號(hào)=倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào) wh
65、ere 面積>70015.根據(jù)職工表列出上一級(jí)經(jīng)理及其職工(被其領(lǐng)導(dǎo))的清單(即列出誰(shuí)領(lǐng)導(dǎo)誰(shuí)的清單)。略 16.列出倉(cāng)庫(kù)表和職工表的廣義笛卡兒積的去處結(jié)果。 select * from wusunde.倉(cāng)庫(kù) cross join wusunde.職工17.根據(jù)倉(cāng)庫(kù)表和職工表的廣義笛卡兒積得到倉(cāng)庫(kù)表和職工表進(jìn)行自然連接的結(jié)果。 select * from wusunde.倉(cāng)庫(kù) cross join wusunde.職工where 倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào)=職工.倉(cāng)庫(kù)號(hào)18.查詢(xún)供應(yīng)商訂購(gòu)單信息,查詢(xún)結(jié)果中包括供應(yīng)商號(hào)、供應(yīng)商名、訂購(gòu)單號(hào)和訂購(gòu)日期這4個(gè)字段。 s
66、elect 供應(yīng)商.供應(yīng)商號(hào),供應(yīng)商名,訂購(gòu)單號(hào),訂購(gòu)日期 from wusunde.供應(yīng)商 join wusunde.訂購(gòu)單on 供應(yīng)商.供應(yīng)商號(hào)=訂購(gòu)單.供應(yīng)商號(hào)19.查詢(xún)供應(yīng)商訂購(gòu)單信息,查詢(xún)結(jié)果中包括供應(yīng)商號(hào)、供應(yīng)商名、訂購(gòu)單號(hào)和訂購(gòu)日期這4個(gè)字段,要求結(jié)果中列出所有供應(yīng)商信息(包括目前沒(méi)有訂購(gòu)單的)。 select 供應(yīng)商.供應(yīng)商號(hào),供應(yīng)商名,訂購(gòu)單號(hào),訂購(gòu)日期 from wusunde.供應(yīng)商 left join wusunde.訂購(gòu)單on 供應(yīng)商.供應(yīng)商號(hào)=訂購(gòu)單.供應(yīng)商號(hào)20.查詢(xún)供應(yīng)商訂購(gòu)單信息,查詢(xún)結(jié)果中包括供應(yīng)商號(hào)、供應(yīng)商名、訂購(gòu)單號(hào)和訂購(gòu)日期這4個(gè)字段,要求結(jié)
67、果中能夠反映目前沒(méi)有確定供應(yīng)商的訂購(gòu)單情況。 select 供應(yīng)商.供應(yīng)商號(hào),供應(yīng)商名,訂購(gòu)單號(hào),訂購(gòu)日期 from wusunde.供應(yīng)商 right join wusunde.訂購(gòu)單 on 供應(yīng)商.供應(yīng)商號(hào)=訂購(gòu)單.供應(yīng)商號(hào)21.查詢(xún)供應(yīng)商訂購(gòu)單信息,查詢(xún)結(jié)果中包括供應(yīng)商號(hào)、供應(yīng)商名、訂購(gòu)單號(hào)和訂購(gòu)日期這4個(gè)字段,要求結(jié)果即能反映目前沒(méi)有訂購(gòu)半日的供應(yīng)商信息,又能反映目前沒(méi)有確定供應(yīng)商的訂購(gòu)單情況。 select 供應(yīng)商.供應(yīng)商號(hào),供應(yīng)商名,訂購(gòu)單號(hào),訂購(gòu)日期 from wusunde.供應(yīng)商 full join wusunde.訂購(gòu)單 on 供應(yīng)商.供應(yīng)商號(hào)=訂購(gòu)單.供應(yīng)商號(hào)22.查詢(xún)哪些城市至少有一個(gè)倉(cāng)庫(kù)的職工的工資為x元。 select 城市 from wusunde.倉(cāng)庫(kù) where 倉(cāng)庫(kù)號(hào)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 動(dòng)物細(xì)胞的結(jié)構(gòu)與功能探討試題及答案
- 植物與環(huán)境的關(guān)系以及生長(zhǎng)影響試題及答案
- 2025年地球物理觀測(cè)設(shè)備合作協(xié)議書(shū)
- 2025年高壓自動(dòng)分段器項(xiàng)目建議書(shū)
- CPSM考試材料及試題與答案
- 2024年采購(gòu)市場(chǎng)預(yù)測(cè)與挑戰(zhàn)試題及答案
- 水體生態(tài)系統(tǒng)的動(dòng)態(tài)變化試題及答案
- 統(tǒng)編版語(yǔ)文五年級(jí)下冊(cè)習(xí)作《中國(guó)的世界文化遺產(chǎn)》精美課件
- 天津市紅橋區(qū)2025年高三下學(xué)期第六次檢測(cè)化學(xué)試卷含解析
- 統(tǒng)編版語(yǔ)文五年級(jí)下冊(cè)第23課《童年的發(fā)現(xiàn)》精美課件
- 智慧養(yǎng)老考試題及答案
- 2025屆浙江省寧波市“十校”高三下學(xué)期3月聯(lián)考語(yǔ)文試題含答案
- 山東2025年山東科技職業(yè)學(xué)院招聘33人筆試歷年參考題庫(kù)附帶答案詳解
- (一模)2025年聊城市高三高考模擬歷史試題卷(含答案)
- 交友主題班會(huì)-遠(yuǎn)離“背后蛐蛐”課件
- 2025年大學(xué)生信息素養(yǎng)大賽培訓(xùn)考試題庫(kù)500題(附答案)
- 富鋰錳基正極材料氧空位可控構(gòu)筑及性能研究
- cissp中文版考試真題題庫(kù)500題(導(dǎo)出附答案)
- 2024成人肥胖食養(yǎng)指南
- 國(guó)家職業(yè)技能鑒定焊工初級(jí)工題庫(kù)(有答案)
- 2025年皖西衛(wèi)生職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年常考版參考題庫(kù)含答案解析
評(píng)論
0/150
提交評(píng)論