日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据库实验八SQL语句的综合使用

發布時間:2023/12/10 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库实验八SQL语句的综合使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本博文源于校內數據庫原理的學習,本周布置了數據庫的SQL語句綜合使用的作業。博主將作業寫完后,并將其撰寫為博文,以備期末考試復習,因為很多語句都需要看書,或者百度。這肯定不行的,爭取需要背誦和記住。為了整個博文的清晰,我在首頁又設置了目錄,通過目錄的點擊,便可以輕松的對任務一一完成。因為語句都已上機調試過,為了更加快速撰寫,我只將代碼進行搬運,有需要便可以收藏此博文。謝謝讀者的觀看瀏覽。

文章目錄

  • 1. 建立一圖書借閱庫(TSJY),并在在該庫下建立以下四個表:
  • 2. 要求為每個表建立一個主鍵
  • 3. 建立“管理員”表時要求其“性別”一列的默認值為“男”。
  • 4. 為“圖書”的“分類號”建立一個索引ts_flh。
  • 5. 為“借閱”表建立一唯一索引jycx,要求按“借書證號 ”升序,“借書日期 ” 降序。
  • 6. 為“管理員”表建立一檢查約束,要求“基本工資”在(100,10000)之間。
  • 7. 建立“借閱”與“圖書”及“讀者”表之間的參照關系。
  • 8. 為每個表插入3-5條記錄(記錄數據自定)。
  • 9. 查詢出“圖書”數據庫中作者姓“劉”的所有圖書
  • 10. 查詢出“圖書”數據庫中高等教育出版社出版的、單價低于25元的所有種類的圖書。
  • 11. 求出“讀者”數據庫中的總人數。
  • 12. 求出“圖書”數據庫中的所有圖書的最高價、最低價和平均價。
  • 13. 求出“借閱”庫中借書證號為“112”的所借圖書的冊數。
  • 14. 按分類號降序顯示“圖書”庫中各種圖書的分類號、書名合作者。
  • 15. 按單價升序顯示“圖書”庫中的高等教育出版社出版的所有圖書。
  • 16. 按單價升序顯示出“圖書”庫中由清華大學出版社和電子工業出版社出版的所有圖書。
  • 17. 按書名和作者分組統計出“圖書”庫中每種圖書的數量。
  • 18. 統計出“圖書”數據庫中15至25元之間的圖書數量。
  • 19. 查詢出“圖書”數據庫中書名中含有“應用基礎”字串的所有圖書。
  • 20. 分組統計出“借閱”數據庫中每一種借書證號所借圖書的冊數。
  • 21. 按單位分組統計出“讀者”數據庫中每個單位的人數。
  • 22. 分組統計出1997年底以前借閱不低于2本圖書的借書證號和數量。
  • 23. 聯接查詢“借閱”庫和“圖書”,得到借閱每一本書的信息。
  • 24. 聯接查詢“借閱”庫和“讀者”庫,得到每一個以借閱者的借書證號、姓名、單位。
  • 25. 聯接查詢“借閱”、“讀者”、“圖書”三個庫,得到每一本所借圖書的讀者的借書證號、姓名、單位、書名。
  • 26. 從“圖書”數據庫中(通過對“借閱”庫的嵌套)查詢出所有被借圖書的信息。
  • 27. 按單位分組統計出被借圖書的數量。
  • 28. 按單位分組統計出借閱圖書的人數。
  • 29. 從讀者庫中查詢出每個借閱圖書的讀者的情況。
  • 30. 查詢‘管理員’表中職稱為教授或副教授,并且在1950年(含該年)以后出生的所有職工記錄。
  • 31. 查詢‘管理員’表中基本工資在250到380元之間的職工記錄。
  • 32. 將基本工資小于500的管理員,工資加上100元。
  • 33. 列出藏書在十本以上的圖書(書名、作者、出版社)。
  • 34. 數據庫系統原理教程,王珊編,清華大學出版社,1998年出版”還有幾本?
  • 文末:附完整源碼

1. 建立一圖書借閱庫(TSJY),并在在該庫下建立以下四個表:

