1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đề thi sql server có đáp án

30 16,1K 51
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đề thi sql server có đáp án
Trường học University of Information Technology
Chuyên ngành Database Management
Thể loại tài liệu ôn thi
Thành phố Ho Chi Minh City
Định dạng
Số trang 30
Dung lượng 5,89 MB

Nội dung

TÀI LIỆU ÔN THI CUỐI KỲ MÔN SQL, create database, create table, create view, create proceduces, đề thi sql có đáp án, đề thi sql có lời giải, đề thi sql, đề thi sql server có lời giải, đề thi sql server có lời giải

Trang 1

/*TÀI LIỆU ÔN THI CUỐI KỲ MÔN SQL*/

Bài 1:

/*Trước hết phải tạo 1 database sinh viên VD n tạo trong ổ đĩ như dưới*/

create database Sinhvien

on primary (name=Sinhvien,filename='D:\Hoc_tap\SQL\Thi_60%\Sinhvien.mdf',

size=5,maxsize=50,filegrowth=2)

log on(name=Hoadon_log1,filename='D:\Hoc_tap\SQL\Thi_60%\Sinhvien_log.ldf',

size=2,maxsize=10,filegrowth=1)

-Câu 1: Cơ sở dữ liệu quản lý sinh viên có chứa 3 table Viết lệnh tạo các table với các ràng buộc khóa

chính, khóa ngoại được nêu trong tân từ Kiểu dữ liệu của các Fields là tự chọn theo ngữ nghĩa

GO

use Sinhvien

GO

SinhVien(MSSV, Lop, Ho, Ten, Ngaysinh, Nu)

Tân từ: Mỗi sinh viên có một mã số (MSSV) là số nguyên phân biệt, thuộc một lớp (Lop), có họ

(HO) và tên (Ten) sinh viên, ngày sinh (Ngaysinh), thuộc phái nữ hay nam (Nu)

create table SinhVien

DiemThi(MSSV, MSMon, LanThi, Diem)

Tân từ: Mỗi sinh viên (MSSV) có thể học nhiều môn (MSMon) Mỗi môn học có thể thi nhiều lần (LanThi), mỗi lần thi được đánh số thứ tự từ 1 trở đi và ghi nhận điểm thi (Diem) của các lần thi đó

create table DiemThi

(

MSMon int references MonHoc(MSMon),

MSSV int references SinhVien(MSSV),

Trang 2

************************************************ Câu 2: Khai báo bổ sung các ràng buộc sau:

a) Lần thi (LanThi) trong table DiemThi có giá trị mặc định là 1

Alter table DiemThi

add default 1 for LanThi

GO

b) Điểm thi (Diem) trong table DiemThi được chấm theo thang điểm 10

Alter table DiemThi

Add check (diem between 0 and 10)

GO

/*Cũng có thể dùng Add check (diem >=0 and diem <=10)*/

************************************************ Câu 3: Tạo View:

a) Tạo view vwLanThiCuoi dùng liêt kê danh sách lần thi cuối cùng của các sinh viên gồm: Mã

