Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.62 MB, 84 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
1
<b>GIỚI TH U CHUNG </b>Ệ <b>... 4 </b>
CHƯƠNG 1. XÂY DỰNG CƠ SỞ DỮ LIỆU ... 6
1. CƠ SỞ DỮ LIỆU QUẢN LÝ SINH VIÊN ... 6
DẠNG 1: CÂU L NH TRUY VỆ ẤN CÓ ĐIỀU KIỆN ... 16
Bài s 1: Câu l nh SQL không k t n i ố ệ ế ố ... 16
Bài s 2: Câu l nh SQL có k t n i ố ệ ế ố ... 17
BÀI T P T Ậ Ự GIẢI ... 18
DẠNG 2: CÂU L NH TRUY V N CÓ PHÂN NHÓM Ệ Ấ ... 19
Bài s 1: Câu l nh SQL có t ố ệ ừ khố GROUP BY không điều kiện. ... 19
Bài s 2: Câu l nh SQL có t khố GROUP BY vố ệ ừ ới điều ki n lệ ọc... 20
Bài s 3: Câu l nh SQL có t ố ệ ừ khoá GROUP BY với điều ki n nhóm. ệ ... 21
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">2
Bài s 4: Câu l nh SQL có t khoá TOP. ố ệ ừ ... 22
BÀI T P T Ậ Ự GIẢI: ... 23
DẠNG 3: CÂU L NH TRUY V N VỆ Ấ ỚI CẤU TRÚC LỒNG NHAU ... 24
Bài s 1: Cố ấu trúc l ng nhau ph ồ ủ định (KHÔNG, CHƯA). ... 24
Bài s 2: Cố ấu trúc l ng nhau không k t n ồ ế ối. ... 25
BÀI T P T Ậ Ự GIẢI... 26
DẠNG 4: CÂU L NH TRUY V N VỆ Ấ ỚI LƯỢNG TỪ ALL, ANY, EXISTS ... 26
Bài s ố 1: Lượng từ ALL ... 26
Bài s ố 2: Lượng từ ANY ... 27
Bài s ố 3: Lượng từ EXISTS ... 27
DẠNG 5: CÂU L NH TRUY V N VỆ Ấ ỚI CẤU TRÚC TẬP HỢP ... 28
DẠNG 6: CÂU L NH B SUNG, C P NH T, XOÁ DỆ Ổ Ậ Ậ Ữ DIỆU ... 28
Bài s 1: Lố ệnh INSERT bổ sung d u ữ liệ ... 28
Bài s 2: Lố ệnh DELETE xoá d u ữ liệ ... 29
Bài s 3: Lố ệnh UPDATE cập nh t d u ậ ữ liệ ... 30
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">3
DẠNG 1: HÀM ... 40
Bài s 1: Vi t hàm x p lo i dố ế ế ạ ựa vào điểm ... 40
Bài s 2: Vi t hàm tách tên t chu i Hố ế ừ ỗ ọ tên ... 40
Bài s 3: Viố ết hàm đọc điểm nguyên ra thành ch ữ tương ứng ... 41
Bài s 4: Viố ết hàm đọc điểm 1 chữ số thập phân ra thành ch ữ tương ứng 43 Bài s 4: Các d ng hàm ố ạ liên quan đến tính tốn trong CSDL ... 43
BÀI T P T Ậ Ự GIẢI: ... 45
DẠNG 2: THỦTỤ ... 46 C DẠNG BÀI 1: T o th tuc c p nh t, b sung , xoá d ạ ủ ậ ậ ổ ữ liệu... 46
DẠNG BÀI 2: T o th tạ ủ ục hi n th d u vể ị ữ liệ ới các điều ki n ch ệ ỉ định. .... 52
BÀI T P T Ậ Ự GIẢI... 59
DẠNG 3: CON TR Ỏ ... 59
Bài s 1: Tố ạo th tủ ục đánh Số báo danh theo t ng l p ch ừ ớ ỉ định. ... 59
Bài s 2: Tố ạo th tủ ục đánh số báo danh t ự động ... 60
Bài s 3: Tố ạo th tủ ục cập nh t mã th sinh viên v i công thậ ẻ ớ ức như sau: ... 61
Bài s 4: Vi t th t c phân l p theo yêu c u khác nhau ố ế ủ ụ ớ ầ ... 62
CHƯƠNG 4: MỘT SỐ ĐỐI TƯỢNG TIỆN ÍCH KHÁC ... 65
Bài s 1. Tố ạo Form k t n i ế ố ... 74
Bài s 2: Tố ạo Form hi n th danh sách sinh viên ể ị ... 76
Bài s 3: Tố ạo Form L c danh sách sinh viên theo l p ọ ớ ... 78
Bài s 4: Tố ạo Form nh p d u cho b ng SINHVIEN ậ ữ liệ ả ... 80
<b>Tài li u tham kh o </b>ệ <b>ả ... 83</b>
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">4
<b>SQL, viết tắt của Structure Query Language là một công cụ quản lý dữ , </b>
liệu, đơn giản nhưng rất hiệu quả, được sử dụng phổ biến ở nhiều lĩnh vực. Mặc khác, h<b>ầu hết tất cả các ngôn ngữ lập trình bậc cao đều có hỗ trợ SQL. </b> Các công cụ lập trình đều cho phép người sử dụng kết nối và truy cập tới CSDL bằng cách nhúng các câu l nh SQL vào trong các ngôn ng l p trình ệ ữ ậ hoặc viết lời gọi đến các chương trình con trên hệ quản trị CSDL.
<b>SQL ngày càng đóng vai trị quan trọng khi mà hiện nay Internet ngày </b>
càng phát triển. SQL được sử dụng như là công cụ để giao tiếp giữa các trình ứng d ng phía máy khách v i máy chụ ớ ủ cơ sở ữ liệu d <b>, SQL sẽ thực hiện việc </b>
truy cập thông tin và kết quả hiển thị trên ứng dụng khi người dùng yêu cầu. Trong các hệ quản trị cơ sở ữ liệ d u, SQL xuất hi n v i vai trò ngôn ng , ệ ớ ữ là công c giao ti p giụ ế ữa ngườ ử ụi s d ng và hệ quản trị cơ sở ữ liệ d u với nhiều vai trò khác nhau như: truy vấn dữ liệu, lập trình cơ sở dữ liệu, qu n trị ả cơ sở dữ liệu, truy c p d u trên Internậ ữ liệ et, …
Để phục vụ nhu cầu học tập và nghiên c u của sinh viên nói chung và ứ sinh viên ngành Cao đẳng Bình Định nói riêng, một tài liệu tham khảo mang tính th c hành là c n thi t. Phân lo i và gi i chi ti t các d ng bài t p SQL s ự ầ ế ạ ả ế ạ ậ ẽ giúp cho sinh viên nhận biết chính xác các d ng câu h i, s d ng câu l nh SQL ạ ỏ ử ụ ệ hiệu quả nhất. Trong l p trình, tác giậ ả sử ụng các thuật toán đơn giản, dễ ểu d hi để ả gi i quyết các bài tốn qu n lý, ả đó là mục tiêu trong tài li u này. ệ
Trong tài li u này, tác gi s d ng CSDL Qu n lý sinh viên làm bài mệ ả ử ụ ả ẫu từ đó sinh viên tự làm các bài t p trên CSDL bán hàng và các CSDL khác. Tài ậ liệu cung c p nh ng kiến thấ ữ ức căn bản nhất v 2 nội dung chính là ngơn ng ề ữ thao tác dữ liệu và l p trình vậ ới cơ sở ữ liệ d u, từ đó sinh viên có thể xây d ng ự một ứng dụng qu n lý trên windows t ả ừ đơn giản đến phức tạp.
Trong mỗi chương tài liệu chia làm 2 ph n chính là: tóm t t lý thuy t và ầ ắ ế phân lo i bài t p. C ạ ậ ụ thể chia thành 4 chương như sau:
<b>Chương 1: Xây d</b>ựng Cơ sở ữ liệ d u. Trong chương này tác giả giới thiệu 2 CSDL mẫu, CSDL qu n lý sinh viên và CSDL quản lý bán hàng, là 2 cơ sở dữ ả liệu mang tính cơ bản nhất, nó tập hợp tất cả các yêu cầu tổng quan để từ đó
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">5
sinh viên có th làm mể ột cách tương tự đối với các CSDL khác.
<b>Chương 2: Câu l nh truy v n SQL. T</b>ệ ấ rong chương này tác giả chia câu lệnh thao tác dữ liệu thành 6 dạng cơ bản, m i d ng có t 3-4 bài t p minh hoỗ ạ ừ ậ ạ, giúp sinh viên nhanh chóng nh n dậ ạng đúng các yêu cầu của mỗi câu lệnh SQL.
<b>Chương 3: L p trình v i SQL. T</b>ậ ớ rong chương này tác giả chia cấu trúc lập trình thành 3 d ng: Hàm, Th t c và Con tr . M i d ng bao g m nhi u d ng ạ ủ ụ ỏ ỗ ạ ồ ề ạ bài khác nhau, m i dỗ ạng bài là cơ bản được tác giả chọn l c và r t c n thiọ ấ ầ ết trong l p trình ậ ứng d ng sau này. ụ
<b>Chương 4: M t s</b>ộ ố đối tượng ti n ích khác, nh m nâng cao kệ ằ ỹ năng lập trình, người lập trình phải hạn chế tối đa nhất các lỗi thường xẩy ra, lường trước lỗi và b y lẫ ỗi là k ỹ năng cần thi t cế ủa người lập trình chuyên nghiệp.
<b>Phần đọc thêm: Ứng d ng SQL trong l p trìn</b>ụ ậ h C# căn bản. Trong chương này tác giả minh hoạ một số ứng dụng cơ bản, trong đó thể hiện một kết nối từ ứng dụng t i thớ ủ t c trong h ụ ệ quản tr CSDL SQL Server. Giúp sinh viên ị thấy được mối liên hệ giữa lập trình CSDL với lập trình trên cơng cụ C#, được xem là kỹ thuật mang tính b o m t cao. ả ậ
Tài li u tham khệ ảo “Phân loại và gi i chi ti t các d ng bài tả ế ạ ập SQL” mang tính thực hành cao, là tài li u gệ ối đầu cho t t cấ ả sinh viên đang ngồi gh nhà ế trường, tài liệu giúp sinh viên học tốt các học phần liên quan như: Hệ qu n tr ả ị CSDL Access, Hệ quản tr CSDL SQL, L p trình Windows, L p trình Website, ị ậ ậ …Tài liệu sẽ hoàn thiện hơn khi nhận nhiều ý kiến đóng góp quý báu của các bạn đọc. Tác gi r t mong nh n nhiả ấ ậ ều góp ý để tài liệu h u ích ữ hơn.
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">6
<b>1. CƠ SỞ DỮ LI U QU N LÝ SINH VIÊN </b>Ệ Ả
<b>1.1 BÀI TOÁN Dữ u vào: liệ</b>
- Danh m c các Ngành h c c a mụ ọ ủ ỗi Khoa.
- Danh sách hồ sơ sinh viên g m nhồ ững thông tin đầu vào như Mã sinh viên, H tên, Gi i tính, Ngày sinh, ọ ớ Địa ch Khoá h c, Hỉ, ọ ệ đào tạo,
- Theo dõi chương trình giảng dạy các học ph n theo t ng ngành. ầ ừ - Theo dõi điểm học phần của mỗi sinh viên của từng h c k , cọ ỳ ả năm và
cả khố. Đưa ra danh sách sinh viên tích luỹ, ngừng tiến độ học t p. ậ - Đưa ra bảng điểm tổng hợp có xếp loại học tập theo từng lớp ở mỗi
học kỳ, cả năm và cả khoá học.
- Xử lý dữ liệu: t o các th tạ ủ ục (Procedure) hiển th dị ữ liệu, tính tốn, bổ sung, c p nhậ ật, xoá, …
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">8
<b>Bảng DMHOCPHAN </b>
<b>Bảng DIEMHP </b>
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">9
<b>2. CƠ SỞ DỮ LI U QU N LÝ BÁN HÀNG </b>Ệ Ả
<b>2.1. BÀI TOÁN Dữ u vào liệ</b>
- Danh sách các m hàng bán l t i các c a hàng (ch ng hặt ẻ ạ ử ẳ ạn như Siêu thị) gồm các thông tin Mã hàng, Tên hàng và đơn giá bán hiện tại. - Danh sách các khách hàng Thành viên và VIP g m các thông tin H ồ ọ tên, Địa chỉ, Số điện tho ại.
- Danh sách các mặt hàng của từng hoá đơn.
<b>Dữ u ra liệ</b>
- Hoá đơn bán hàng cho mỗi khách hàng và theo dõi quá trình mua hàng của mỗi khách hàng để có những ưu đãi thích hợp.
- Theo dõi t ng mừ ặt hàng bán theo tháng, quý và năm. Những m t hàng ặ mức tiêu th cao, tiêu thu thụ ấp để điều chỉnh giá phù hợp.
- Tổng h p doanh thu c a t ng mợ ủ ừ ặt hàng theo từng tháng, quý và năm. - Tổng hợp tiền mua c a tủ ừng khách hàng trong mỗi năm, tích điểm và in chi t khế ấu.
<b>2.2. CƠ SỞ DỮ LIỆU QUAN HỆ </b>
</div><span class="text_page_counter">Trang 52</span><div class="page_container" data-page="52">Tạo th t c: Hiủ ụ ển thị danh sách gồm MaSV, HoTen, , MaLop, DiemHP, MaHP c a nh ng sinh viên có Diemủ ữ HPnhỏ hơn số chỉ định, n u khơng có thì ế hiển thị thơng báo khơng có sinh viên nào.
Lời gi i ả
CREATE PROCEDURE HIENTHI_Diem @DiemHP varchar(5)
AS
IF NOT EXISTS (SELECT * FROM DIEMHP WHERE DiemHP < @DiemHP)
PRINT N'khơng có sinh viên nào'
</div><span class="text_page_counter">Trang 53</span><div class="page_container" data-page="53">53 ELSE
SELECT SINHVIEN.MaSV, HoTen, MaLop, MaHP, DiemHP FROM DIEMHP
INNER JOIN INHVIEN ON DIEMHP.MaSV = SINHVIEN.MaSV S WHERE DIEMHP.DiemHP < @DiemHP
GO
• Thực hi n g i th t c ệ ọ ử ụ EXCE HIENTHI_Diem 5
<b>Bài toán 2: </b>
Tạo th t c: Hiủ ụ ển thị Hoten sinh viên CHƯA học học ph n có mã ch ầ ỉ định, Kiểm tra Mã học ph n chỉ nh có trong danh mục khơng, Nếu khơng có ầ đị thì hi n th thơng báo khơng có h c ph n này. ể ị ọ ầ
SELECT Ho en FROM T SINHVIEN
WHERE MaHp=@MaHP) GO
Thực hiện thủ tục
EXCE HIENTHI_MaHP '001'
</div><span class="text_page_counter">Trang 54</span><div class="page_container" data-page="54">54
<b>Bài toán 3: </b>
Tạo th t c: Hiủ ụ ển thị danh sách g m: ồ MaSV, HoTen, MaLop NgaySinh , (dd/mm/yyyy), GioiTinh (Nam, Nữ),Tuổi c a nh ng sinh viên có tu i trong ủ ữ ổ khoảng ch ỉđịnh. N u khơng có thì hi n th thơng báo khơng có sinh viên nào ế ể ị Lời gi ải:
CREATE PROCEDURE HIENTHI_Tuoi @tuoi1 tinyint, @tuoi2 tinyint
AS
IF NOT EXISTS (SELECT * FROM SINHVIEN WHERE YEAR(GETDATE())-YEAR(Ngaysinh) BETWEEN @tuoi1 AND
Tạo th t c:Cho bi t MaKhoa, Tên Khoa, t ng s sinh viên c a Khoa ch ủ ụ ế ổ ố ủ ỉ định. Kiểm tra điều kiện Mã khoa có trong b ng danh mả ục khơng.
Lời gi ải:
CREATE PROCEDURE HIENTHI_KHOA
</div><span class="text_page_counter">Trang 55</span><div class="page_container" data-page="55">INNER JOIN DMLOP ON DMLOP.MaLop=SINHVIEN.MaLop INNER JOIN DMNGANH ON DMNGANH.MaNganh=DMLOP.MaNganh INNER JOIN DMKHOA ON DMKHOA.MaKhoa=DMNGANH.MaKhoa WHERE DMKHOA.MaKhoa=@MaKhoa
GROUP BY DMKHOA.MaKhoa,TenKhoa GO
<b>Bài toán 5: </b>
Tạo th tủ ục: Hi n thể ị MaLop,TenLop, Tổng s SV m i lố ỗ ớp của khoa có mã chỉ định, Kiểm tra điều ki n MaKhoa có trong b ng Danh mệ ả ục khơng, Nếu khơng có thì hi n th thơng báo Khơng có l p này. ể ị ớ
</div><span class="text_page_counter">Trang 56</span><div class="page_container" data-page="56">56 END
SELECT DMLOP.MaLop,TenLop, COUNT(MaSV) AS SoLuong FROM SINHVIEN
INNER JOIN DMLOP ON SINHVIEN.MaLop=DMLOP.MaLop
INNER JOIN DMNGANH ON DMNGANH.MaNganh=DMLOP.MaNganh
INNER JOIN DMHOCPHAN ON DIEMHP.MaHP=DMHOCPHAN.MaHP INNER JOIN SINHVIEN ON DIEMHP.MaSV=SINHVIEN.MaSV
</div><span class="text_page_counter">Trang 57</span><div class="page_container" data-page="57">57
<b>Bài toán 7. </b>
Tạo th t c: Hiủ ụ ển thị danh sách g m: ồ MaSV, HoTen, MaLop, MaKhoa, NgaySinh (dd/mm/yyyy),GioiTinh (Nam, N ) c a nh ng sinh viên Khoa có ữ ủ ữ ở mã ch nh, N u khơng có thì hi n th thơng báo Khơng có sinh viên nào. ỉ đị ế ể ị Lời gi i ả
CREATE PROCEDURE HIENTHI_KHOA3 @MaKhoa varchar(10)
AS
IF NOT EXISTS(SELECT * FROM DMNGANH WHERE MaKhoa=@MaKhoa) PRINT N'Khoa này khơng có trong danh m c'ụ
ELSE
SELECT MaSV, HoTen, DMLOP.MaLop,
CASE ioiTinh WHEN 1 THEN N'Nam' ELSE N'N ' END G ữ AS GioiTinh,
CONVERT (char(10),ngaysinh,103) AS NgaySinh FROM SINHVIEN
INNER JOIN DMLOP ON SINHVIEN.MaLop=DMLOP.MaLop
INNER JOIN DMNGANH ON DMNGANH.MaNganh=DMLOP.MaNganh
Tạo th tủ ục: Cho bi t Hoten sinh viên KHƠNG ế có điểm HP <5 l p có ở ớ mã chỉ định, Ki m tra Mã l p chể ớ ỉ định có trong danh m c khơng, N u khơng thì ụ ế hiển thị thông báo.
Lời gi i ả
CREATE PROCEDURE KIEMTRA_LOP
</div><span class="text_page_counter">Trang 58</span><div class="page_container" data-page="58">58 @MaLop varchar(6)
AS
IF NOT EXISTS (SELECT * FROM DMLOP WHERE MaLop=@MaLop) PRINT N'L p này khơng có trong danh m c'ớ ụ
Tạo th t c: Hiủ ụ ển thị danh sách g m: ồ MaSV, HoTen, MaLop, NgaySinh (dd/mm/yyyy), GioiTinh(Nam, N ), c a nh ng sinh viên hữ ủ ữ ọc lớp có mã ch ỉ định. Kiểm tra MaLop chỉ nh có t n t i trong bảng khơng, n u khơng có thì đị ồ ạ ế hiển thị thơng báo Khơng có lớp đó.
Lời gi i ả
CREATE PROCEDURE GETALL SINHVIEN_ @MaLop varchar(5)
AS
IF NOT EXISTS (SELECT * FROM SINHVIEN WHERE MaLop=@ MaLop)
PRINT N'Lớp đó khơng có trong danh mụ c' ELSE
SELECT MaSV, HoTen, MaLop,
CASE ioiTinh WHEN 1 THEN N'Nam' ELSE N'N END G ữ' , CONVERT(char(10), NgaySinh,103)
FROM SINHVIEN
</div><span class="text_page_counter">Trang 59</span><div class="page_container" data-page="59">1. Hiển th ịdanh các khách hàng đã mua hàng trong ngày chỉ định (ngày là tham s truyố ền vào)
2. Hiển th danh sách 5 khách hàng có t ng tr ị ổ ị giá các đơn hàng lớn nhất. 3. Hiển th danh sách 10 m t hàng có s ị ặ ố lượng bán l n nh ớ ất.
4. Cập nh t c t Khuyậ ộ ến mãi như sau: Khuyến mãi 5% thành tiền ếu n SoLuong >100, 10% thành ti n n u SoLuongL >500. ề ế
5. Tính tr giá cho mị ỗi hoá đơn.
6. Cập nhật cho cột Lo i khách hàng: là VIP nạ ếu t ng thành tiổ ền trong năm lớn hơn hoặc bằng 20 triệu.
<b>DẠNG 3: CON TR </b>Ỏ
<b>Bài s 1: T o th t</b>ố ạ <b>ủ ục đánh Số báo danh theo từng lớp chỉ định.</b>
Trước hết thêm c t SBD vào b ng SINHVIEN ộ ả ALTER TABLE SINHVIEN
DECLARE cur_SBD CURSOR FOR SELECT MaSV
</div><span class="text_page_counter">Trang 60</span><div class="page_container" data-page="60">60 FROM SINHVIEN WHERE MaLop=@MaLop ORDER BY MaLop, dbo.TACHTEN(HoTen) OPEN cur_SBD
DECLARE @MaSV varchar(5),@i int
FETCH NEXT FROM cur_SBD INTO @MaSV
<b>Bài s 2: T o th t</b>ố ạ ủ ục đánh số<b> báo danh t ự động</b>
khi sang l p mớ ới thì SBD đánh lại t ừ đầu.
Chú ý: L p g m nh ng sinh viên cùng ngành h c và khoá h c (khác v i cớ ồ ữ ọ ọ ớ ột PhanLop).
Lời gi i ả
CREATE PROCEDURE DanhSBD_Lop AS
DECLARE cur_SBD CURSOR FOR SELECT MaSV, MaLop
FROM SINHVIEN ORDER BY MaLop,dbo.TACHTEN(HoTen) OPEN cur_SBD
DECLARE @MaSV varchar(5),@MaLop varchar(5),@i int
</div><span class="text_page_counter">Trang 61</span><div class="page_container" data-page="61">61 DECLARE @Lop varchar(5)
FETCH NEXT FROM cur_SBD INTO @MaSV,@MaLop
CREATE PROCEDURE DanhTheSV
@MaNganh varchar(10), @NamNhapHoc char(4) AS
DECLARE cur_MaSV CURSOR
FOR SELECT MaSV, MaNganh, NamNhaphoc FROM SINHVIEN
INNER JOIN DMLOP ON SINHVIEN.MaLop=DMLOP.MaLop
</div><span class="text_page_counter">Trang 62</span><div class="page_container" data-page="62">62
WHERE MaNganh=@MaNganh AND NamNhapHoc=@NamNhapHoc
DECLARE @MaSV varchar(5), nt FETCH NEXT FROM cur_MaSV INTO FETCH NEXT FROM cur_MaSV
INTO @MaSV, @MaNganh, @NamNhapHoc
<b>Bài s 4: </b>ố <b>Viết th tủ ục phân lớp theo yêu c u khác nhau </b>ầ
1. Phân thành 2 l p A,B v i t l nam, nớ ớ ỉ ệ ữ như nhau, Mã lớp là tham s ố truyền vào ch ỉđịnh.
2. Phân l p v i sớ ớ ố lượng l p chớ ỉ định và t l nam, nỉ ệ ữ như nhau. Mã l p và ớ số lượng là 2 tham s truy n vào ch nh. ố ề ỉ đị
Ghi chú: t o thêm c t PhanLop varchar(5) ạ ộ ALTER TABLE SINHVIEN
ADD PhanLop varchar(5)
ORDER BY dbo.TACHTEN(HoTen) 65
</div><span class="text_page_counter">Trang 63</span><div class="page_container" data-page="63">DECLARE cur_phanlop CURSOR
FOR SELECT MaSV FROM SINHVIEN WHERE MaLop=@MaLop ORDER BY MaLop,GioiTinh, dbo.TACHTEN(HoTen)
UPDATE SINHVIEN SET
PhanLop=LTRIM(@MaLop)+'A' WHERE CURRENT OF cur_phanlop
ELSE
UPDATE SINHVIEN SET
PhanLop=LTRIM(@MaLop)+'B' WHERE CURRENT OF
CREATE PROCEDURE PhanLop3 @MaLop varchar(6),@SoLop int AS
</div><span class="text_page_counter">Trang 64</span><div class="page_container" data-page="64">64 DECLARE cur_phanlop CURSOR FOR
SELECT MaSV FROM SINHVIEN WHERE MaLop=@MaLop ORDER BY MaLop, GioiTinh, dbo.TACHTEN(HoTen)
</div><span class="text_page_counter">Trang 65</span><div class="page_container" data-page="65">65
<b>1. TRANSACTION </b>
Transaction (Giao tác) là m t t p h p có th t các thao tác và chúng ch ộ ậ ợ ứ ự ỉ có th cùng nhau thành công ho c cùng nhau th t b i. ể ặ ấ ạ
</div><span class="text_page_counter">Trang 66</span><div class="page_container" data-page="66">66
<b>2. TRIGGER </b>
Trigger là một lo i stored Procạ edure đặc biệt có đặc điểm sau:
<b>- Tự động thực hiện khi có lệnh INSERT, DELETE hoặc UPDATE</b>
trên d ữ liệu
- Thường dùng để kiểm tra các <b>ràng buộc toàn vẹn ủ</b> c a CSDL hoặc
<b>các qui tắc nghi p v</b>ệ ụ.
- Một TRIGGER được định nghĩa trên một bảng, nhưng các xử lý trong TRIGGER có th s d ng nhi u bể ử ụ ề <b>ảng khác. </b>
<b>Xoá TRIGGER DROP TRIGGER <Tên TRIGGER> : B. PHÂN LOẠI BÀI T P </b>Ậ
<b>DẠNG 1: T o b</b>ạ <b>ẫy lỗi INSERT </b>
<b>Bài s 1</b>ố : T o m Trigger ạ ột để kiểm tra tính h p l c a dợ ệ ủ ữ liệu được nh p vào ậ một bảng SINHVIEN là d ữ liệu MaSV là không r ng. ỗ
</div>