create database TSJY; create table book(編號 char(6) not null,分類號 char(8),書名 char(16),作者 char(6),出版單位 char(16),單價 numeric(7,2),總藏書量 INT,現有庫存 INT);create table reader(借書證號 char(4) not null, 單位 char(10), 姓名 char(6), 性別 char(2),職稱 char(6), 地址 char(16));create table borrow(借書證號 char(4), 編號 char(6),借書日期 datetime,還書日期 datetime, );create table administrator(職工號 char(6) not null, 姓名 char(6), 性別 char(2), 出生日期 datetime,職稱 char(6),基本工資 numeric(7,2), );

2. 要求為每個表建立一個主鍵

/*(1) 要求為每個表建立一個主鍵。*/ alter table Book add primary key (編號) ; alter table reader add primary key (借書證號) ; alter table administrator add primary key (職工號 ) ;

3. 建立“管理員”表時要求其“性別”一列的默認值為“男”。

/*(2) 建立“管理員”表時要求其“性別”一列的默認值為“男”。*/ alter table administrator add constraint Defaultsex default '男' for 性別;

4. 為“圖書”的“分類號”建立一個索引ts_flh。

/*(3) 為“圖書”的“分類號”建立一個索引ts_flh。*/ create index ts_flh on book(分類號);

5. 為“借閱”表建立一唯一索引jycx,要求按“借書證號 ”升序,“借書日期 ” 降序。

/*(4) 為“借閱”表建立一唯一索引jycx,要求按“借書證號 ”升序,“借書日期 ” 降序。*/ create unique index jycx on borrow(借書證號 asc,借書日期 desc);

6. 為“管理員”表建立一檢查約束,要求“基本工資”在(100,10000)之間。

/*(5) 為“管理員”表建立一檢查約束,要求“基本工資”在(100,10000)之間。*/alter table administrator add constraint val_check check(基本工資 between 100 and 10000);

7. 建立“借閱”與“圖書”及“讀者”表之間的參照關系。

/*(6) 建立“借閱”與“圖書”及“讀者”表之間的參照關系。 */ alter table borrow add foreign key(編號) references book(編號); alter table borrow add foreign key(借書證號) references reader(借書證號);

8. 為每個表插入3-5條記錄(記錄數據自定)。

/* 為每個表插入3-5條記錄(記錄數據自定)。*/ insert into book values('001','5843','離散數學','耿素云','清華大學出版社',33.00,20,16),('002','6379','電子技術基礎','康華光','高等教育出版社',59.90,20,10),('003','6538','新編大學英語','應惠蘭','外語教學出版社',39.90,20,20),('004','7096','醫藥數據庫','杜建強','中國中醫藥出版社',49.00,20,15)insert into reader values('110','浙中醫大','張三','男','學生','立業園'),('111','浙中醫大','李四','女','學生','立業園'),('112','浙中醫大','王五','男','學生','立業園'),('113','浙中醫大','趙六','女','學生','立業園'),('114','浙中醫大','田七','男','學生','立業園')insert into borrow values('110','001','1999-11-19','1999-12-19'),('110','002','1992-11-06','1992-12-06'),('110','004','1997-10-29','1997-11-29'),('111','003','1998-11-19','1998-12-19'),('112','001','1997-10-22','1997-11-22'),('112','002','1999-11-25','1999-12-25'),('113','001','1996-10-01','1996-11-01'),('114','004','1999-11-18','1999-12-18')insert into administrator values('200','jack','男','1990-05-23','老師',5000),('201','tom','男','1990-06-04','老師',5500),('202','lucy','女','1990-03-18','老師',5500)

9. 查詢出“圖書”數據庫中作者姓“劉”的所有圖書

/* 查詢出“圖書”數據庫中作者姓“劉”的所有圖書。*/ insert into book values('005','8023','數學分析','劉星武','清華大學出版社',33.00,20,16); select * from book where 作者 like '劉%'

10. 查詢出“圖書”數據庫中高等教育出版社出版的、單價低于25元的所有種類的圖書。