số sinh viên, mã số môn học, lần thi cuối cùng của môn học (ví dụ sinh viên A thi môn học

create view vwDiemThiCuoi

as

select d.MSSV,d.MSMon,LanThiCuoi,Diem

from DiemThi d inner join vwLanThiCuoi v on d.MSSV=v.MSSV and

d.MSMon=v.MSMon and d.LanThi=v.LanThiCuoi

GO

Cách khác

create view vwDiemThiCuoi1

as

select MSSV,MSMon,lanthi,diem from diemthi d1

where lanthi = (select max(lanthi) from diemthi d2

where d2.MSSV=d1.MSSV and d2.MSMon=d1.MSMon)

GO

drop view vwDiemThiCuoi1

Câu 4: Tạo trigger Insert cho table DiemThi dùng điền tự động số thứ tự lần thi khi thêm điểm thi một

môn học của một sinh viên Ví dụ sinh viên A đã thi môn học M hai lần thì lần thi mới thêm vào phải

là 3

create trigger itrg_DiemThi on DiemThi

Trang 3

inserted of for Insert

declare @D int

Select @D=max (LanThi) from DiemThi inner join Inserted on DiemThi.MSSV

=Inserted.MSSV and DiemThi.MSMon=Inserted.MSMon

Insert into DiemThi

Select MSSV,MSMon,Isnull(@D,0)+1, Diem

Select @D= max(LanThi) from DiemThi inner join Inserted on DiemThi.MSSV

=Inserted.MSSV and DiemThi.MSMon=Inserted.MSMonInsert into DiemThi

Select MSSV,MSMon,Isnull(@D,0)+1, Diem

From Inserted

/*(Chưa làm được)*/

Câu 5: Viết thủ tục hoặc hàm liệt kê kết quả thi các môn của một sinh viên khi biết mã số của sinh

viên (MSSV) gồm các thông tin: mã số môn học, lần thi, điểm thi Trong đó, mã số sinh viên là giá trị input

create proc KetQuaThi (@MSSV int)

Bài 2: Quản lý trận đấu*/

/*Trước hết phải tạo 1 database sinh viên VD n tạo trong ổ đĩ như dưới*/

create database QuanLyTranDau

on primary (name=QuanLyTranDau,filename='D:\Hoc_tap\SQL\Thi_60%\QuanLyTranDau.mdf', size=5,maxsize=50,filegrowth=2)

log on(name=QuanLyTranDau_log,filename='D:\Hoc_tap\SQL\Thi_60%\QuanLyTranDau_log.ldf', size=2,maxsize=10,filegrowth=1)

go

use QuanLyTranDau

go

Câu 1: Cơ sở dữ liệu quản lý các trận đấu bóng đá tại một sân vận động có chứa 3 table Viết lệnh tạo

các table với các ràng buộc khóa chính, khóa ngoại được nêu trong tân từ Kiểu dữ liệu của các Fields

là tự chọn theo ngữ nghĩa

Doi(MSDoi, TenDoi, Phai)

Tân từ: Mỗi đội có 1 mã số (MSDoi) là một số nguyên phân biệt; có tên (TenDoi) và thuộc phái

nam hay nữ (Phai)

Trang 4

create table Doi

TranDau(MSTD, NgayTD, GioBD, GioKT)

Tân từ: Mỗi trận đấu có 1 mã số (MSTD) là một số nguyên phân biệt với những trận đấu khác,

diễn ra vào 1 ngày (NgayTD), bắt đầu ở một giờ (GioBD) và dự kiến kết thúc tại một giờ (GioKT)

create table TranDau

Tân từ: Lưu trữ danh sách các đội (MSDoi) tham gia thi đấu trong các trận đấu (MSTD) Biết

rằng, mỗi trận đấu là một cuộc gặp gỡ giữa 2 đội và cả 2 đội phải thuộc cùng một phái

Create table DoiThiDau

(

MSTD int not null references TranDau(MSTD),

MSDoi int not null references Doi(MSDoi),

primary key (MSTD, MSDoi)

)

go

drop table Doi

Câu 2: Viết lệnh khai báo bổ sung các ràng buộc sau:

a) Giờ bắt đầu thi đấu (GioTD) phải nhỏ hơn giờ kết thúc (GioKT) trận đấu

alter table TranDau

add check (GioBD<GioKT)

go

b) Hai trận đấu trong table TranDau diễn ra trong cùng một ngày (NgayTD) thì không bắt đầu

ở cùng một giờ thi đấu (GioTD)

alter table TranDau

add unique (NgayTD,GioBD)

go

/*

c/Tui tự thêm: Đổi phải thành dạng bit

Trang 5

-alter table doi

alter column Phai bit not null

go

*/

Câu 3: Tạo View:

a) Tạo view vwDoiChuaThiDau dùng liêt kê danh sách các đội chưa có mã số đội trong table DoiThiDau gồm: Mã số đội, tên đội, phái.

