e martë, 26 qershor 2007

Select into

1. Tạo bảng titles_1 có cùng cấu trúc và cùng dữ liệu với bảng titles.
2. Tạo bảng titles_2 có cùng cấu trúc và chỉ chứa những quyển sách thuộc loại trad_cook trong bảng titles.
3. Tạo bảng titles_3 có cùng cấu trúc với bảng titles (không chứa dữ liệu).

Compute & Compute by

1. Northwind: Tìm tổng số lượng tất cả các sản phẩm của từng hóa đơn (Order Details)_ Compute by.
2. Hiển thị tổng số lượng sản phẩm đã bán_ Compute.
3. Hiển thị số lượng hóa đơn của từng nhà vận chuyển đã vận chuyển (ShipperID=ShipVia)

Subqueries

In:
1. Tìm những tên của những nxb (pub_name) nào cung cấp những quyển sách có giá là $79.96.
2. Northwind: Tìm tên những sản phẩm (productName) của nhà cung cấp (Suppliers) đến từ quốc gia (country) Germany.
3. Northwind: Tìm các hóa đơn của khách hàng đến từ quốc gia (country) Germany.
4. Tìm tên những nhà sách (stor_name) nào bán những quyển sách có từ Computer hoặc Cooking trong tên quyển sách (title)
5. Tìm tên đầy đủ của những tác giả (au_lname+au_fname) của những quyển sách có ngày xuất bản là 6/12/1991.

Bài giảng trong sách

--bai 1
select title_id,null from titles
union
select title_id,au_id from titleauthor
union
select null,au_id from titleauthor

--bai 2
select title,type from titles where type='business'

--bai 3
select DISTINCT type from titles

select type from titles

--bai 4
SELECT au_fname+' '+au_lname AS 'Full name', [Sum of RoyalTyper]
FROM Authors a
INNER JOIN (
select au_id, sum(royaltyper) 'Sum of RoyalTyper'
from titleauthor
GROUP BY au_id
) b
ON a.au_id = b.au_id


SELECT au_fname+' '+au_lname AS 'Full name', [Sum of RoyalTyper]
FROM Authors a,( select au_id, sum(royaltyper) 'Sum of RoyalTyper'
from titleauthor
GROUP BY au_id
) b
where a.au_id = b.au_id


SELECT au_fname+' '+au_lname AS 'Full name', [Sum of RoyalTyper]
FROM Authors a
INNER JOIN (
select au_id, sum(royaltyper) 'Sum of RoyalTyper'
from titleauthor
GROUP BY au_id
) b
ON a.au_id = b.au_id



--bai 5
select * from authors

select au_id, au_fname + ' ' + au_lname AS 'Full name',Phone, Address, city
from authors

--bai 6
SELECT distinct a.au_id, au_fname + ' ' + au_lname AS 'Full name',Phone, Address, city
FROM authors a
INNER JOIN TitleAuthor b
ON a.au_id = b.au_id AND
EXISTS (
SELECT title_id
FROM titles c
WHERE b.title_id=c.title_id AND type='business'
)

SELECT a.au_id, au_fname + ' ' + au_lname AS 'Full name',Phone, Address, city
FROM authors a
INNER JOIN TitleAuthor b
ON a.au_id = b.au_id
INNER JOIN titles c
ON b.title_id=c.title_id AND type='business'
--bai 7
SELECT au_fname + ' ' + au_lname AS 'Full name', d.tong
FROM authors a
INNER JOIN (
select b.au_id, count(b.au_id) Tong FROM TitleAuthor b
INNER JOIN Titles c
ON b.title_id = c.title_id
GROUP BY b.au_id
) d
ON a.au_id = d.au_id


SELECT DISTINCT au_fname+' '+au_lname AS 'Full Name',
Count(*) AS Qty
FROM Authors a
INNER JOIN TitleAuthor b
ON a.au_id = b.au_id
INNER JOIN Titles c
ON b.title_id = c.title_id
GROUP BY au_fname, au_lname

--Bai tap ve nha
--bai 1
select title_id, count(title_id) as 'So luong sach', sum(qty) as 'Tong so luong'
from sales
group by title_id
--bai 2
select distinct au_id from dbo.titleauthor
where exists (select count(*) from dbo.sales
where sales.title_id=titleauthor.title_id
having count(*)>=1)
--bai 3
select distinct au_id from dbo.titleauthor
where not exists (select count(*) from dbo.sales
where sales.title_id=titleauthor.title_id
having count(*)>=1)

--BAI TAP THEM
--1. Lay ra gia tri cua quyen sach nao duoc viet boi tac gia Dean
select title from titles where title_id in(
select title_id from titleauthor where au_id in
(select au_id from authors where au_fname like '%Dean%'))

--Ket noi titleauthor voi bang authors
select authors.au_id,phone,title_id
from authors,titleauthor
where authors.au_id= titleauthor.au_id