/* 查詢出“圖書”數據庫中高等教育出版社出版的、單價低于25元的所有種類的圖書。*/ insert into book values('006','8024','線性代數','張文星','高等教育出版社',23.00,20,16); select * from book where 出版單位='高等教育出版社' and 單價 < 25.0;

11. 求出“讀者”數據庫中的總人數。

/*求出“讀者”數據庫中的總人數。*/ select count(*) as 總人數 from reader;

12. 求出“圖書”數據庫中的所有圖書的最高價、最低價和平均價。

/* 求出“圖書”數據庫中的所有圖書的最高價、最低價和平均價。*/ select max(單價) as 最高價 ,min(單價) as 最低價,avg(單價) as 平均價 from book;

13. 求出“借閱”庫中借書證號為“112”的所借圖書的冊數。

/* 求出“借閱”庫中借書證號為“112”的所借圖書的冊數。*/ select count(*) as 借書冊數 from borrow where 借書證號='112';

14. 按分類號降序顯示“圖書”庫中各種圖書的分類號、書名合作者。

/* 按分類號降序顯示“圖書”庫中各種圖書的分類號、書名he作者。*/ select 分類號,書名,作者 from book order by 分類號 desc;

15. 按單價升序顯示“圖書”庫中的高等教育出版社出版的所有圖書。

/* 按單價升序顯示“圖書”庫中的高等教育出版社出版的所有圖書。*/ select * from book where 出版單位='高等教育出版社' order by 單價 asc;

16. 按單價升序顯示出“圖書”庫中由清華大學出版社和電子工業出版社出版的所有圖書。

/* 按單價升序顯示出“圖書”庫中由清華大學出版社和電子工業出版社出版的所有圖書。*/ select * from book where 出版單位='清華大學出版社' or 出版單位='電子工業出版社' order by 單價 asc;

17. 按書名和作者分組統計出“圖書”庫中每種圖書的數量。

/* 按書名和作者分組統計出“圖書”庫中每種圖書的數量。*/ select count(*) as '數量' from book group by 書名,作者;

18. 統計出“圖書”數據庫中15至25元之間的圖書數量。

/* 統計出“圖書”數據庫中15至25元之間的圖書數量。*/ select count(*) as '數量' from book where 單價 between 15 and 25;

19. 查詢出“圖書”數據庫中書名中含有“應用基礎”字串的所有圖書。

/* 查詢出“圖書”數據庫中書名中含有“應用基礎”字串的所有圖書。*/ insert into book values('007','8025','java應用基礎','劉星星','高等教育出版社',13.00,21,15); insert into book values('008','8026','應用基礎c++','趙芳芳','高等教育出版社',9.00,26,15); select * from book where 書名 like '%應用基礎%';

20. 分組統計出“借閱”數據庫中每一種借書證號所借圖書的冊數。

/* 分組統計出“借閱”數據庫中每一種借書證號所借圖書的冊數。 */ select 借書證號,count(*) as '數量' from borrow group by 借書證號;

21. 按單位分組統計出“讀者”數據庫中每個單位的人數。

/*(14) 按單位分組統計出“讀者”數據庫中每個單位的人數。*/ select 單位,count(*) as '數量' from reader group by 單位;

22. 分組統計出1997年底以前借閱不低于2本圖書的借書證號和數量。

/* )分組統計出1997年底以前借閱不低于2本圖書的借書證號和數量。*/ --select * from borrow where ; insert into borrow values('110','005','1992-11-19','1992-12-19'); select 借書證號,count(*) as 數量 from borrow where 借書日期<'1997-12-31' group by 借書證號 having count(*) > 2;

23. 聯接查詢“借閱”庫和“圖書”,得到借閱每一本書的信息。

/*(16) 聯接查詢“借閱”庫和“圖書”,得到借閱每一本書的信息。*/ select book.書名,borrow.* from book,borrow where borrow.編號=book.編號;

24. 聯接查詢“借閱”庫和“讀者”庫,得到每一個以借閱者的借書證號、姓名、單位。