create view vwDoiChuaThiDau

as

select * from Doi

where MSDoi not in

(select MSDoi from DoiThiDau)

b) Tạo view vwSoTranDau dùng thống kê số trận đấu diễn ra trong từng ngày thi đấu với các

thông tin: Ngày thi đấu và số trận đấu trong ngày

create view vwSoTranDau

Câu 4: Tạo insert trigger cho table DoiThiDau dùng kiểm tra ràng buộc mỗi trận đấu chỉ là một cuộc

gặp gỡ giữa 2 đội và cả 2 đội phải thuộc cùng một phái

Create trigger itrg_DoiThiDau on DoiThiDau

if (select count(*) from (inserted inner join DoiThiDau on

inserted.MSTD=DoiThiDau.MSTD) inner join Doi on DoiThiDau.MSDoi=Doi.MSDoi

group by Phai)=1

begin

Trang 6

print N'Phái không phù hợp'

Rollback Tran

end

go

Câu 5: Tạo thủ tục hoặc hàm hiển thị thông tin 2 đội tham gia trong một trận đấu khi biết mã số trận

đấu Nếu mã trân đấu không có trong table DoiThiDau thì hiện thị thông báo lỗi Trong đó, mã số trận đấu (MSTD) là giá trị input

create Proc spDoiThiDau(@N int)

Câu 1: Cơ sở dữ liệu quản lý thi có chứa 3 table Viết lệnh tạo các table với các ràng buộc khóa chính,

khóa ngoại được nêu trong tân từ Kiểu dữ liệu của các Fields là tự chọn theo ngữ nghĩa

ThiSinh(MSTS, Ho, Ten, Ngaysinh, SBD, PhongThi)

Tân từ: Mỗi thí sinh có một mã số (MSTS) là một số nguyên phân biệt, có họ (Ho), tên (Ten),

ngày sinh (Ngaysinh), số báo danh (SBD), thuộc một phòng thi (PhongThi)

CREATE TABLE THISINH

Tân từ: Mỗi môn thi có một mã số (MSMon) là một số nguyên phân biệt và có tên môn thi (TenMon)

CREATE TABLE MONTHI

(

MSMON INT PRIMARY KEY,

TENMON NVARCHAR(30)

)

Trang 7

DiemMonThi(MSTS, MSMon, DiemThi)

Tân từ: Ở mỗi môn thi (MSMon) thí sinh (MSTS) có một điểm thi (DiemThi)

CREATE TABLE DIEMMONTHI

(

MSTS INT REFERENCES THISINH(MSTS),

MSMON INT REFERENCES MONTHI(MSMON),

DIEMTHI TINYINT,

CONSTRAINT pk_DIEMMONTHI PRIMARY KEY (MSTS,MSMON)

)

Câu 2: Khai báo bổ sung các ràng buộc sau:

a) Mỗi thí sinh trong table ThiSinh có một số báo danh (SBD) phân biệt

ALTER TABLE THISINH ADD UNIQUE(SBD)

b) Điểm thi (DiemThi) trong table DiemMonThi có giá trị từ 0 đến 10

ALTER TABLE DIEMMONTHI ADD CHECK(DIEMTHI BETWEEN 0 AND 10)

Câu 3: Tạo View:

a) Tạo view vwBoThi dùng liệt kê danh sách thí sinh bỏ thi (không có trong table

b) Tạo view vwKetQuaThi dùng liệt kê tổng điểm thi các môn của các thí sinh gồm: Số báo

danh, họ, tên, ngày sinh, phòng thi, tổng điểm thi Sắp thứ tự ưu tiên theo phòng thi, sau đó

là số báo danh

CREATE VIEW vwKetQuaThi

AS

SELECT SBD,HO,TEN,NGAYSINH,PHONGTHI,SUM(DIEMTHI) AS TONGDIEM

FROM THISINH INNER JOIN DIEMMONTHI ON THISINH.MSTS=DIEMMONTHI.MSTS GROUP BY SBD,HO,TEN,NGAYSINH,PHONGTHI