select a.au_id,phone,title_id
from authors a,titleauthor ta
where a.au_id= ta.au_id

select authors.au_id,phone,title_id
from authors inner join titleauthor
on authors.au_id= titleauthor.au_id


select authors.au_id,phone,titles.title_id,type
from authors,titleauthor,titles
where authors.au_id= titleauthor.au_id and titleauthor.title_id=titles.title_id

e hënë, 25 qershor 2007

BT về nhà

--Bai tap ve nha
create view RevOrderDetails as
select o.OrderID,CustomerID,ProductID,Quantity
from [Order Details] od, Orders o
where od.OrderID=o.OrderID

select * from RevOrderDetails

alter trigger DeleteOrder
on RevOrderDetails instead of Delete
as
begin
delete from [Order Details] where OrderID in(select OrderID from deleted)
delete from Orders where OrderID in (select OrderID from deleted)
end

delete from RevOrderDetails where OrderID=10248

Phần II_p228_Q3 và Q4

--3.
sp_helptext InsertSales

--4.
alter trigger UpdateTitleAdvance
on titles with encryption
for update
as
if (select advance from inserted)>15000
begin
print 'Gia tri cua cot advance phai nho hon 15000'
rollback transaction
end

sp_helptext UpdateTitleAdvance

Phần II_p228_Q2

create trigger UpdateTitleAdvance
on titles
for update
as
if (select advance from inserted)>15000
begin
print 'Gia tri cua cot advance phai nho hon 15000'
rollback transaction
end

update titles set advance=16000 where title_id='BU1032'

Phần II_p228

create trigger InsertSales
on Sales
for Insert
as
if((select ord_date from inserted) > getdate())OR((select qty from inserted) < 10)
begin
print 'Not Insert'
rollback transaction
end


insert into sales values ('6380','6870','10/26/2006',110,'ON invoice','BU1032')

e mërkurë, 20 qershor 2007

S15_1

CSDL Northwind
Tao procedure hiển thị tất cả nhưng hóa đơn và khoảng thời gian từ ngày đặt hàng đến ngày giao hàng của khách hàng: có người đại diện là Yang Wang.

Giai BT

--BT1 p204
--Xoa procedure neu no co ton tai truoc
use pubs
go
drop Get_Sales_Avg
go
--Cach 1
create procedure Get_Sales_Avg @a_id id
as
select avg(ytd_sales) as 'Gia tri TB' from titles
where title_id in (select title_id from titleauthor where au_id=@a_id)
go
--Cach 2
create procedure Get_Sales_Avg_1 @a_id varchar (20)
as
select avg(ytd_sales) as 'Gia tri TB' from titles t inner join titleauthor ta
on t.title_id=ta.title_id where au_id=@a_id
go
----------
create procedure Get_Sales_Avg_1 @a_id varchar (20)
as
select avg(ytd_sales) as 'Gia tri TB' from titles t,titleauthor ta
where t.title_id=ta.title_id and au_id=@a_id
go
exec Get_Sales_Avg_1 '267-41-2394'
--BT2: p204
exec Get_Sales_Avg '267-41-2394' with recompile

--BT3: p204
sp_stored_procedures
--BT4: p204
sp_helptext Get_Sales_Avg

--Bai tap ve nha
--Bai 1
create procedure Get_sales_Avg @a_id varchar(11) as
if (select count(*) from authors where au_id=@a_id)=0
begin
raiserror('AuthorID khong nhin thay',1,2)
end
else
select avg(ytd_sales) as 'Gia tri TB' from titles t,titleauthor ta
where t.title_id=ta.title_id and au_id=@a_id

exec Get_sales_Avg '213-46-8916'
--Cau 2:

alter procedure Get_sales_Avg @a_id varchar(11) as
if (select count(*) from authors where au_id=@a_id)!=0
begin
declare @x int
select @x=avg(ytd_sales) from titles t,titleauthor ta
where t.title_id=ta.title_id and au_id=@a_id
if @x > 5000
print 'High year-to-date sales'
else
print 'Low year-to-date sales'
end

exec Get_sales_Avg '267-41-2394'

e premte, 15 qershor 2007

Question for User & Security

1. Tạo ra một người dùng win_1, sao đó cấp quyền login cho người dùng này vào SQL Server bằng câu lệnh.
2. Cấp quyền cho người dùng sql_1 có quyền db_owner trên database pubs

Question for Index

CSDL Pubs
  1. Tạo ra một index nonclustered duy nhất trên bảng EmployeeTerritories tại 2 cột EmployeeID và TerritoryID có phần trăm khoảng trống ở nút giữa và nút lá là 50%.

  2. Tạo 1 clustered index trên bảng Region tại cột RegionID.

  3. Tạo một chỉ mục clustered có giá trị duy nhất trên bảng Territories trên các cột (TerritoryID, RegionID), đảm bảo giá trị điền đầy ở mức lá là để trống 20%

