Po shfaqen postimet me emërtimin SQL_Colection. Shfaq të gjitha postimet
Po shfaqen postimet me emërtimin SQL_Colection. Shfaq të gjitha postimet

e enjte, 11 tetor 2007

Key of Part 1

1. c
2. a,b,c
3. b
4. a
5. a
6. a,d
7. c,d
8. a,b
9. a,d
10. c
11. d
12. b
13. c
14. a
15. d
16. d
17. c

e enjte, 14 qershor 2007

Bài giải_CenterManagerment Database

--Câu 1:
Create database CenterManagerment
--Câu 2:
create table PHONGHOC(
ma_phonghoc varchar(15) primary key,
tenphong varchar(50) not null,
soluong int not null)


create table LOPHOC(
ma_lophoc varchar(15) primary key,
tenlop varchar(50) not null,
phonghoc varchar(15) not null foreign key references PHONGHOC
)
create table SINHVIEN (
mssv varchar(15) primary key ,
hoten varchar(50) not null ,
ngaysinh datetime not null ,
lophoc varchar(15) not null foreign key references LOPHOC)
--Câu 2:
--a
select sinhvien.mssv, sinhvien.hoten,lophoc.tenlop, phonghoc.tenphong
from sinhvien, lophoc, phonghoc
where sinhvien.lophoc=lophoc.ma_lophoc and lophoc.phonghoc=phonghoc.ma_phonghoc
and sinhvien.hoten like 'NGUYEN%'
--b
select * from phonghoc where soluong>100
--c
insert into phonghoc values('LT04', 'Ly thuyet 04', 60)
--d
delete from sinhvien where mssv like '%2003%'
--e
update sinhvien set ngaysinh='15/02/1980' where mssv='CP200607-G01'

--Câu 3
declare phonghoc_cursor cursor scroll
for select * from phonghoc where soluong>=48
open phonghoc_cursor
fetch first from phonghoc_cursor
while @@fetch_status=0
begin
fetch next from phonghoc_cursor
end
close phonghoc_cursor
deallocate phonghoc_cursor

Bài giải_STRONGHOLD Database

--Câu 1:
Create database STRONGHOLD
--Câu 2:
create table Customer(
Ccode char(3) primary key,
CName char(50) not null,
Caddress varchar(100) not null default'',
Cphone char(15) default'')


create table OrderMaster(
OrderNo char(10) primary key,
OrderDate datetime not null,
CCode char(3) not null )

create table OrderDetails (
SrNo bigint identity primary key ,
OrderNO char(10) not null ,
ICode char(15) not null ,
Qty int not null default 0)

create table Item(
ICode char(15) primary key,
Iname char(50) not null,
Rate numeric(10,2) not null default 0 )

--Câu 3:
alter table OrderMaster
add constraint PK_OrderMaster_customer
foreign key(Ccode) references customer

alter table orderdetails
add constraint PK_OrderDetails_OrderMaster
foreign key(orderno) references ordermaster

alter table orderdetails
add constraint PK_OrderDetails_item
foreign key(icode) references item

--Câu 4:
-- INSERT VAO BANG CUSTOMER
insert into customer(ccode,cname,caddress,cphone)
values('GHL','Great Holidays Ltd','1,Lydia''s Avenue,Durham-41','115-72-43')
insert into customer(ccode,cname,caddress,cphone)
values('TLT','Travelite Ltd','22,Rodeo Drive,Manhattan-11','443-22-51')
insert into customer(ccode,cname,caddress,cphone)
values('ULS','United Lugage Services','14,Park Avenue,NY-27','123-56-34')
--INSERT VAO BANG ITEM
insert into item(icode,iname,rate)values('RKSK-B','Rucksacks-Brown',450)
insert into item(icode,iname,rate)values('RKSK-T','Rucksacks-Tan',500)
insert into item(icode,iname,rate)values('STCS-24-S-BD','Suitcase 24",Soft,Dark Brown',1575)
insert into item(icode,iname,rate)values('STCS-28-S-B','suitcase 28",Soft,Blue',1790)