GO

Câu 4: Tạo update trigger cho table ThiSinh để kiểm tra ràng buộc: Khi chuyển một thí sinh sang

phòng thi khác (sửa PhongThi của thí sinh) thì số thí sinh của phòng thi chuyển đến không được quá 25 thí sinh

CREATE TRIGGER utrg_PHONGTHI ON THISINH

Trang 8

Update THISINH set SBD=STT

From THISINH inner join

(select MSTS,ROW_NUMBER() over(order by Ten, Ho) As STT

from THISINH) as tblTemp on ThiSinh MSTS=tblTemp.MSTS

UPDATE THISINH SET SBD=@I WHERE CURRENT OF curTS

FETCH NEXT FROM curTS

Câu 1: Cơ sở dữ liệu quản lý hóa đơn bán hàng có chứa 3 table Viết lệnh tạo các table với các ràng

buộc khóa chính, khóa ngoại được nêu trong tân từ Kiểu dữ liệu của các Fields là tự chọn theo ngữ nghĩa

1- MatHang(MSMH, TenMH, DonGia, SoTon)

Tân từ: Mỗi mặt hàng có một mã số (MSMH) là một số nguyên phân biệt, có tên mặt hàng

(TenMH), đơn giá (DonGia) bán mới nhất của mặt hàng đó và số lượng hàng tồn kho (SoTon)

CREATE TABLE MATHANG

Tân từ: Mỗi hóa đơn có một mã số phân biệt (MSHD), ngày lập hóa đơn (NgayLap)

CREATE TABLE HOADON

Trang 9

MSHD INT REFERENCES HOADON(MSHD),

MSMH INT REFERENCES MATHANG(MSMH),

SOLUONG FLOAT,

DONGIAHD MONEY,

sPRIMARY KEY (MSHD,MSMH)

)

Câu 2: Khai báo bổ sung các ràng buộc sau:

a) Số tồn (SoTon) trong table MatHang có giá trị mặc định (Default) bằng 0

ALTER TABLE MATHANG ADD DEFAULT 0 FOR SOTON

b) Tên mặt hàng trong table MatHang có giá trị phân biệt giữa các mặt hàng

ALTER TABLE MATHANG ADD UNIQUE(TENMH)

Câu 3: Tạo View:

a) Tạo view “vwTienHD” dùng hiển thị tiền bán trên từng hóa đơn gồm các thông tin: mã số hóa đơn, ngày lập, tiền hóa đơn bằng tổng tiền bán từng mặt hàng ghi trên mỗi hóa đơn

SELECT * FROM MATHANG WHERE MSMH NOT IN (SELECT MSMH

FROM HOADON INNER JOIN CTHD ON HOADON.MSHD=CTHD.MSHD WHERE

MONTH(NGAYLAP)=MONTH(GETDATE()))

GO

Câu 4: Xây dựng Insert trigger cho CTHD thực hiện yêu cầu: khi thêm một chi tiết hóa đơn phải cập

nhật lại số lượng tồn (SoTon) của mặt hàng tương ứng

CREATE TRIGGER itrg_GiamTon ON CTHD

Trang 10

UPDATE MATHANG SET SOTON=SOTON-SOLUONG

FROM INSERTED WHERE MATHANG.MSMH = INSERTED.MSMH

GO

Câu 5: Viết thủ tục hoặc hàm nhận 2 giá trị input kiểu số nguyên là tháng và năm Hãy liệt kê doanh

thu của từng mặt hàng gồm các thông tin: mã số mặt hàng, doanh thu mặt hàng trong :

a) Một năm nếu tháng là Null và năm khác Null

b) Một tháng nếu tháng và năm khác Null

CREATE PROC spDTThang(@THANG TINYINT, @NAM SMALLINT)

AS

IF(@THANG <> NULL) AND (@NAM <> NULL)

SELECT MSMH,SUM(SOLUONG*DONGIAHD) FROM HOADON INNER JOIN CTHD