Question for View & Cursor

CSDL Pubs
  1. Tạo một view có tên là Store_Discount từ bảng Discount và Stores. View này bao gồm các trường storeID, storeName và discounttype (kiểu giảm giá đang được đưa ra)

  2. Tạo view dùng để hiển thị tất cả các quyển sách trong bảng titles cùng với một cột gọi là Total, cột này liệt kê giá (price) nhân với số tiền bán được year-to-date.

  3. Tạo view dùng để hiển thị tất cả các tác giả có họ (last name) bắt đầu bằng ký tự M.

Question for Trigger

CSDL Pubs
  1. Tạo một trigger in ra một câu thông báo lỗi sau:
    Raiserror (“%d rows have been modified”,0,1,@@rowcount)
    Cho các thao tác thêm, sửa, xóa trên bảng authors

  2. Tạo 1 trigger cập nhật giá của các quyển sách với điều kiện là quyển sách của tác giả Anne thì cho cập nhật, ngược lại thì không cho cập nhật.


  3. Tạo một bảng mới có cùng cấu trúc và cùng dữ liệu với bảng titles. Tạo một trigger để xóa toàn bộ bảng nếu số hàng trong bảng vừa tạo là lớn hơn 20 ngược lại thì in ra câu thông báo …

  4. Viết một trigger khi thêm quyển sách có mã là BU0032 và mã tác giả là 172-32-1981 vào bảng titleauthor (lưu ý là phải thêm vào các bảng còn lại)
CSDL Northwind:

  1. Nhập vào một nhà vận chuyển. Nếu nhà vận chuyển có chứa giá trị Rose thì không cho nhập. In ra thông báo lỗi.
  2. Viết một câu lệnh tạo trigger nếu xóa mã sp là 13 và mã sản phẩm là 10248 là không chấm nhận.
  3. Viết 1 câu lệnh trigger trên bảng Employee sao cho nếu xóa 1 mẫu tin nào đó trên bảng Employee nó sẽ tự động đưa vào bảng RetiresEmployee.

Question for Store Procedure

CSDL Northwind

1. Tạo một procedure hiển thị các nhà cung cấp của sản phẩm thuộc loại 1.

2. Tạo một procedure hiển thị những nhân viên có ngày bắt đầu vào làm nằm trong khoảng thời gian được nhập vào. Viết câu lệnh thực thi procedure trên nhập vào từ ngày 16/12/1991 đến ngày 17/10/1992

e enjte, 14 qershor 2007

Answer_Question_SQL_P2

1. N-M

2. Dạng chuẩn 2 (Second Normal Form)

3. SQL server sẽ trả về lỗi

4. Nested subqueries
Correlated subqueries

5. True

6. Chuyển thành kiểu dữ liệu bit, các giá trị khác 0 sẽ chuyển thành 1
Kiểu dữ liệu Char hoặc Varchar có thể chuyển thành kiểu Int chỉ khi nó chứa ký số

7. varbinary

8. True

9. False

10. 1024

11. With schemabinding

12. User-defined stored procedures
System stored procedures

13. 2100

14. EXEC procedure_name
EXECUTE procedure_name

15. Một trigger chỉ áp dụng cho một bảng
Một trigger có thể kết hợp cả 3 thao tác trên bảng: : INSERT, UPDATE, and DELETE

16. Update table

17. CREATE TRIGGER ins_trigg ON Passenger
FOR INSERT
AS
if (select pnr_no from inserted)> 500
begin
print 'PNR_no do not exeed 500'
rollback tran
end

18. Autocommit mode

19. Isolation

20. True

Question 20

20. Con trỏ đã đóng (close) nó vẫn còn tồn tại trong bộ nhớ
a. True
b. False

Question 19

19. Một giao dịch chỉnh sửa chỉ được truy cập dữ liệu trước hoặc sau khi một giao dịch khác hoàn thành. Thuộc tính nào sau đây của giao dịch định nghĩa cho trường hợp này
a. Atomicity
b. Consistency
c. Isolation
d. Durability

Question 18

18. Chế độ giao dịch mặc định của SQL Server là?
a. Explicit mode
b. Implicit mode
c. Autocommit mode

Question 17

17. Tạo Insert trigger tên ins_trigg trên bảng Passenger. Trigger đảm bảo rằng trường PNr_no nhập vào không được vượt quá 500. Trigger nào là đúng?
a. CREATE TRIGGER ins_trigg ON Passenger
FOR INSERT
AS
if (select pnr_no from inserted)> 500
begin
print 'PNR_no do not exeed 500'
end


b. CREATE TRIGGER ins_trigg ON Passenger
FOR INSERT
AS
if (select pnr_no from deleted)> 500
begin
print 'PNR_no do not exeed 500'
rollback tran
end