-- INSERT VAO BANG ORDERMASTER
insert into ordermaster(orderno,orderdate,ccode) values('0704/99','10/15/1999','ULS')
insert into ordermaster(orderno,orderdate,ccode) values('0256/99','10/6/1999','ULS')
insert into ordermaster(orderno,orderdate,ccode) values('0856/99','10/9/1999','TLT')
insert into ordermaster(orderno,orderdate,ccode) values('0703/99','10/15/1999','TLT')
insert into ordermaster(orderno,orderdate,ccode) values('0083/98','12/30/1999','TLT')

--INSERT VAO BANG ORDERDETAILS
insert into orderdetails(orderno,srno,icode,qty) values('0083/98','1','RKSK-T',100)
insert into orderdetails(orderno,srno,icode,qty) values('0083/98','2','STCS-24-S-BD',100)
insert into orderdetails(orderno,srno,icode,qty) values('0256/99','3','STCS-24-S-BD',50)
insert into orderdetails(orderno,srno,icode,qty) values('0703/99','4','RKSK-T',70)
insert into orderdetails(orderno,srno,icode,qty) values('0703/99','5','STCS-24-S-BD',30)
insert into orderdetails(orderno,srno,icode,qty) values('0704/99','6','RKSK-T',20)
insert into orderdetails(orderno,srno,icode,qty) values('0856/99','7','RKSK-T',120)

--Câu 5:
--a
select icode as 'Item Code',iname as 'Item Name',(rate-rate*20/100) as 'Discounted Rate' from item
--b
select ordermaster.Orderno,ordermaster.Orderdate, orderdetails.ICode, item.Rate
from ordermaster join orderdetails on ordermaster.orderno=orderdetails.orderno
join item on orderdetails.icode=item.icode
--c
select Icode,Iname,Rate from item
where rate>(select rate from item where iname='Rucksacks-Tan')
--d
select customer.cname, sum(item.rate* orderdetails.qty) as ‘Tong so tien'
from customer join ordermaster on customer.ccode=ordermaster.ccode
join orderdetails on ordermaster.orderno=orderdetails.orderno
join item on orderdetails.icode=item.icode
group by cname
--e
update item set rate=400
where iname='Rucksacks-Brown'
--f
delete item where icode='rksk-B'

--Câu 6:
create view customer_view as
select customer.ccode, customer.cname, customer.cphone, ordermaster.orderdate, orderdetails.icode, orderdetails.qty
from customer join ordermaster on customer.ccode=ordermaster.ccode
join orderdetails on ordermaster.orderno=orderdetails.orderno

--Câu 7:
create procedure Dis_amount
@v_ccode char(3),
@v_Orderno char(10)
as
select sum(orderdetails.qty* item.rate) as 'Amount'
from ordermaster inner join orderdetails
on ordermaster.orderno=orderdetails.orderno
inner join item on orderdetails.icode=item.icode
where ccode=@v_ccode and orderdetails.orderno=@v_Orderno

--THUC THI PROCEDURE DIS_AMOUNT
exec Dis_amount 'TLT','0703/99'
--Câu 8:
create trigger Ins_trig on item
for insert
as
if((select rate from inserted)>500)
begin
print('rate does not exceed 500')
rollback transaction
end
--Kiem tra lai trigger
insert into item values('001', 'New Item', 900)

CenterManagerment Database

Sử dụng QUERY ANALYZER
Câu 1: Tạo CSDL CenterManagerment.
Câu 2: Tạo các bảng theo mô tả sau:

  • Bảng SINHVIEN

Tên cột

Kiểu dữ liệu

Kích thước

Ràng buộc

mssv

VARCHAR

15

Primary Key

hoten

VARCHAR

50

Không rỗng

ngaysinh

DATE/TIME

Không rỗng

lophoc

VARCHAR

15

Foreign Key

  • Bảng LOPHOC

Tên cột

Kiểu dữ liệu

Kích thước