ON HOADON.MSHD=CTHD.MSHD WHERE MONTH(NGAYLAP)=@THANG AND

YEAR(NGAYLAP)=@NAM GROUP BY MSMH

ELSE IF (@NAM <> NULL)

SELECT MSMH,SUM(SOLUONG*DONGIAHD) FROM HOADON INNER JOIN CTHD

ON HOADON.MSHD=CTHD.MSHD WHERE YEAR(NGAYLAP)=@NAM GROUP BY MSMH If(@THANG is not null)

select 1

Bài 5

Câu 1: Cơ sở dữ liệu quản lý việc mượn trả sách có chứa 3 table Viết lệnh tạo các table với các ràng

buộc khóa chính, khóa ngoại được nêu trong tân từ Kiểu dữ liệu của các Fields là tự chọn theo ngữ nghĩa

1- Sach(MaSach, TenSach, SoLuong, SoDaMuon)

Tân từ: Mỗi tựa sách có một mã số (MaSach) là một số nguyên phân biệt, có tên sách (TenSach), số lượng (SoLuong), và số sách hiện đã cho mượn (SoDaMuon)

CREATE TABLE SACH

Trang 11

CREATE TABLE DOCGIA

(

MADG INT PRIMARY KEY,

TENDG NVARCHAR(50)

)

3- PhieuMuon(MaDG, NgayMuon, MaSach, NgayTra)

Tân từ: Mỗi ngày mỗi đọc giả chỉ được mượn một quyển sách Khi đọc giả mượn sách cần ghi nhận

mã đọc giả (MaDG), ngày mượn (NgayMuon), mã sách (MaSach), ngày trả sách (NgayTra) Ngày trả sách là Null khi chưa trả sách

CREATE TABLE PHIEUMUON

Câu 2: Khai báo bổ sung các ràng buộc sau:

a) Số lượng sách (SoLuong) trong table Sach không nhỏ hơn số sách đã mượn (SoDaMuon)

ALTER TABLE SACH ADD CONSTRAINT chkSOLUONG CHECK(SOLUONG<=SODAMUON)

b) Ngày mượn sách (NgayMuon) trong table PhieuMuon có giá trị mặc định là ngày hiện hành

ALTER TABLE PHIEUMUON ADD CONSTRAINT dfNGAYMUON DEFAULT GETDATE() FOR NGAYMUON

Câu 3: Tạo View:

a) Tạo view “vwHetSach” dùng liêt kê các sách có số lượng sách (SoLuong) bằng với số lượng sách đã cho mượn (SoDaMuon) gồm các thông tin: Mã sách, tên sách

GO

Câu 4: Tạo update trigger trên table PhieuMuon thực hiện yêu cầu sau: Khi sửa ngày trả của một phiếu

mượn từ giá trị Null sang một giá trị khác Null thì phải giảm số lượng sách đã mượn của tựa sách tương ứng trên table Sach, ngược lại nếu sửa ngày trả từ một giá trị khác Null sang giá trị Null thì phải tăng số lượng sách đã mượn của tựa sách tương ứng trên table Sach

Trang 12

CREATE TRIGGER utrg_NGAYTRA ON PHIEUMUON

IF EXISTS(SELECT * FROM DELETED,INSERTED WHERE DELETED.NGAYTRA

!= NULL AND INSERTED.NGAYTRA=NULL)

UPDATE SACH SET SODAMUON=SODAMUON+1 FROM INSERTED WHERE SACH.MASACH=INSERTED.MASACH

GO

Câu 5: Tao thủ tục hoặc hàm trả về số sách còn có thể cho mượn (SoLuong – SoDaMuon) của một mã

sách nào đó Trong đó, mã sách là giá trị input Hiển thị thông báo lỗi nếu mã sách không tồn tại trong

table Sach.

CREATE PROC spDTThang(@MASACH INT)

AS

IF(NOT EXISTS(SELECT * FROM SACH WHERE MASACH=@MASACH))