/*(17)聯接查詢“借閱”庫和“讀者”庫,得到每一個以借閱者的借書證號、姓名、單位。*/ select distinct re.借書證號,re.姓名,re.單位 from reader as re,borrow as bo where bo.借書證號=re.借書證號;

25. 聯接查詢“借閱”、“讀者”、“圖書”三個庫,得到每一本所借圖書的讀者的借書證號、姓名、單位、書名。

/* 聯接查詢“借閱”、“讀者”、“圖書”三個庫,得到每一本所借圖書的讀者的借書證號、姓名、單位、書名。*/select distinct bo.借書證號,re.單位,re.姓名,book.書名 from borrow as bo,reader as re,book where book.編號=bo.編號 and bo.借書證號=re.借書證號;

26. 從“圖書”數據庫中(通過對“借閱”庫的嵌套)查詢出所有被借圖書的信息。

/* 從“圖書”數據庫中(通過對“借閱”庫的嵌套)查詢出所有被借圖書的信息。*/ select * from book where 編號 in (select 編號 from borrow);

27. 按單位分組統計出被借圖書的數量。

/*(20) 按單位分組統計出被借圖書的數量。*/ select 單位,count(單位) as 數量 from reader,borrow where reader.借書證號=borrow.借書證號 group by 單位;

28. 按單位分組統計出借閱圖書的人數。

/*(21) 按單位分組統計出借閱圖書的人數。*/ select 單位,count(單位) as 人數 from reader where 借書證號 in(select distinct borrow.借書證號 from reader,borrow where reader.借書證號 = borrow.借書證號 ) group by 單位;

29. 從讀者庫中查詢出每個借閱圖書的讀者的情況。

/*(22)從讀者庫中查詢出每個借閱圖書的讀者的情況。*/ select * from reader as re where 借書證號 in (select distinct 借書證號 from borrow);

30. 查詢‘管理員’表中職稱為教授或副教授,并且在1950年(含該年)以后出生的所有職工記錄。

/* 查詢‘管理員’表中職稱為教授或副教授,并且在1950年(含該年)以后出生的所有職工記錄。*/ insert into administrator values('203','sara','男','1990-05-24','教授',8000); select * from administrator where 職稱 in ('教授','副教授') and year(出生日期)>1950;

31. 查詢‘管理員’表中基本工資在250到380元之間的職工記錄。

/* 查詢‘管理員’表中基本工資在250到380元之間的職工記錄。*/ insert into administrator values('205','alice','男','1990-05-25','老師',320); select * from administrator where 基本工資 between 250 and 380;

32. 將基本工資小于500的管理員,工資加上100元。

/*( 將基本工資小于500的管理員,工資加上100元。*/ update administrator set 基本工資 += 100 where 基本工資<500;

33. 列出藏書在十本以上的圖書(書名、作者、出版社)。

/*(26) 列出藏書在十本以上的圖書(書名、作者、出版社)。*/ select 書名,作者,出版單位 from Book where 總藏書量>10;

34. 數據庫系統原理教程,王珊編,清華大學出版社,1998年出版”還有幾本?

/*(27) “數據庫系統原理教程,王珊編,清華大學出版社,1998年出版”還有幾本?*/ insert into book values('010','5846','數據庫系統','王珊','清華大學出版社',33.00,20,16); select 書名,現有庫存 from Book where 書名='數據庫系統' and 作者='王珊' and 出版單位='清華大學出版社';

文末:附完整源碼