Ràng buộc

ma_lophoc

VARCHAR

15

Primary Key

tenlop

VARCHAR

50

Không rỗng

phonghoc

VARCHAR

15

Foreign Key

  • Bảng PHONGHOC

Tên cột

Kiểu dữ liệu

Kích thước

Ràng buộc

ma_phonghoc

VARCHAR

15

Primary Key

tenphong

VARCHAR

50

Không rỗng

soluong

INT

Không rỗng

Câu 2: Sử dụng các câu truy vấn SQL:

  1. Hiển thị thông tin mã sinh viên, tên SV, tên lớp học, tên phòng học có họ là “NGUYEN”.
  2. Hiển thị thông tin về phòng học có sức chứa trên 100 sinh viên.
  3. Thêm thông tin phòng học có mã phòng là “LT04”, tên phòng là “Ly thuyet 04”, có sức chứa là 60 sinh viên.
  4. Xóa tất cả sinh viên có mã chứa 2003.
  5. Cập nhật thông tin ngày sinh của sinh viên có mã “CP200607-G01” là “15/02/1980”

Câu 3: Tạo cursor để hiển thị tất cả thông tin phòng học có thể chứa số lượng sinh viên là 48.

STRONGHOLD Database

Sử dụng QUERY ANALYZER

Câu 1: Tạo StrongHold database
Câu 2: Tạo các bảng sau:

Customer

Field name

Data type

Constraints

Description

Ccode

Char(3)

Primary key

Mã khách hàng

CName

Char(50)

Not null

Tên khách hàng

Caddress

VarChar(100)

not null Default ‘’

Điạ chỉ khách hàng

Cphone

Char(15)

Default ‘’

Điện thoại

OrderMaster
OrderNo

Char(10)

Primary key

Số hóa đơn

OrderDate

Datetime(8)

Not nulll

Ngày đặt hóa đơn

Ccode

Char(3)

Not null

Mã khách hàng

OrderDetails
SrNo

Bigint

Primary key, Số tự động tăng

Mã số chi tiết HĐ

OrderNo

Char(10)

Not null

Số hóa đơn

Icode

Char(15)

Not null

Mã hàng

Qty

Int

Not null default 0

Số lượng

Item

ICode

Char(15)

Primary key

Mã hàng

Iname

Char(50)

Not null

Tên hàng

Rate

numeric(10,2)

Not null Default 0

Giá

Câu 3: Tạo các ràng buộc khóa ngoại:

    1. Customer và OrderMaster trên trường Ccode
    2. OrderMaster và OrderDetails trên trường OrderNo
    3. OrderDetails và Item trên trường Icode

Câu 4: Nhập dữ liệu vào bảng:

Customer

Customer Code

CName

CAddress

CPhone

GHL

Great Holidays Ltd.

1, Lydia's Avenue, Durham-41

115-72-43

TLT

Travelite Ltd.

22, Rodeo Drive, Manhattan-11

443-22-51

ULS

United Luggage Services

14, Park Avenue, NY-27

123-56-34


OrderMaster

OrderNo

OrderDate

CCode

0704/99

10/15/1999

ULS

0256/99

10/6/1999

ULS

0856/99

10/9/1999

TLT

0703/99

10/15/1999

TLT

0083/98

12/30/1998

TLT


OrderDetails

OrderNo

SrNo

ItemCode

Qty

0083/98

1

RKSK-T

100

0083/98

2

STCS-24-S-DB

100

0256/99

3

STCS-24-S-DB

50

0703/99

4

RKSK-T

70

0703/99

5

STCS-24-S-DB

30

0704/99

6

RKSK-T

20

0856/99

7

RKSK-T

120


Item

Icode

ItemName

Rate

RKSK-B

Rucksacks-Brown

450

RKSK-T

Rucksacks-Tan

500

STCS-24-S-DB

Suitcase 24'', Soft, Dark Brown

1575

STCS-28-S-B

Suitcase 28'', Soft, Blue

1790