PRINT N'Khong tim thay ma sach nay!'

ELSE

SELECT SOLUONG-SODAMUON AS ST FROM SACH WHERE MASACH=@MASACH

Bài 6

Câu 1: Cơ sở dữ liệu quản lý kết quả học tập của học sinh có chứa 3 table Viết lệnh tạo các table với

các ràng buộc khóa chính, khóa ngoại được nêu trong tân từ Kiểu dữ liệu của các Fields là tự chọn theo ngữ nghĩa

1- HocSinh(MSHS, Ho, Ten, TenLop, STTSoDiem)

Tân từ: Mỗi học sinh có một mã số (MSHS) là một số nguyên phân biệt, có họ (Ho), tên (Ten), học ở một lớp (TenLop) và có số thứ tự học sinh ghi trong sổ điểm lớn của lớp (STTSoDiem)

CREATE TABLE HOCSINH

2- MonHoc(MSMon, TenMon, HeSoMon)

Tân từ: Mỗi môn học có mã số là số nguyên phân biệt (MSMon) Có tên môn học (TenMon) và hệ số môn học (HeSoMon) dùng để tính điểm trung bình các môn của một học sinh

CREATE TABLE MONHOC

Trang 13

Tân từ: Ở mỗi môn học (MSMon), mỗi học sinh (MSHS) có một điểm trung bình cả năm của môn học

đó (DTBMon)

CREATE TABLE DIEMTBMCN

(

MSHS INT REFERENCES HOCSINH(MSHS),

MSMON INT REFERENCES MONHOC(MSMON),

DTMMON TINYINT,

CONSTRAINT pk_DIEMTBMCN PRIMARY KEY (MSHS,MSMON)

)

Câu 2: Khai báo bổ sung các ràng buộc sau:

a) Mỗi môn học có tên môn học (TenMon) phân biệt

ALTER TABLE MONHOC ADD CONSTRAINT uq_TENMON UNIQUE(TENMON)

b) Điểm trung bình môn (DTBMon) có giá trị từ 0 đến 10

ALTER TABLE DIEMTBMCN ADD CONSTRAINT chk_DTBMON CHECK(DTBMON

BETWEEN 0 AND 10)

Câu 3: Tạo View:

a) Tạo view vwDTBCacMon dùng liêt kê điểm trung bình các môn của các học sinh gồm: Mã

số học sinh, điểm trung bình các môn Trong đó, điểm trung bình các môn của một học sinh bằng tổng điểm trung bình môn (DTBMon) của học sinh đó chia cho tổng hệ số các môn học (HeSoMon)

GO

CREATE VIEW vwDTBCacMon

AS

SELECT MSHS,SUM(DTMMON)/SUM(HESOMON) AS DTB FROM DIEMTBMCN

INNER JOIN MONHOC ON DIEMTBMCN.MSMON=MONHOC.MSMON GROUP BY MSHSGO

b) Tạo view vwThoiHoc dùng liêt kê danh sách học sinh không tồn tại trong table DiemTBMCN

CREATE VIEW vwThoiHoc

AS

SELECT * FROM HOCSINH WHERE MSHS NOT IN (SELECT MSHS FROM

DIEMTBMCN)

GO

Câu 4: Tạo Insert trigger cho table HocSinh để thực hiện yêu cầu sau: Khi thêm một học sinh mới vào

một lớp thì cập nhật tự động số thứ tự của học sinh đó bằng số thứ tự lớn nhất hiện có trong lớp cộng thêm 1

CREATE TRIGGER itrg_STT ON HOCSINH

FOR INSERT

AS

DECLARE @STTMAX INT

SELECT @STTMAX=MAX(HOCSINH.STTSODIEM) FROM HOCSINH,INSERTED

WHERE HOCSINH.TENLOP=INSERTED.TENLOP

UPDATE HOCSINH SET STTSODIEM=@STTMAX+1 FROM INSERTED WHERE

HOCSINH.MSHS=INSERTED.MSHS