c. CREATE TRIGGER ins_trigg ON Passenger
FOR UPDATE
AS
if (select pnr_no from inserted)> 500
begin
print 'PNR_no do not exeed 500'
rollback tran
end

d. CREATE TRIGGER ins_trigg ON Passenger
FOR INSERT
AS
if (select pnr_no from inserted)> 500
begin
print 'PNR_no do not exeed 500'
rollback tran
end

Question 16

16. Câu lệnh nào sau đây có thể được sử dụng trong trigger?
a. Create database
b. Load database
c. Update table
d. Reconfigure

Question 15

15. Câu nào sau đây là đúng cho Trigger? (choose 2)
a. Trigger không thể chứa câu lệnh SQL phức tạp
b. Một trigger chỉ áp dụng cho một bảng
c. Một trigger có thể kết hợp cả 3 thao tác trên bảng: : INSERT, UPDATE, and DELETE
d. Bạn có thể giải mã một trigger đã được mã hóa

Question 14

14. Câu lệnh nào sau đây có thể được sử dụng để thực thi thủ tục lưu? (choose 2)
a. EXEC procedure_name
b. RUN procedure_name
c. EXECUTE procedure_name
d. Sp_recompile procedure_name

Question 13

13. Số lượng tham số tối đa có thể được sử dụng trong thủ tục lưu là?
a. 64
b. 1024
c. 2100
d. Unlimited

Question 12

12. Có 2 loại thủ tục lưu là: (choose 2)
a. Server stored procedures
b. User-defined stored procedures
c. System stored procedures
d. Aggregate stored procedures

Question 11

11. Để index được view, bạn cần có lựa chọn .... trong câu lệnh Create view?
a. With check option
b. With schemabinding
c. With compute

Question 10

10. Số cột tối đa bạn có thể lấy ra trong câu lệnh CREATE VIEW là
a. 16
b. 256
c. 1024
d. Unlimited

Question 9

9. Nếu thực thi câu lệnh tạo index mà không chỉ ra loại của nó, mặc định SQL server sẽ tạo ra clustered index
a. True
b. False

Question 8

8. Ràng buộc khóa chính (Primary key) tự động tạo chỉ mục clustered, nếu chỉ mục clustered không tồn tại trên bảng
a. True
b. False

Question 7

7. Hàm TEXTPTR() trả về kiểu dữ liệu
a. varbinary
b. binary
c. image
d. uniqueidentifier

Question 6

6. Câu nào dưới đây là đúng cho hàm chuyển đổi kiểu dữ liệu (choose 2)
a. Nếu dữ liệu quá dài so với kiểu dữ liệu mới, SQL server sẽ trả về lỗi
b. Chuyển thành kiểu dữ liệu bit, các giá trị khác 0 sẽ chuyển thành 1
c. Kiểu dữ liệu Char hoặc Varchar có thể chuyển thành kiểu Int chỉ khi nó chứa ký số

Question 5

5. Correlated subqueries, subquery được đánh giá lại cho mỗi lần lặp (giá trị của câu truy vấn cha)
a. True
b. False

Question 4

4. SQL server hỗ trợ 2 loại truy vấn con:
a. Nested subqueries
b. Distributed subqueries
c. Correlated subqueries
d. Aggregate subqueries

Question 3

3. Nếu sử dụng phép toán so sánh với câu truy vấn con, và câu truy vấn con trả về nhiều hơn 1 dòng
a. SQL server sẽ trả về tập kết quả của câu truy vấn con
b. SQL server sẽ trả về lỗi
c. SQL server trả về số dòng của câu truy vấn con
d. SQL server trả về câu lệnh SQL

Question 2

2. Dạng chuẩn nào chỉ ra trường không phải là khóa trên bảng phải lệ thuộc hoàn toàn vào khóa?
a. Dạng chuẩn 1 (First Normal Form)
b. Dạng chuẩn 2 (Second Normal Form)
c. Dạng chuẩn 3 (Third Normal Form)

Question 1

1. Trong hệ thống quản lý bệnh nhân, có 2 thực thể là bác sĩ và bệnh nhân. Kiểu quan hệ của 2 thực thể này là
a. 1-1
b. 1-n
c. N-M

Answer_Question_SQL_P1

1. a. Mô hình mạng (Network)
2. a. Tinyint
b. Ntext
3. a. Toàn vẹn tham chiếu
4. a. True
5. a. Tòan vẹn thực thể
6. a. System databases
b. User databases
7. a. SELECT TOP 40 * FROM STUDENT
b. SELECT TOP 50 PERCENT * FROM STUDENT
8. a. AVG()
b. SUM()
9. a. Trả về tất cả các dòng mà GROUP BY tạo ra, cho dù không thỏa WHERE
10. a. Nó trả về số các dòng kể cả dòng có chứa giá trị NULL
11. a. WHERE, GROUP BY, HAVING
12. a. model
13. a. distinct
14. a. Tăng dần
15. a. Toàn vẹn miền trị
16. a. Đặt một định nghĩa DEFAULT là 0 cho cột đó.
17. a. Một cột IDENTITY không thể mang giá trị NULL.