create database TSJY; /*(1) 圖書 (編號 C(6), 分類號 C(8), 書名 C(16), 作者 C(6), 出版單位 C(16), 單價N(7,2),總藏書量 INT,現有庫存INT) */ use TSJY; create table book(編號 char(6) not null,分類號 char(8),書名 char(16),作者 char(6),出版單位 char(16),單價 numeric(7,2),總藏書量 INT,現有庫存 INT);create table reader(借書證號 char(4) not null, 單位 char(10), 姓名 char(6), 性別 char(2),職稱 char(6), 地址 char(16));create table borrow(借書證號 char(4), 編號 char(6),借書日期 datetime,還書日期 datetime, );create table administrator(職工號 char(6) not null, 姓名 char(6), 性別 char(2), 出生日期 datetime,職稱 char(6),基本工資 numeric(7,2), );/*(1) 要求為每個表建立一個主鍵。*/ alter table Book add primary key (編號) ; alter table reader add primary key (借書證號) ;alter table administrator add primary key (職工號 ) ;/*(2) 建立“管理員”表時要求其“性別”一列的默認值為“男”。*/ alter table administrator add constraint Defaultsex default '男' for 性別;/*(3) 為“圖書”的“分類號”建立一個索引ts_flh。*/ create index ts_flh on book(分類號);/*(4) 為“借閱”表建立一唯一索引jycx,要求按“借書證號 ”升序,“借書日期 ” 降序。*/ create unique index jycx on borrow(借書證號 asc,借書日期 desc);/*(5) 為“管理員”表建立一檢查約束,要求“基本工資”在(100,10000)之間。*/alter table administrator add constraint val_check check(基本工資 between 100 and 10000);/*(6) 建立“借閱”與“圖書”及“讀者”表之間的參照關系。 */ alter table borrow add foreign key(編號) references book(編號); alter table borrow add foreign key(借書證號) references reader(借書證號);/*(1) 為每個表插入3-5條記錄(記錄數據自定)。*/ insert into book values('001','5843','離散數學','耿素云','清華大學出版社',33.00,20,16),('002','6379','電子技術基礎','康華光','高等教育出版社',59.90,20,10),('003','6538','新編大學英語','應惠蘭','外語教學出版社',39.90,20,20),('004','7096','醫藥數據庫','杜建強','中國中醫藥出版社',49.00,20,15)insert into reader values('110','浙中醫大','張三','男','學生','立業園'),('111','浙中醫大','李四','女','學生','立業園'),('112','浙中醫大','王五','男','學生','立業園'),('113','浙中醫大','趙六','女','學生','立業園'),('114','浙中醫大','田七','男','學生','立業園')insert into borrow values('110','001','1999-11-19','1999-12-19'),('110','002','1992-11-06','1992-12-06'),('110','004','1997-10-29','1997-11-29'),('111','003','1998-11-19','1998-12-19'),('112','001','1997-10-22','1997-11-22'),('112','002','1999-11-25','1999-12-25'),('113','001','1996-10-01','1996-11-01'),('114','004','1999-11-18','1999-12-18')insert into administrator values('200','jack','男','1990-05-23','老師',5000),('201','tom','男','1990-06-04','老師',5500),('202','lucy','女','1990-03-18','老師',5500)/*(2) 查詢出“圖書”數據庫中作者姓“劉”的所有圖書。*/ insert into book values('005','8023','數學分析','劉星武','清華大學出版社',33.00,20,16); select * from book where 作者 like '劉%'/*(3) 查詢出“圖書”數據庫中高等教育出版社出版的、單價低于25元的所有種類的圖書。*/ insert into book values('006','8024','線性代數','張文星','高等教育出版社',23.00,20,16);select * from book where 出版單位='高等教育出版社' and 單價 < 25.0;/*(4) 求出“讀者”數據庫中的總人數。*/ select count(*) as 總人數 from reader;/*(5) 求出“圖書”數據庫中的所有圖書的最高價、最低價和平均價。*/ select max(單價) as 最高價 ,min(單價) as 最低價,avg(單價) as 平均價 from book;/*(6) 求出“借閱”庫中借書證號為“112”的所借圖書的冊數。*/ select count(*) as 借書冊數 from borrow where 借書證號='112';/*(7) 按分類號降序顯示“圖書”庫中各種圖書的分類號、書名he作者。*/ select 分類號,書名,作者 from book order by 分類號 desc;/*(8) 按單價升序顯示“圖書”庫中的高等教育出版社出版的所有圖書。*/ select * from book where 出版單位='高等教育出版社' order by 單價 asc;/*(9) 按單價升序顯示出“圖書”庫中由清華大學出版社和電子工業出版社出版的所有圖書。*/ select * from book where 出版單位='清華大學出版社' or 出版單位='電子工業出版社' order by 單價 asc;/*(10) 按書名和作者分組統計出“圖書”庫中每種圖書的數量。*/ select count(*) as '數量' from book group by 書名,作者;/*(11) 統計出“圖書”數據庫中15至25元之間的圖書數量。*/ select count(*) as '數量' from book where 單價 between 15 and 25;/*(12 查詢出“圖書”數據庫中書名中含有“應用基礎”字串的所有圖書。*/ insert into book values('007','8025','java應用基礎','劉星星','高等教育出版社',13.00,21,15); insert into book values('008','8026','應用基礎c++','趙芳芳','高等教育出版社',9.00,26,15); select * from book where 書名 like '%應用基礎%';/*(13) 分組統計出“借閱”數據庫中每一種借書證號所借圖書的冊數。 */ select 借書證號,count(*) as '數量' from borrow group by 借書證號;/*(14) 按單位分組統計出“讀者”數據庫中每個單位的人數。*/ select 單位,count(*) as '數量' from reader group by 單位;/*(15)分組統計出1997年底以前借閱不低于2本圖書的借書證號和數量。*/ --select * from borrow where ; insert into borrow values('110','005','1992-11-19','1992-12-19'); select 借書證號,count(*) as 數量 from borrow where 借書日期<'1997-12-31' group by 借書證號 having count(*) > 2;/*(16) 聯接查詢“借閱”庫和“圖書”,得到借閱每一本書的信息。*/ select book.書名,borrow.* from book,borrow where borrow.編號=book.編號;/*(17)聯接查詢“借閱”庫和“讀者”庫,得到每一個以借閱者的借書證號、姓名、單位。*/ select distinct re.借書證號,re.姓名,re.單位 from reader as re,borrow as bo where bo.借書證號=re.借書證號;/*(18) 聯接查詢“借閱”、“讀者”、“圖書”三個庫,得到每一本所借圖書的讀者的借書證號、姓名、單位、書名。*/select distinct bo.借書證號,re.單位,re.姓名,book.書名 from borrow as bo,reader as re,book where book.編號=bo.編號 and bo.借書證號=re.借書證號;/*(19) 從“圖書”數據庫中(通過對“借閱”庫的嵌套)查詢出所有被借圖書的信息。*/ select * from book where 編號 in (select 編號 from borrow);/*(20) 按單位分組統計出被借圖書的數量。*/ select 單位,count(單位) as 數量 from reader,borrow where reader.借書證號=borrow.借書證號 group by 單位;/*(21) 按單位分組統計出借閱圖書的人數。*/ select 單位,count(單位) as 人數 from reader where 借書證號 in(select distinct borrow.借書證號 from reader,borrow where reader.借書證號 = borrow.借書證號 ) group by 單位;/*(22)從讀者庫中查詢出每個借閱圖書的讀者的情況。*/ select * from reader as re where 借書證號 in (select distinct 借書證號 from borrow);/*(23) 查詢‘管理員’表中職稱為教授或副教授,并且在1950年(含該年)以后出生的所有職工記錄。*/ insert into administrator values('203','sara','男','1990-05-24','教授',8000); select * from administrator where 職稱 in ('教授','副教授') and year(出生日期)>1950;/*(24) 查詢‘管理員’表中基本工資在250到380元之間的職工記錄。*/ insert into administrator values('205','alice','男','1990-05-25','老師',320); select * from administrator where 基本工資 between 250 and 380;/*(25) 將基本工資小于500的管理員,工資加上100元。*/ update administrator set 基本工資 += 100 where 基本工資<500;/*(26) 列出藏書在十本以上的圖書(書名、作者、出版社)。*/ select 書名,作者,出版單位 from Book where 總藏書量>10;/*(27) “數據庫系統原理教程,王珊編,清華大學出版社,1998年出版”還有幾本?*/ insert into book values('010','5846','數據庫系統','王珊','清華大學出版社',33.00,20,16); select 書名,現有庫存 from Book where 書名='數據庫系統' and 作者='王珊' and 出版單位='清華大學出版社';

總結

以上是生活随笔為你收集整理的数据库实验八SQL语句的综合使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。