Trang 14

Câu 5: Viết thủ tục hoặc hàm để điền số thứ tự sổ điểm (STTSoDiem) tự động từ 1 trở đi theo thứ tự

tên và họ của các học sinh trong một lớp Trong đó, tên lớp là giá trị input

CREATE PROC spDienSTTSD(@TENLOP NVARCHAR(50))

Câu 1: Cơ sở dữ liệu quản lý học viên có chứa 3 table Viết lệnh tạo các table với các ràng buộc khóa

chính, khóa ngoại được nêu trong tân từ Kiểu dữ liệu của các Fields là tự chọn theo ngữ nghĩa

HocVien(MaHV, Lop, Ho, Ten, Ngaysinh, Phai)

Tân từ: Mỗi học viên có một mã số (MaHV) là số nguyên phân biệt, thuộc một lớp (Lop), có họ

(HO) và tên (Ten) sinh viên, ngày sinh (Ngaysinh), thuộc phái nữ hay nam (Phai)

CREATE TABLE HOCVIEN

Tân từ: Mỗi môn học có một mã số (MaMH) là một số nguyên phân biệt, có tên môn học (TenMon)

CREATE TABLE MONHOC

(

MAMH INT PRIMARY KEY,

TENMON NVARCHAR(50),

)

KetQua(MaHV, MaMH, LanThi, Diem)

Tân từ: Mỗi học viên (MaHV) có thể học nhiều môn (MaMH) Mỗi môn học có thể thi nhiều lần (LanThi), mỗi lần thi được đánh số thứ tự từ 1 trở đi và ghi nhận điểm thi (Diem) của các lần thi đó.CREATE TABLE KETQUA

Trang 15

MAHV INT REFERENCES HOCVIEN(MAHV),

MAMH INT REFERENCES MONHOC(MAMH),

LANTHI TINYINT,

DIEM TINYINT,

CONSTRAINT pk_KETQUA PRIMARY KEY (MAHV,MAMH,LANTHI)

)

Câu 2: Khai báo bổ sung các ràng buộc sau:

a) Lần thi (LanThi) trong table KetQua có giá trị mặc định là 1

ALTER TABLE KETQUA ADD CONSTRAINT df_LANTHI DEFAULT 1 LANTHI

b) Điểm thi (Diem) trong table KetQua được chấm theo thang điểm 10

ALTER TABLE KETQUA ADD CONSTRAINT chk_DIEM CHECK(DIEM BETWEEN 0 AND 10)

Câu 3: Tạo View:

a) Tạo view vwLanThiCuoi dùng liêt kê danh sách lần thi cuối cùng của các học viên gồm: Mã số sinh viên, mã số môn học, lần thi cuối cùng của môn học (ví dụ học viên A thi môn học C ba lần thì lần thi cuối cùng là 3)

là 3) và điểm của lần thi cuối cùng đó

CREATE VIEW vwKetQuaCuoi

AS

SELECT MAHV,MAMH,MAX(LANTHI) AS LTC,DIEM FROM KETQUA GROUP BY MAHV,MAMH,MAX(LANTHI),DIEM

GO

Câu 4: Tạo trigger Insert cho table KetQua dùng điền tự động số thứ tự lần thi khi thêm điểm thi một

môn học của một sinh viên Ví dụ học viên A đã thi môn học M hai lần thì lần thi mới thêm vào phải là 3

CREATE TRIGGER itrg_LANTHI ON KETQUA

INSTEAD OF INSERT

AS

GO

Câu 5: Viết thủ tục hoặc hàm liệt kê kết quả thi các môn của một học viên khi biết mã số của học viên

(MaHV) gồm các thông tin: mã số môn học, lần thi, điểm thi Trong đó, mã số học viên là giá trị input

CREATE PROC spKetQuaThi(@MAHV INT)

AS

SELECT MAMH,LANTHI,DIEM FROM KETQUA WHERE MAHV=@MAHV

Ngày đăng: 12/06/2014, 19:27

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w