Question 17

Câu nào sau đây là đúng khi nói đến thuộc tính IDENTITY?
a. Trong một bảng có thể có nhiều cột có thuộc tính này.
b. Một cột IDENTITY có thể có kiểu char
c. Một cột IDENTITY không thể mang giá trị NULL.

Question 16

Bạn đang tạo một CSDL cho một ứng dụng quản lý Nhân sự. Người dùng nói rằng, khi nhập vào một nhân viên mới thì không cho phép nhập giá trị lương, nhưng cột này không thể chứa giá trị NULL. Vì cột này kiểu số, nên mặc định nên để là 0. Vậy, bạn phải làm gì trong trường hợp này?
a. Sửa chương trình ứng dụng để nhâp vào 0 khi người dùng không nhập giá trị cho cột đó.
b. Đặt một định nghĩa DEFAULT là 0 cho cột đó.
c. Không làm gì cả. Vì kiểu dữ liệu money đã có giá trị mặc định là 0.
d. Đặt một định nghĩa DEFAULT là 0 cho kiểu dữ liệu money.

Question 15

Trong khi thiết kế bảng, bạn thêm vào một ràng buộc CHECK để bảo đảm rằng giá trị của cột Emp_id phải chứa 9 kí tự, và mỗi vị trí có các kí tự hợp lệ. Vậy bạn đang bắt toàn vẹn gì?
a. Toàn vẹn thực thể
b. Toàn vẹn tham chiếu
c. Toàn vẹn do người dùng định nghĩa
d. Toàn vẹn miền trị

Question 14

Nếu bạn không chỉ rõ thứ tự sắp xếp trong mệnh đề ORDER BY, thì mặc nhiên là:
a. Tăng dần
b. Giảm dần

Question 13

Bạn dùng từ khóa nào để loại bỏ các dòng trùng nhau trong kết quả truy vấn:
a. Top
b. percent
c. distinct
d. as

Question 12

CSDL hệ thống nào được dùng để làm bản mẫu cho việc tạo CSDL mới:
a. master
b. model
c. tempdb
d. pubs
e. msdb

Question 11

Câu nào thể hiện trình tự đánh giá khi một câu lệnh SELECT có chứa mệnh đề WHERE, GROUP BY và HAVING?
a. WHERE, HAVING, GROUP BY
b. GROUP BY, HAVING, WHERE
c. GROUP BY, WHERE, HAVING
d. WHERE, GROUP BY, HAVING

Question 10

Câu nào sau đây là đúng với hàm COUNT(*)
a. Nó có thể truyền một tham số
b. Nó trả về số các dòng khác nhau sử dụng từ khóa DISTINCT
c. Nó trả về số các dòng kể cả dòng có chứa giá trị NULL
d. Nó trả về số các dòng bỏ qua các dòng có chứa giá trị NULL

Question 9

Mục đích của từ khóa ALL trong mệnh đề GROUP BY?
a. Vô hiệu hóa công dụng của mệnh đề WHERE
b. Bỏ qua mệnh đề HAVING
c. Trả về số dòng trong bảng
d. Trả về tất cả các dòng mà GROUP BY tạo ra, cho dù không thỏa WHERE

Question 8

Các hàm nào không thể sử dụng với ký tự:
a. AVG()
b. SUM()
c. MIN()
d. MAX()

Question 7

Bảng STUDENT có 80 mẫu tin. Câu lệnh nào sau đây sẽ hiển thị 40 mẫu tin đầu tiên của bảng? (choose 2)
a. SELECT TOP 40 FROM STUDENT
b. SELECT TOP 40 PERCENT * FROM STUDENT
c. SELECT TOP 40 * FROM STUDENT
d. SELECT TOP 50 PERCENT * FROM STUDENT

Question 6

Hai dạng cơ sở dữ liệu của SQL server là: (Choose 2)
a. System databases
b. Client databases
c. Server databases
d. User databases

Question 5

Khi thiết kế bảng, bạn đặt trường Emp_id làm khóa chính. Toàn vẹn dữ liệu nào hỗ trợ cho trường hợp này
a. Tòan vẹn thực thể
b. Toàn vẹn tham chiếu
c. Toàn vẹn miền
d. Tòan vẹn do người dùng định nghĩa

Question 4

Trường khóa ngoại có thể tham chiếu đến trường UNIQUE của bảng khác
a. True
b. False

Question 3