Câu 5: Sử dụng các câu truy vấn SQL:

  • Hiển thị ICode, IName và Discounted Rates (giá đã được giảm) cho các sản phẩm. Giả sử giảm 20% trên từng sản phẩm. Tiêu đề cảu các cột chuyển thành Columns as Item Code, Item Name và Discounted rate.
  • Hiển thị OrderNo, OrderDate, ItemCode và Rate của các sản phẩm đã được đặt hàng
  • Tạo truy vấn hiển thị the item code, item name và rate cho các sản phẩm có giá lớn hơn sản phẩm Rucksacks-Tan
  • Tạo truy vấn hiển thị Customer name và the total amount (tổng số tiền phải trả = Qty* rate) khi đặt hàng.
  • Tạo truy vấn cập nhật Giá của sản phẩm Rucksacks-Brown thành 400
  • Xóa mẫu tin từ bảng Item với Item code=’RKSK-B’

Câu 6: Tạo view để hiển thị Customer code, Customer Name, Phone no, Order date, Item Code, Quantity cho các thông tin đặt hàng

Câu 7: Tạo thủ tục có tên Dis_amount chấp nhận tham số Customer code and Order No và hiển thị số tiền mà khách hàng phải trả cho hóa đơn.

Câu 8: Tạo Insert trigger tên Ins_trig cho table Item. Trigger đảm bảo rằng mẫu tin mới được nhập vào có giá không vượt quá 5000

Câu 9: Add a constraint to table OrderDetails for validating: Qty>=0

Câu 10: Tạo rule với tên Item_rule và gán cho trường ICode của bảng Item để đảm bảo rằng dữ liệu nhập vào trường phải bắt đầu bằng chữ ‘R’ hoặc ‘S’

e martë, 12 qershor 2007

Student Management

CSDL StudentManagement
1. Hãy kiểm tra và xóa CSDL CenterManagement (nếu như nó tồn tại trước trong csdl của anh/chị).
2. Viết câu lệnh tạo CSDL có tên là CenterManagement và tạo các bảng với các điều kiện đưa ra như sau:

Yêu cầu:
1. Cột totalFeeCash chỉ chứa các giá trị lớn hơn 0 và cột CourseType chỉ nhận 2 giá trị là full, part trong bảng Course.
2. Bảng Material có cột MaterialCode có giá trị tự động tăng và cột Mdesc mặc định là None
3. Bảng Batch có cột DateStarted chỉ nhập được những ngày sau ngày 20/12/2006, cột MinimumNumberOfStudents chỉ giá trị nhỏ hơn 48, giá trị mặc định cho cột MaximumNumberOfStudents là 1 và cột BatchNo có giá trị tự động tăng.
4. Bảng FeeOpted chỉ nhận 2 giá trị ‘FULL CASH’ và ‘INSTALLMENT’.
5. Mở csdl CenterManagement đã tạo bên trên. Anh/chị hãy dùng công cụ Enterprise Manager để tạo tiếp các bảng còn lại:

Restaurant managerment

QUẢN LÝ NHÀ HÀNG KHÁCH SẠN
  1. Tạo csdl có tên là HotelGreen.
  2. Tạo các bảng với mô hình dữ liệu như sau:

    Yêu cầu:

  3. Cột Numofpart của bảng BookingBufet chỉ nhận các giá trị từ 1 đến 100.
  4. Cột Buffet_Type của bảng Buffet chỉ nhận các giá trị Breakfast, Lunch, Dinner, Tea.
  5. Cột Yearofbirth của bảng Customer chỉ nhận các năm sau năm 1910.
  6. Cột Food_Price của bảng Food không nhận các giá trị âm.
  7. Cột Yearofbirth của bảng Customer chỉ nhận các giá trị nhỏ hơn năm hiện tại.
Nhập dữ liệu vào các bảng như sau:

Nhập dữ liệu vào các bảng như sau:

Food_ID

Food_Name

Food_Price

FOD01

Basket

3

FOD02

Chocolate

2

FOD03

Chicken

34

