數(shù)據(jù)庫原理及應用——崔巍書后上機實驗_第1頁
數(shù)據(jù)庫原理及應用——崔巍書后上機實驗_第2頁
數(shù)據(jù)庫原理及應用——崔巍書后上機實驗_第3頁
數(shù)據(jù)庫原理及應用——崔巍書后上機實驗_第4頁
數(shù)據(jù)庫原理及應用——崔巍書后上機實驗_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫 上機實驗報告1一、實驗目的:理解SQL Server數(shù)據(jù)庫的存儲結(jié)構(gòu),掌握SQL Server數(shù)據(jù)庫的建立方法和維護方法。二、實驗內(nèi)容:在SQL Server環(huán)境下建立數(shù)據(jù)庫和維護數(shù)據(jù)庫。三、程序源代碼:-1CREATE DATABASE test1ON (NAME=test1_dat,  FILENAME='f:DBdatatest1dat.mdf',  SIZE= 10,  MAXSIZE= 50,  FILEGROWTH= 5 )LOG 

2、;ON(NAME=order_log,  FILENAME='f:DBdatatest1log.ldf',  SIZE= 5MB,  MAXSIZE= 25MB,  FILEGROWTH= 5MB) -2create database test2onprimary(name=test2_dat1,filename='f:DBdatatest2dat1.mdf'),(name=test2_dat2,filename='f:DBdatatest2da

3、t2.ndf'),(name=test2_dat3,filename='f:DBdatatest2dat3.ndf')log on(name=test2_log1,filename='f:DBdatatest2log1.ldf'),(name=test2_log2,filename='f:DBdatatest2log2.ldf')-3create database test3onprimary(name=test3_dat1,filename='f:DBdatatest3dat1.mdf'),

4、(name=test3_dat2,filename='f:DBdatatest3dat2.mdf'),filegroupg2(name=test3_dat3,filename='d:DBdatatest3dat3.ndf'),(name=test3_dat4,filename='d:DBdatatest3dat4.ndf'),filegroupg3(name=test3_dat5,filename='e:DBdatatest3dat5.ndf'),(name=test3_dat6,filename='e:DBdatates

5、t3dat6.ndf')log on(name=test3_log,filename='f:DBdatatest3log.ldf')-4alter database test1add file(name=test1new_dat,filename='f:DBdatatest1newdat.ndf',size=5MB)-5alter database test1modify file(name=test1_dat,size=15MB)-6dropdatabasetest3四、實驗數(shù)據(jù)、結(jié)

6、果分析:若沒有指定size,則默認為1MB,沒有指定Maxsize,文件可以增長到磁盤滿為止,沒有指定Filegrowth,則默認為10%。五、總結(jié):CREATE DATABASE dataname 創(chuàng)建數(shù)據(jù)庫ALTER DATABASE database 修改數(shù)據(jù)庫DROP DATABASE dataname 刪除數(shù)據(jù)庫數(shù)據(jù)庫系統(tǒng)及應用 上機實驗報告2一、實驗目的:掌握表和索引的建立方法及表結(jié)構(gòu)的修改方法,并實踐DBMS提供的數(shù)據(jù)完整性功能,加深對數(shù)據(jù)完整性的理解。二、實驗內(nèi)容:建立表,修改表結(jié)構(gòu),建立索引,數(shù)據(jù)完整性描述。三.、程序源代碼: crea

7、te database 訂單管理 create table  客戶(客戶號  char(8)  primary  key  check(客戶號  like  'A-z%'),客戶名稱  varchar(40)  not  null,聯(lián)系人  char(8),地址  varchar(40),郵政編碼  char(6)  check(郵政編碼  like  '0-90-90-9

8、0-90-90-9'),  char(12)  check(  like  '10-90-90-90-90-90-90-90-90-90-90-9') create  table   產(chǎn)品(產(chǎn)品號  char(8)  primary  key  check(產(chǎn)品號  like  'A-ZA-Z%'),產(chǎn)品名稱  varchar(40),規(guī)格說明  char(40)  constraint

9、  uni  unique,單價  smallmoney  constraint  dj  check(單價>0) create  table 訂購單(客戶號  char(8)  no  tnull  foreign  key  references 客戶,訂單號  char(8)  primary  key,訂購日期  datetime  default  getdat

10、e() create  table 訂單名細(訂單號  char(8)  foreign  key  references 訂購單,序號  tinyint,產(chǎn)品號  char(8)  not  null  foreign  key  references 產(chǎn)品,數(shù)量  smallin  tconstraint  sl  check(數(shù)量>0),primarykey(訂單號,序號) 

11、-修改產(chǎn)品表-1alter  table 產(chǎn)品drop constraint  unialter  table 產(chǎn)品alter column 規(guī)格說明  varchar(40)alter  table 產(chǎn)品add  constraint  uni  unique (規(guī)格說明)-2alter  table 訂購單  add   完成日期  datetime  default &#

12、160;null-3alter  table 訂單名細  drop  constraint  slalter  table 訂單名細  add  constraint  sl  check(數(shù)量>0 and 數(shù)量<1000)-建立索引-1create  index  cus_idx  on 客戶(客戶名稱)-2create unique  index   gdn_nui  o

13、n 產(chǎn)品(產(chǎn)品名稱)-3  創(chuàng)建表時,primary key 隱式地創(chuàng)建了聚集索引,而一個表中只能有一個聚集索引。create  clustered  index   oid_clus  on 訂購單(訂單號)    -失敗-4create  index   item_idx   on 訂單名細(訂單號,序號,數(shù)量  desc)數(shù)據(jù)庫系統(tǒng)及應用 上機實驗報告3一、實驗目的:為實驗2建立的表設計一組數(shù)據(jù)進行插

14、入、刪除、修改等操作,并體會數(shù)據(jù)完整性約束的作用,加深對數(shù)據(jù)完整性及其約束的理解。二、實驗內(nèi)容:數(shù)據(jù)的插入、更新和刪除。三.、程序源代碼: -1、部分記錄insert into 客戶 values('C001','A公司','小明','北京','123456','143567568457')insert into 客戶 values('C002','B公司','小李','上海

15、','234567','146389045634')insert into 客戶(客戶號,客戶名稱) values('C009','J商場') insert into 產(chǎn)品 values('GD001','iphone','4s','5000')insert into 產(chǎn)品 values('GD002','ipad','2

16、g','5500')insert into 產(chǎn)品(產(chǎn)品號,產(chǎn)品名稱) values('GD010','Mac Pro') insert into 訂購單(客戶號,訂單號) values('C001','or01')insert into 訂購單(客戶號,訂單號) values('C001','or02')insert into 訂購單(訂單號) v

17、alues('or19') insert into 訂單名細  values('or01','1','GD001','4')insert into 訂單名細  values('or01','2','GD001','3')insert into 訂單名細  values('or01','3','GD002',

18、'6')insert into 訂單名細(訂單號,序號,產(chǎn)品號) values('or14','28','GD006')-2delete from 客戶 where 客戶號='C001' -受參照完整性約束delete from訂購單 where 訂單號='or01'  -受參照完整性約束-3update 訂購單 set 訂單號=null&#

19、160;where 客戶號='C001'  -受實體完整性約束update 訂購單 set 客戶號='C011' where 訂單號='or04'-受參照完整性約束update 訂購單 set 客戶號='C009' where 訂單號='or07'  -更新成功update 訂單名細 set 數(shù)量=0  where序號='

20、;9' -受用戶定義完整性約束-4update 訂單名細 set 數(shù)量=數(shù)量+10from 訂購單where 訂購單.訂單號=訂單名細.訂單號 and 客戶號='C002'-5delete from 訂單名細from 訂購單where 訂購單.訂單號=訂單名細.訂單號 and 客戶號='C002'四、實驗數(shù)據(jù)、結(jié)果分析:-2在刪除客戶號為“C002”的記錄時無法刪除,因為客戶表被訂購單表參照。刪除訂購單號為“or01

21、”的記錄時無法刪除,因為訂單名細表參照訂購單表。-3第一個更新根據(jù)實體完整性約束,訂單號是主關鍵字,不能為空值。第二個更新根據(jù)參照完整性約束,訂購單表參照客戶表,而客戶表中沒有客戶號為“C011”的客戶。第四個更新根據(jù)用戶定義完整性約束,數(shù)量必須為正整數(shù)。-4使客戶號為C002的訂購單的訂購數(shù)量增加10.-5刪掉客戶號為C002的訂單名細記錄。五、總結(jié):插入:INSERT INTO <表名>(<列名>,<列名>)values(<表達式>,<表達式>)  更新:update <表名> set <列名

22、>=<表達式>,<列名>=<表達式>from<表名> where<邏輯表達式>刪除:DELETE FROM <表名>FROM <表名>WHERE <邏輯表達式>完整性約束影響插入、更新和刪除等操作數(shù)據(jù)庫系統(tǒng)及應用 上機實驗報告4一、實驗目的:熟練掌握SQL SELECT語句,能夠運用該語句完成各種查詢。二、實驗內(nèi)容:用SQL SELECT語句完成各種數(shù)據(jù)查詢。三.、程序源代碼:-1select * from 客戶-2select 客戶號 from 訂購單-3select * from 產(chǎn)品 w

23、here 單價>=5000-4select * from 產(chǎn)品 where 單價>5000 and 產(chǎn)品名稱='Macbook'-5select * from 產(chǎn)品 where 單價>6000 and 產(chǎn)品名稱 in('Macbook','ipad')-6select c.客戶名稱,c.聯(lián)系人,c. ,o.訂單號from 客戶 c,訂購單 owhere o.訂購日期 between '2011-10-30' and '2011-12-1'and c.客戶號=o.客戶號 -7select

24、distinct 客戶名稱,聯(lián)系人, from 客戶 c,產(chǎn)品 g,訂購單 o,訂單名細 dwhere 產(chǎn)品名稱='iphone'and g.產(chǎn)品號=d.產(chǎn)品號and d.訂單號=o.訂單號and o.客戶號=c.客戶號-8select * from 訂單名細where 產(chǎn)品號 in(select 產(chǎn)品號from 產(chǎn)品where 產(chǎn)品名稱='Macbook')-9select * from 訂購單where 訂單號 in(select 訂單號from 訂單名細where 數(shù)量>10)-10select * from 產(chǎn)品 where 單價 =(select

25、 單價 from 產(chǎn)品 where 規(guī)格說明='4s')-11select * from 產(chǎn)品 where 單價 between 1000 and 5000-12select * from 客戶 where 客戶名稱 like '%集團'-13select * from 客戶 where 客戶名稱 not like '%商場'-14select * from 產(chǎn)品 order by 單價-15select *from 產(chǎn)品order by 產(chǎn)品名稱,單價-16select COUNT(產(chǎn)品號)from 產(chǎn)品-17select SUM(數(shù)量)fro

26、m 訂單名細where 產(chǎn)品號=(select 產(chǎn)品號from 產(chǎn)品where 產(chǎn)品名稱='ipad')-18select SUM(數(shù)量*單價) 總金額from 產(chǎn)品,訂單名細where 產(chǎn)品.產(chǎn)品號=訂單名細.產(chǎn)品號and 產(chǎn)品名稱='ipod nano'-19select COUNT(distinct 訂單號)as 訂購單個數(shù),AVG(數(shù)量*單價)as 平均金額from 產(chǎn)品,訂單名細where 產(chǎn)品.產(chǎn)品號=訂單名細.產(chǎn)品號-20select 訂單號,COUNT(訂單號) 項目數(shù),SUM(g.單價*o.數(shù)量) 總金額from 產(chǎn)品 g,訂單名細 owher

27、e g.產(chǎn)品號=o.產(chǎn)品號group by 訂單號-21select i.訂單號,MAX(數(shù)量*單價) 最高金額,MIN(數(shù)量*單價) 最低金額from 訂購單 o,產(chǎn)品 g,訂單名細 iwhere o.訂單號=i.訂單號and g.產(chǎn)品號=i.產(chǎn)品號and 產(chǎn)品名稱='iphone'group by i.訂單號-22select 訂單號,COUNT(*) 項目數(shù),AVG(數(shù)量*單價) 平均金額from 產(chǎn)品 g,訂單名細 iwhere g.產(chǎn)品號=i.產(chǎn)品號group by 訂單號having COUNT(*)>=2-23select 客戶名稱,聯(lián)系人, ,訂單號fro

28、m 客戶 c,訂購單 owhere c.客戶號=o.客戶號and 訂購日期 is null-24select 客戶名稱,聯(lián)系人, ,訂單號,訂購日期from 客戶,訂購單where 客戶.客戶號=訂購單.客戶號and 訂購日期>'2011-10-10'-25select *from 產(chǎn)品 outawhere 單價=(select MAX(單價)from 產(chǎn)品 innerawhere outa.產(chǎn)品名稱=innera.產(chǎn)品名稱)-26select 客戶號from 客戶where not exists(select *from 訂購單where 客戶.客戶號=訂購單.客戶號)

29、-27select *from 客戶where exists(select *from 訂購單where 客戶.客戶號=訂購單.客戶號)-28select 產(chǎn)品名稱from 產(chǎn)品where 單價= any(select 單價/2 from 產(chǎn)品)-29select 產(chǎn)品名稱from 產(chǎn)品where 單價 >all(select max(單價) from 產(chǎn)品)-30-crossselect * from 客戶 cross join 訂購單where 客戶.客戶號=訂購單.客戶號-innerselect * from 客戶 inner join 訂購單on 客戶.客戶號=訂購單.

30、客戶號-leftselect 客戶.*,訂單號,訂購日期from 客戶 left join 訂購單on 客戶.客戶號=訂購單.客戶號-rightselect 客戶.*,訂單號,訂購日期from 客戶 right join 訂購單on 客戶.客戶號=訂購單.客戶號-fullselect 客戶.*,訂單號,訂購日期from 客戶 full join 訂購單on 客戶.客戶號=訂購單.客戶號數(shù)據(jù)庫系統(tǒng)及應用 上機實驗報告5一、實驗目的:理解視圖的概念,掌握視圖的使用方法。二、實驗內(nèi)容:定義視圖,并在視圖上完成查詢、插入、更新和刪除操作。三.、程序源代碼:  -1-1)、基于單個表按投影操作

31、定義視圖create view v_cus asselect 客戶號,客戶名稱from 客戶-使用select * from v_cus-2)、基于單個表按選擇操作定義視圖create view v_order asselect *from 訂購單where 客戶號='C001'-使用select * from v_order-3)、基于單個表按選擇和投影操作定義視圖create view v_cuss asselect 客戶名稱,聯(lián)系人, from 客戶where 客戶號='C003'-使用select * from v_cuss-4)、基于多個表根據(jù)連接操作

32、定義視圖create view v_join asselect 客戶.*,訂單號,訂購日期from 客戶 join 訂購單on 客戶.客戶號=訂購單.客戶號-使用select * from v_join-5)、基于多個表根據(jù)嵌套查詢定義視圖create view v_item asselect * from 訂單名細where 產(chǎn)品號 in(select 產(chǎn)品號from 產(chǎn)品where 產(chǎn)品名稱='Macbook')-使用select * from v_item-6)、查定義含有虛字段的視圖create view v_items(訂單號,序號,產(chǎn)品號,數(shù)量,總金額) asselect i.*,i.數(shù)量*g.單價from 訂單名細 i,產(chǎn)品 gwhere i.產(chǎn)品號=g.產(chǎn)品號-使用select * from v_items-2-在視圖上查詢select

溫馨提示

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

評論

0/150

提交評論