Tòan vẹn dữ liệu nào đảm bảo khóa ngoại của bảng con phải có giá trị tương ứng trong trường khóa chính của bảng cha?
a. Toàn vẹn thực thể
b. Toàn vẹn tham chiếu
c. Toàn vẹn miền
d. Tòan vẹn do người dùng định nghĩa

Question 2

Kiểu dữ liệu của SQL Server là? (choose 2)
a. Tinyint
b. String
c. Ntext
d. Double

Question 1

Mô hình dữ liệu nào một con có thể có nhiều hơn một cha?
a. Tập tin phẳng (Flat-file)
b. Mô hình phân cấp (Hierarchical)
c. Mô hình mạng (Network)
d. Mô hình quan hệ (Relational)

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’

Session 4

Chương 4

Bài tập : Cơ sở dữ liệu Pubs

1. SELECT title_id FROM titles
UNION
SELECT title_id FROM titleauthor
UNION all
SELECT au_id FROM authors
2. SELECT * FROM Titles WHERE type='business'
3. SELECT DISTINCT type FROM Titles
4. SELECT au_id, SUM(royaltyper) as ‘Tong nhuan but’ FROM titleauthor GROUP BY au_id
5. SELECT * FROM authors
6. SELECT * FROM authors WHERE au_id IN
(SELECT au_id FROM titleauthor WHERE title_id IN
(SELECT title_id FROM Titles WHERE type='business'))

Hoặc
SELECT * FROM authors WHERE EXISTS
(SELECT au_id FROM titleauthor
WHERE authors.au_id=titleauthor.au_id AND title_id IN
(SELECT title_id FROM Titles WHERE type='business'))
Hoặc
SELECT * FROM authors WHERE EXISTS
(SELECT au_id FROM titleauthor
WHERE authors.au_id=titleauthor.au_id AND EXISTS
(SELECT title_id FROM Titles WHERE type='business'
AND Titles.title_id=titleauthor.title_id))
7. select au_id, count(*) as ‘So luong sach’ from titleauthor group by au_id
8. select title_id, avg(qty) as ‘So luong trung binh’ from sales group by title_id
Bài tập về nhà

1. select title_id, count(*) as 'total number of orders', sum(qty) as 'total quantity'
from sales group by title_id
2. select distinct au_id from dbo.titleauthor
where exists (select count(*) from dbo.sales
where sales.title_id=titleauthor.title_id
having count(*)>=1)
3. select distinct au_id from dbo.titleauthor
where not exists (select count(*) from dbo.sales
where sales.title_id=titleauthor.title_id
having count(*)>=1)

Session 8

Bài tậ p : Cơ sở dữ liệu Northwind

1. declare @v_proname char(40)
set @v_proname='konbu'
select * from products where productname=@v_proname
SELECT title_id FROM titles
2. declare @v_title char(30)
set @v_title='Owner'
select * from Customers where ContactTitle=@v_title
3. select lower(productname) from products
4. select datepart(dw,getdate()), datepart(dy,getdate()), datepart(yy,getdate()), datepart(qq,getdate()), datepart(hh,getdate())
5. select dateadd(dd,25, getdate())
6. select @@identity+1
insert into jobs values('New job', 10, 20)
select @@identity+1
7. exec sp_addlogin 'ten','ten'

Session 10

Bài tập: Cơ sở dữ liệu Pubs

2. Create clustered index stor_id_idx on discounts (stor_id)
3. Create nonclustered index emp_pub_id_idx on employee(emp_id, pub_id) with fillfactor=75
4. sp_helpindex sales
5. select title, type from titles where CONTAINS(notes, ‘”recipes” or “electronic”’)
Hoặc
select title, type from titles where FREETEXT(notes, ‘recipes or electronic’)
Bài tập về nhà: Cơ sở dữ liệu Northwind
1. Create nonclustered index country_index on Suppliers(country, city)
with fillfactor=50, drop_existing
2. select CompanyName from Suppliers (index= country_index) where country=’France’

Session 12

1. create view EmpHierarchy
as
select Employees.EmployeeID, Employees.FirstName, Employees.LastName, boss. FirstName
from Employees, Employees as boss
where Employees.ReportsTo=boss.EmployeeID

2. update EmpHierarchy set LastName='Jones' where EmployeeID=4

3. drop view EmpHierarchy

4. declare SuppliersCursor cursor scroll
For
select * from Suppliers
where Country='UK' or Country='USA'

open SuppliersCursor
fetch first from SuppliersCursor
fetch last from SuppliersCursor

close SuppliersCursor
deallocate SuppliersCursor

Session 16

1. Create trigger InsertSales on sales
for insert
AS
if ((select ord_date from inserted)<10)>=10'
rollback tran
end

-- Kiem tra trigger
Insert into dbo.sales values ('6380', '0001', '10/01/2006', 10, 'Net 6','BU1032' )