FOD04

Salad

23

FOD05

Soup

15

FOD06

Spinach

22

FOD07

Coffee

4

Buffet_ID

Customer_ID

Numofpart

BUF01 CUS03 8
BUF03 CUS04 2
BUF01 CUS03 1
BUF04CUS036
BUF01CUS029
BUF05CUS041

Buffet_ID

Buffet_Name

Buffet_Type

Buffet_Price

BUF01

American

Breakfast

24

BUF02

Italian

Lunch

45

BUF03

Oriental

Breakfast

26

BUF04

Worsd

Dinner

30

BUF05

Heaven

Dinner

10

Buffet_ID

Food_ID

BUF01

FOD01

BUF01

FOD02

BUF01

FOD03

BUF02

FOD01

BUF03

FOD04

BUF04

FOD01

Customer_ID

Customer_Name

Customer_Phone

Address

Yearofbirth

CUS01

Pirlo

8457893478

Milan

28

CUS02

Kaka

2323343423

Madrid

24

CUS03

Dida

5665765654

London

34

CUS04

Gattuso

6898985656

Paris

29

DVD Library

QUẢN LÝ THƯ VIỆN DVD
  1. Tạo csdl có tên là DVDLibrary.
  2. Tạo các bảng với mô hình dữ liệu như sau:

    Yêu cầu:

  3. Cột OrderID của bảng Orders, cột CustomerID của bảng Customer có giá trị tự động được tạo mỗi khi thêm hóa đơn mới hay thêm 1 khách hàng mới.
  4. Cột Quantity của bảng OrderDetail chỉ nhận các giá trị từ 1 đến 200.
  5. Cột Price của bảng DVDLibrary và cột Discount của bảng Customer không nhận các giá trị âm.
  6. Cột Language chỉ nhận các giá trị sau: English, French, Chinese,Vietnamese.
  7. Sử dụng câu lệnh sửa đổi bảng để thao tác các yêu cầu sau:
    1. Thêm cột Age có kiểu money vào bảng Customer.
    2. Chuyển đổi kiểu dữ liệu cột Age của bảng OrderDetails thành kiểu int.
    3. Xóa cột Date_r của bảng OrderDetails.
    4. Thêm ràng buộc vào cột Age của bảng Customer là dữ liệu khi nhập vào cột này chỉ nhận các giá trị lớn hơn 18.
  1. Nhập dữ liệu vào các bảng như sau:

DVDCodeNo

DVDTitle

Language

SubTitles

Price

1

The Code of Da Vinci

English

1

$15,000.00

2

Tazan boy

American

1

$25,000.00

3

The Condor Hero

English

0

$11,000.00

4

Thien Long bat bo

Chinese

1

$15,000.00

5

Thien tam bien

Chinese

0

$15,000.00

6

The Aviator

English

0

$17,000.00

7

Hoang Tu Ech

Chinese

0

$34,000.00


CustomerID

CustomerName

Address

Discount


















EmployeeID

EmployeeName

Password

EM01

Jonh

123

EM02

Shara

456

EM03

Mary

789


OrderID

CustomerName

CustomerAdd

EmployeeID

1

Cusc - ÐHCT

1 Ly Tu Trong - Can Tho

EM01

2

TPT

4 Ly Tu Trong - Can Tho

EM02

3

Manu Life

18 Chau Van Liem

EM01

4

Khai Nguyên

15 - 3/2 - Can Tho

EM03

5

A Châu

16 Mau Than - Can Tho

EM01

6

Phong Than

9 Hoa Binh

EM01

7

Pepsi Viet Nam

15 Le Hong Phong

EM01

8

Chau Van Liem

16 Ngo Quyen

EM02

9

Coca Cola Viet Nam

Le Lai - Can Tho

EM01


OrderId

DVDCodeNo

Quantity

1

1

5

1

2

3

1

4

7

2

3

8

Lưu ý: Cơ sở dữ liệu được đặt trong thư mục CSDL_HotelGreen của ổ đĩa [USER]