資料庫設計執行個體(2)多表聯集查詢,資料庫執行個體

來源:互聯網
上載者:User

資料庫設計執行個體(2)多表聯集查詢,資料庫執行個體

在oracle10g測試通過:

一、題目要求

書表(books)

book_id     book_name         creatdate        Lastmodifydate    decription
001         三個人的世界     2005-02-02         2005-07-07        NULL

作者表(authors)
A_id    A_name
01        王紛
02        李尚
03        泰和

部門表(depts)
d_id    d_name
001        編輯一部
002        編輯二部
003        編輯三部

書和作者關聯表(bookmap)
book_id        A_id
001            01
001            02
001            03

部門和作者關聯表(depmap)
d_id        a_id
001        01
002        02
003        03

找出每個部門的所寫的總書量,比如,一本書有3 個人寫,如果三個人在不同的部門,
則每個部門的總數量就是1.最後結果如下:
部門        書量
編輯一部    1
編輯二部    1

編輯三部    1


1.建表語句與插入資料的語句:

--書表(books)create table books(book_id varchar(10) primary key,book_name varchar(30),creatdate date,Lastmodifydate date,decription varchar(500));insert into books (book_id,book_name,creatdate,Lastmodifydate) values('001','一個人的天空','1-4月-2005','29-7月-2005');insert into books (book_id,book_name,creatdate,Lastmodifydate) values('002','兩個人的小窩','1-12月-2001','11-4月-2002');insert into books (book_id,book_name,creatdate,Lastmodifydate) values('003','三個人的世界','1-4月-2005','29-7月-2005');insert into books (book_id,book_name,creatdate,Lastmodifydate) values('004','四個人的大地','1-12月-2001','11-4月-2002');insert into books (book_id,book_name,creatdate,Lastmodifydate) values('005','五個人的未來','1-4月-2005','29-7月-2005');--作者表(authors)create table authors(A_id varchar(4) primary key,A_name varchar(20));insert into authors values('01','張三');insert into authors values('02','李四');insert into authors values('03','王五');insert into authors values('04','馬六');--部門表(depts)create table depts(d_id varchar(4) primary key,d_name varchar(20));insert into depts values('01','編輯一部');insert into depts values('02','編輯二部');insert into depts values('03','編輯三部');insert into depts values('04','編輯四部');--書和作者關聯表(bookmap)create table bookmap(book_idvarchar(10),A_id varchar(4));insert into bookmap values('001','01');insert into bookmap values('002','01');insert into bookmap values('003','01');insert into bookmap values('004','01');insert into bookmap values('004','02');insert into bookmap values('005','03');--部門和作者關聯表(depmap)create table depmap(d_id varchar(4),A_id varchar(4));insert into depmap values('01','01');insert into depmap values('02','02');insert into depmap values('02','04');insert into depmap values('03','03');commit;

2.找出每個部門的所寫的總書量

--第一步找到部門編號和出書總量的對應關係,需要用到(bookmap)以及(depmap)select d_id,count(book_id) from bookmap,depmap where depmap.A_id=bookmap.A_id group by d_id;--第二步,再結合部門表查出部門名selectd_name,nvl(books.cou,0)from(select d_id inid,count(book_id) as cou from bookmap,depmap where depmap.A_id=bookmap.A_id group by d_id)     books right outer join deptsondepts.d_id=inid;

查詢結果如下:










相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.