2. Create trigger UpdatetitleAdvance on dbo.titles
for update
AS
if ((select advance from inserted)>15000)
begin
print 'Advance khong the lon hon 15000'
rollback tran
end

-- Kiem tra trigger
update dbo.titles set advance=20000 where title_id='BU1032'

3. sp_helptext InsertSales

4. Alter trigger UpdatetitleAdvance on dbo.titles with encryption
for update
AS
if ((select advance from inserted)>15000)
begin
print 'Advance khong the lon hon 15000'
rollback tran
end

Session 14

1. CREATE PROCEDURE Get_Sales_Avg
@author varchar(11)
AS
select avg(a.ytd_sales) as 'Trung binh year-to-day sale' from titles a, titleauthor b
where b.title_id=a.title_id and b.au_id=@author
go
2. exec get_sales_avg '267-41-2394' with recompile
3. sp_stored_procedures
4. sp_helptext get_sales_avg

Session 14_Q2

2. ALTER PROCEDURE Get_Sales_Avg
AS
declare @tuan int
select @tuan=avg(a.ytd_sales)
from titles a, titleauthor b
where b.title_id=a.title_id and b.au_id='267-41-2394'
if @tuan>5000
print 'High year-to-day sales'
else if @tuan<=5000
print 'Low year-to-day sales'

Session 14_Q1

1. ALTER PROCEDURE Get_Sales_Avg @author varchar(11)
AS
if (select count(*) from authors where au_id=@author)=0
raiserror ('Author ID khong dung', 16, 1)
else
select avg(a.ytd_sales) as 'Trung binh year-to-day sale'
from titles a, titleauthor b
where b.title_id=a.title_id and b.au_id=@author

e martë, 12 qershor 2007

Bai giai CSDL StudentManagement

create database StudentManagement on(
name='data',
filename='D:\ltmloan\data.mdf'
)
log on (
name='data_log',
filename='D:\ltmloan\data_log.mdf'
)
--------------------------------------------------------
create table UserTypes(
UserTypeCode int not null,
UDesc varchar(20)
)

create table Users (
UserID int not null,
UserTypeCode int,
Username varchar(20),
Pass_word varchar(20)
)
--Them cot
alter table Users add column_a varchar(12)

--Sua doi kieu du lieu
alter table Users alter column column_a int
alter table Users alter column column_a int not null

--Sua doi thanh rang buoc Unique,primary key, identity
ALTER TABLE Users ADD CONSTRAINT con_primary primary key (UserID)
ALTER TABLE Users ADD CONSTRAINT con_unique UNIQUE (column_a)

--Sua doi thanh rang buoc Check, default
alter table Users add CONSTRAINT check_user check(column_a >=10)

--Sua doi rang buoc khoa ngoai
ALTER TABLE Users ADD CONSTRAINT column_c_fk
foreign key (UserTypeCode) REFERENCES UserTypes(UserTypeCode)
--Xoa cot
alter table UserTypes drop column abc
--------------------------------------------------------


create table Course (
CourseCode int primary key,
CDesc varchar (20) null,
totalFeeCash money check (totalfeecash>0),
totalFeeInstallment money null,
MinDownPayment money null,
CourseType varchar(10) null,
Duration int null
)

create table material(
MaterialCode int primary key identity (1,1),
MaterialType varchar(10),
MaterialName varchar(10),
MDesc varchar(10) default 'None'
)

create table CourseMaterial(
CourseCode int Not null,
MaterialCode int not null,
YearSem varchar(15),
Sequence int,
primary key (CourseCode,MaterialCode),
foreign key (CourseCode) references Course (CourseCode),
foreign key (MaterialCode) references material(MaterialCode)
)

CREATE TABLE Batch(
BatchNo INT PRIMARY KEY identity(1,1),
DateStarted DATETIME NOT NULL check (DateStarted>='20/12/2006'),
NoofStudentsEnrolled INT NOT NULL,
MinimumNumberOfStudents INT NOT NULL check (MinimumNumberOfStudents<=24),
MaximumNumberOfStudents INT NOT NULL default 24,
CourseCode INT NOT NULL,
BatchTiming VARCHAR(15) NOT NULL,
BatchOver BIT NOT NULL,
FOREIGN KEY (CourseCode) REFERENCES Course(CourseCode)
)

CREATE TABLE Students(
RollNo INT NOT NULL PRIMARY KEY,
StudentName VARCHAR(20) NOT NULL,
EnrollmentDate DATETIME NOT NULL,
CourseCode INT NOT NULL,
Qualification VARCHAR(20) NOT NULL,
Address VARCHAR(100) NOT NULL,
Email VARCHAR(20) NOT NULL,
ContactNo BIGINT NOT NULL,
Opinion VARCHAR(100) NOT NULL,
Status VARCHAR(20) NOT NULL,
FeeOpted VARCHAR(15) NOT NULL check (FeeOpted in('FULL CASH','INSTALLMENT')),
NumberOfInstallments TINYINT NOT NULL,
BatchNo INT NOT NULL,
FOREIGN KEY (CourseCode) REFERENCES Course(CourseCode),
FOREIGN KEY (BatchNo) REFERENCES Batch(BatchNo)
)

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]

e shtunë, 2 qershor 2007

Câu 1

Dreamweaver sử dụng giao thức gì để tải một site cục bộ lên web server ?

a. HTTP
c. SMTP
b. FTP
d. URL

Câu 2

Dreamweaver tương đương với phần mềm nào dưới đây?

a. Microsoft FrontPage
b. Flash MX
c. Photoshop
d. Microsoft Word

Câu 3

Dreamweaver cho phép làm việc với mấy cách trình bày tài liệu.

a. 2
b. 3
c. 5
d. 4

Câu 4

Tính năng nào trong Dreamweaver cho phép hiển thị mã nguồn của tài liệu.

a. Show Code view c. Combined view
b. Show Design view d. Standard view
e. Layout view e. Show Code and Design view

Câu 5

Tính năng nào trong Dreamweaver cho phép hiển thị trực quan của tài liệu.

a. Show Code view
b. Show Design view
c. Combined view
d. Standard view
e. Layout view
f. Show Code and Design view

Câu 6

Tính năng nào trong Dreamweaver cho phép hiển thị code và trực quan của tài liệu.

a. Show Code view
b. Show Design view
c. Combined view
d. Standard view
e. Layout view
e. Show Code and Design view

Câu 7

Mặc định, ở chế độ Design and Code View:

a. Khung thiết kế code nằm trên, khung desgin nằm dưới.
b. Khung design nằm trên, khung thiết kế code nằm dưới.

Câu 8

Thanh công cụ dùng để thay đổi giá trị định của các thuộc tính cho các đối tượng như văn bản, đoạn văn, hình ảnh, … là

a. Property Inspector
b. Insert panel
c. Objects panel
d. Code inspector

Câu 9

Mục nào không phải là thuộc tính của Page Properties

a. Title
b. Tracing Image
c. Background
d. CSS Styles

Câu 10

Để ẩn tất cả các Panel, ta thực hiện

a. Ấn phím Ctrl + F4
b. Ấn phím Alt + F4
c. Ấn phím Shift + F4
d. Ấn phím F4

Câu 11

Asset Panels dùng để

a. Quản lý hình ảnh trong website
b. Quản lý phim ảnh trong website
c. Quản lý các siêu liên kết trong website
d. Tất cả đều đúng

Câu 11

Asset Panels dùng để

a. Quản lý hình ảnh trong website
b. Quản lý phim ảnh trong website
c. Quản lý các siêu liên kết trong website
d. Tất cả đều đúng

Câu 12

Dấu * trên thanh Title của Dreamweaver xác định tập tin chưa được save lần nào?

a. Đúng
b. Sai

Câu 13

Để hủy bỏ những thao tác đã thực hiện trong tài liệu hiện hành, ta sử dụng (2).

a. Ctrl + Z
b. Edit à Undo
b. Ctrl + Y
d. Edit à Repeating entries

Câu 14

Trong Dreamweaver có bao nhiêu kiểu đoạn văn bản cơ bản.

a. 1
b. 2
c. 3
d. 4

Câu 15

Trong Dreamweaver, các chế độ cho phép thiết kế trong chế độ Design view (2).

a. Code view
b. Design view
c. Combined view
d. Standard view
e. Layout view

Câu 16

Ở chế độ thiết kế (Layout view), chúng ta có thể Insert Table hoặc Draw Layer.

a. True
b. False

Câu 17

Thao tác chèn table

a. Control + Alt + T
b. Insert à Table
c. Chọn icon Insert Table trên thanh Object
d. Tất cả

Câu 18

Sau khi tạo table, thao tác nào sau đây cho phép tạo thêm một hàng mới vào table (3).

a. Tại ô cuốI cùng, nhấn phím TAB.
b. Ctrl + M
c. Modify à Table à Insert row.
d. Insert à Table.

Câu 19

Trong Dreamweaver, khi tạo bảng, nếu không xác định giá trị của 2 thuộc tính cellpadding và cellspacing, thì 2 thuộc tính này lần lượt có giá trị …, …

a. 0,0
b. 1,2
c. 2,1
d. 1,1

Câu 20

Sử dụng Commandà Format Table để định dạng table, không thể chỉnh sửa các thuộc tính table

a. Đúng
b. Sai

Câu 21

Layout Cell có thể tồn tại bên ngoài Layout table?

a. Đúng.
b. Sai.

Câu 22

Layout Table được tạo tự động bởi Dreamweaver và có độ rộng của cửa sổ tài liệu.

a. Đúng.
b. Sai.