@vanhop , @btm nói đúng đó e, mấy bài này là những bài cơ bản nhất, sau này e học sẽ gặp những bài phức tạp hơn nhiều, e cứ chịu khó làm hết mấy bài cơ bản, rồi từ từ sẽ làm dc những bài phức tạp hơn. Ngày trước a cũng chỉ được học sâu hơn chút thôi, giờ ra không đụng đến nến cũng không khá hơn ngày trước là bao. Giúp dc đến đâu a sẽ giúp. Hơn nữa, trong các lệnh if, else
e nên để cặp begin,end
giống như if, else
trong C/C++ nên để trong cặp {}
Mỗi buổi học sẽ diễn ra từ 1 - 2h nhằm đảm bảo lượng kiến thức bạn tiếp thu được tốt nhất. Có thể nắm bắt, hiểu sâu và tự giải quyết các vấn đề tương tự.
Trong đó mỗi buổi học tương ứng 100%:
- 30% thời gian đầu tiên: Giải quyết bài tập của bài trước, giải quyết câu hỏi của các bạn về bài tập đó. [nếu có]
- 10% thời gian tiếp theo: Tổng quan kiến thức đã học ở bài trước, giới thiệu kiến thức sẽ áp dụng tại bài này.
- 30% thời gian tiếp theo: Đi vào nội dung bài mới.
- 20% thời gian tiếp theo: Trao đổi thảo luận các câu hỏi của các bạn về bài học mới.
- 10% thời gian cuối cùng: Bài tập + định hướng cách giải.
Hình thức học
- Các bạn truy cập Khóa học thực chiến SQL trên web Howkteam.com để xem nội dung buổi học 15 phút trước livestream. [yêu cầu có tài khoản user]
- Trong thời gian công chiếu, bạn có thể đặt câu hỏi LIÊN QUAN ĐẾN KIẾN THỨC VÀ NỘI DUNG KHÓA HỌC trong phần bình luận của bài viết hoặc phần livestream. [Vào các thời gian thảo luận & giải đáp người hướng dẫn sẽ giải đáp và cùng thảo luận với các bạn về các câu hỏi đó]
- Ngoài ra, bạn có thể tham gia bình luận để giải đáp cho các thành viên đó, nếu phần kiến thức được hỏi nằm trong hiểu biết của bạn. Kteam luôn khuyến khích sự hỗ trợ từ cộng đồng đến với mọi người.
- Khóa học thực chiến SQL sẽ chia thành nhiều phần, với mỗi phần tương ứng một bài tập lớn diễn ra trong vòng 5 - 7 ngày liên tiếp nhau vào các khung giờ cố định.
Khảo sát khóa học
Như đã thông báo trong khảo sát trước, nhằm đánh giá & xác định chất lượng kiến thức truyền tải, Kteam sẽ tiến hành khảo sát với các thành viên trong khóa học này. Hy vọng nhận được sự hỗ trợ từ các bạn tham gia khóa học.
- Cụ thể, sau mỗi buổi học bạn sẽ nhận được file khảo sát để xem xét mức độ hiểu bài & giải đáp những thắc mắc mà bạn còn chưa kịp hỏi hoặc chưa được trả lời trong quá trình công chiếu vì thời gian giới hạn.
- Các thành viên hoàn thành file khảo sát sau buổi học, sẽ nhận mail thông báo về livestream tiếp theo qua email cũng như nhận được sự giám sát tiến độ và đảm bảo kết quả sau khóa học.
Kết
Trong bài này,chúng ta đã tìm hiểu về Ràng buộc trong dự án quản lý sinh viên. Buổi học đã được diễn ra vào lúc 20h ngày 17/07/2019 tại phần trình chiếu của bài Ràng buộc trong dự án quản lý sinh viên - phần 2 trên Howkteam.com
Lưu ý: Sau bài học, Kteam sẽ gửi mail Khảo sát & giải đáp câu hỏi đến mail đã đăng ký của các bạn. Hoàn thành mail trước buổi học tiếp theo để xác nhận đã tham gia buổi học và đăng ký nhận đường dẫn kèm học liệu cho buổi học tiếp theo.
Ở bài sau, chúng ta sẽ TỔNG KẾT KHÓA & GIẢI ĐÁP THẮC MẮC
Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của bạn để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”
Thảo luận
Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần BÌNH LUẬN bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.
Sử dụng store procduced và trigger để xây dựng các chương trình quản lý
I]Tạo bảng
thành viên:
+lại văn dũng Nhóm trưởng:xây dựng ,phân công nhiệm vụ[
dung.1300984@thanhdo.edu.vn]
+Lê xuân linh : viết chương trình kết nối csdl[
thoicungduoc0@gmail.com]
+lê hữu đoàn:xây dựng thêm truy vấn liên quan[
doan.1300738@thanhdo.edu.vn]
+hoàng văn sơn :hoàn thiện chương trình[
son.1300915@thanhdo.edu.vn]
+lương kim lương:kiểm tra,test chương trình[
luongevil@gmail.com+trần xuân minh:đóng góp ý tưởng liên quan]
+]Tạo bảng đăng nhập
USE [QLsinhvien]
GO
/****** Object: Table [dbo].[DangNhap] Script Date: 9/8/2015 10:00:45 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[DangNhap][
[UserName] [nchar][50] NOT NULL,
[Pass] [nchar][50] NOT NULL,
CONSTRAINT [PK_DangNhap] PRIMARY KEY CLUSTERED
[
[UserName] ASC
]WITH [PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON] ON [PRIMARY]
] ON [PRIMARY]
GO
+]Tạo bảng điểm
USE [QLsinhvien]
GO
/****** Object: Table [dbo].[Diem] Script Date: 9/8/2015 10:01:30 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Diem][
[MaSV] [nchar][50] NOT NULL,
[MaM] [nchar][50] NOT NULL,
[Diem] [float] NULL
] ON [PRIMARY]
GO
+]Tạo bảng lưu sinh viên
USE [QLsinhvien]
GO
/****** Object: Table [dbo].[luusv] Script Date: 9/8/2015 10:02:01 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[luusv][
[MSV] [nchar][50] NULL,
[TenSV] [nchar][50] NULL,
[NgaySinh] [datetime] NULL,
[QueQuan] [nchar][50] NULL,
[NgayTD] [datetime] NULL
] ON [PRIMARY]
GO
+]Tạo bảng môn học
USE [QLsinhvien]
GO
/****** Object: Table [dbo].[MonHoc] Script Date: 9/8/2015 10:02:29 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[MonHoc][
[MaM] [nchar][50] NOT NULL,
[TenM] [nchar][50] NULL,
[SoTC] [int] NULL,
[HocKi] [int] NULL,
CONSTRAINT [PK_MonHoc] PRIMARY KEY CLUSTERED
[
[MaM] ASC
]WITH [PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON] ON [PRIMARY]
] ON [PRIMARY]
GO
+]Tạo bảng sinh viên
USE [QLsinhvien]
GO
/****** Object: Table [dbo].[sv] Script Date: 9/8/2015 10:02:53 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[sv][
[MaSV] [nchar][50] NOT NULL,
[TenSV] [nchar][50] NULL,
[GioiTinh] [nchar][50] NULL,
[NgaySinh] [datetime] NULL,
[QueQuan] [nchar][50] NULL,
[Hinhanh] [varbinary][max] NULL,
CONSTRAINT [PK_sv] PRIMARY KEY CLUSTERED
[
[MaSV] ASC
]WITH [PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON] ON [PRIMARY]
] ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
II] StoredProcedure
+]Load dữ liệu masv,tensv lên combox sv
USE [QLsinhvien]
GO
/****** Object: StoredProcedure [dbo].[cboSinh] Script Date: 9/8/2015 9:39:33 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[cboSinh]
as
select sv.MaSV,sv.TenSV
from sv
+]Load dữ liệu MaM,TenM lên combox MonHoc
USE [QLsinhvien]
GO
/****** Object: StoredProcedure [dbo].[cboTenMH] Script Date: 9/8/2015 9:42:04 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[cboTenMH]
as
select MonHoc.MaM, MonHoc.TenM
from MonHoc
+]chọn điểm SV
USE [QLsinhvien]
GO
/****** Object: StoredProcedure [dbo].[ChonD] Script Date: 9/8/2015 9:43:41 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[ChonD]
as
SELECT [MaSV]
,[MaM]
,[Diem]
FROM [dbo].[Diem]
+]chọn MaMH:
USE [QLsinhvien]
GO
/****** Object: StoredProcedure [dbo].[ChonMH] Script Date: 9/8/2015 9:44:20 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[ChonMH]
as
SELECT [MaM]
,[TenM]
,[SoTC]
,[HocKi]
FROM [dbo].[MonHoc]
+]chọn SV
USE [QLsinhvien]
GO
/****** Object: StoredProcedure [dbo].[Chonsv] Script Date: 9/8/2015 9:44:55 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[Chonsv]
as
SELECT [MaSV]
,[TenSV]
,[GioiTinh]
,[NgaySinh]
,[QueQuan]
FROM [dbo].[sv]
+]chọn SV có hình SV
USE [QLsinhvien]
GO
/****** Object: StoredProcedure [dbo].[ChonSV1] Script Date: 9/8/2015 9:46:26 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[ChonSV1]
as
SELECT [MaSV]
,[TenSV]
,[GioiTinh]
,[NgaySinh]
,[QueQuan]
,[Hinhanh]
FROM [dbo].[sv]
+]chọn hình ảnh cho SV
USE [QLsinhvien]
GO
/****** Object: StoredProcedure [dbo].[Hinhsv] Script Date: 9/8/2015 9:46:50 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[Hinhsv]
as
SELECT
[Hinhanh]
FROM [dbo].[sv]
+]kiểm tra đăng nhập
USE [QLsinhvien]
GO
/****** Object: StoredProcedure [dbo].[Log_in] Script Date: 9/8/2015 9:47:22 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[Log_in]
@UserName nchar[50],
@pass nchar[50]
as
SELECT [UserName]
,[Pass]
FROM [dbo].[DangNhap]
where @UserName =UserName and
@pass =Pass
+]sửa dữ liệu SV
USE [QLsinhvien]
GO
/****** Object: StoredProcedure [dbo].[SuaD] Script Date: 9/8/2015 9:48:13 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[SuaD]
@MaSV nchar[50],
@MaM nchar[50],
@Diem float
as
UPDATE [dbo].[Diem]
SET [MaSV] = @MaSV
,[MaM] = @MaM
,[Diem] = @Diem
WHERE [MaSV] = @MaSV
+]Sửa môn học
USE [QLsinhvien]
GO
/****** Object: StoredProcedure [dbo].[SuaMh] Script Date: 9/8/2015 9:48:43 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[SuaMh]
@MaM nchar[50],
@TenM nchar[50],
@SoTC int,
@HocKi int
as
UPDATE [dbo].[MonHoc]
SET [MaM] = @MaM
,[TenM] = @TenM
,[SoTC] = @SoTC
,[HocKi] = @HocKi
WHERE [MaM] = @MaM
+]Sửa sinh viên
USE [QLsinhvien]
GO
/****** Object: StoredProcedure [dbo].[SuaSV1] Script Date: 9/8/2015 9:49:11 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[SuaSV1]
@MaSV nchar[50]
, @TenSV nchar[50]
, @GioiTinh nchar[50]
, @NgaySinh datetime
, @QueQuan nchar[50]
, @Hinhanh varbinary[max]
as
UPDATE [dbo].[sv]
SET [MaSV] = @MaSV
,[TenSV] = @TenSV
,[GioiTinh] = @GioiTinh
,[NgaySinh] = @NgaySinh
,[QueQuan] = @QueQuan
,[Hinhanh] = @Hinhanh
WHERE [MaSV] = @MaSV
+]Tìm Mã Môn học
USE [QLsinhvien]
GO
/****** Object: StoredProcedure [dbo].[TimMH] Script Date: 9/8/2015 9:49:44 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[TimMH]
@MaM nchar[50],
@TenM nchar[50]
as
select MonHoc.MaM,MonHoc.TenM
from MonHoc
where @MaM =MonHoc.MaM or @TenM =MonHoc.TenM
+]Tìm Sinh Viên
USE [QLsinhvien]
GO
/****** Object: StoredProcedure [dbo].[Timsv] Script Date: 9/8/2015 9:50:16 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[Timsv]
@MaSV nchar[50],
@TenSV nchar[50]
as
SELECT [MaSV]
,[TenSV]
,[GioiTinh]
,[NgaySinh]
,[QueQuan]
FROM [dbo].[sv]
where @MaSV =MaSV or
@TenSV =TenSV
+]tim sinh viên tt
USE [QLsinhvien]
GO
/****** Object: StoredProcedure [dbo].[Timsv] Script Date: 9/8/2015 9:50:16 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[Timsv]
@MaSV nchar[50],
@TenSV nchar[50]
as
SELECT [MaSV]
,[TenSV]
,[GioiTinh]
,[NgaySinh]
,[QueQuan]
FROM [dbo].[sv]
where @MaSV =MaSV or
@TenSV =TenSV
+]Thêm điểm cho sv
USE [QLsinhvien]
GO
/****** Object: StoredProcedure [dbo].[ThemD] Script Date: 9/8/2015 9:51:18 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[ThemD]
[@MaSV nchar[50]
,@MaM nchar[50]
,@Diem float]
as
INSERT INTO [dbo].[Diem]
[[MaSV]
,[MaM]
,[Diem]]
VALUES
[ @MaSV
,@MaM
,@Diem ]
+]Thêm Môn học
USE [QLsinhvien]
GO
/****** Object: StoredProcedure [dbo].[ThemMH] Script Date: 9/8/2015 9:51:42 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[ThemMH]
[@MaM nchar[50]
,@TenM nchar[50]
,@SoTC int
,@HocKi int]
as
INSERT INTO [dbo].[MonHoc]
[[MaM]
,[TenM]
,[SoTC]
,[HocKi]]
VALUES
[@MaM
,@TenM
,@SoTC
,@HocKi ]
+]Thêm Sinh Viên
USE [QLsinhvien]
GO
/****** Object: StoredProcedure [dbo].[ThemSV] Script Date: 9/8/2015 9:52:01 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[ThemSV]
[@MaSV nchar[50]
,@TenSV nchar[50]
,@GioiTinh nchar[50]
,@NgaySinh datetime
,@QueQuan nchar[50]
,@Hinhanh varbinary[max]]
as
INSERT INTO [dbo].[sv]
[[MaSV]
,[TenSV]
,[GioiTinh]
,[NgaySinh]
,[QueQuan]
,[Hinhanh]
]
VALUES
[@MaSV
,@TenSV
,@GioiTinh
,@NgaySinh
,@QueQuan
,@Hinhanh]
+]Tra cứu Sinh Viên
USE [QLsinhvien]
GO
/****** Object: StoredProcedure [dbo].[TRaCuuSV] Script Date: 9/8/2015 9:52:21 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[TRaCuuSV]
@MaSV nchar[50]
as
select sv.TenSV,sv.QueQuan,sv.GioiTinh,sv.Hinhanh,sv.NgaySinh,TEMP.DiemTB,xeploai=case when TEMP.DiemTB >8 then 'gioi' when TEMP.DiemTB >7 then 'kha' when TEMP.DiemTB>5 then 'trung binh' else 'Yeu' end
from sv, [select Diem.MaSV,ROUND[ sum[Diem.Diem*MonHoc.SoTC]/SUM[MonHoc.SoTC],2]AS DiemTB
from Diem inner join MonHoc on Diem.MaM=MonHoc.MaM
group by Diem.MaSV
--having @MaSV=Diem.MaSV
]AS TEMP
where @MaSV=sv.MaSV
+]Xóa điểm sinh viên
USE [QLsinhvien]
GO
/****** Object: StoredProcedure [dbo].[XoaD] Script Date: 9/8/2015 9:52:49 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[XoaD]
@MaSV nchar[50]
as
DELETE FROM [dbo].[Diem]
WHERE [MaSV] = @MaSV
+]Xóa dữ liệu điểm
USE [QLsinhvien]
GO
/****** Object: StoredProcedure [dbo].[XoaDLD] Script Date: 9/8/2015 9:53:25 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[XoaDLD]
as
TRUNCATE TABLE Diem
+]Xóa dữ liệu trùng
USE [QLsinhvien]
GO
/****** Object: StoredProcedure [dbo].[XoaDLtrung] Script Date: 9/8/2015 9:53:57 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/****** Object: StoredProcedure [dbo].[XoaDLtrung] Script Date: 07/09/2015 10:18:25 CH ******/
ALTER proc [dbo].[XoaDLtrung]
@MaSV nchar[50],
@MaM nchar[50]
as
select Diem.MaM,Diem.MaSV
from Diem
where @MaSV=MaSV and @MaM=MaM
+]Xóa mã môn học
USE [QLsinhvien]
GO
/****** Object: StoredProcedure [dbo].[XoaMH] Script Date: 9/8/2015 9:54:42 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[XoaMH]
@MaM nchar[50]
as
DELETE FROM [dbo].[MonHoc]
WHERE [MaM] = @MaM
+]Xóa Sinh Viên
USE [QLsinhvien]
GO
/****** Object: StoredProcedure [dbo].[Xoasv] Script Date: 9/8/2015 9:55:06 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[Xoasv]
@masv nchar[50]
as
DELETE FROM [dbo].[sv]
WHERE @masv=masv
III]trigger
+]xóa môn học:
USE [QLsinhvien]
GO
/****** Object: Trigger [dbo].[XoaM] Script Date: 9/8/2015 10:06:08 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger [dbo].[XoaM]
on [dbo].[MonHoc]
after Delete
as
begin
delete from Diem where Diem.MaM=[select MaM from deleted]
end
+]lưu sinh viên:
USE [QLsinhvien]
GO
/****** Object: Trigger [dbo].[LuuS] Script Date: 9/8/2015 10:06:38 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger [dbo].[LuuS]
on [dbo].[sv]
after delete
as
begin
declare @msv nchar[50]
declare @tensv nchar[50]
declare @Ngaysinh datetime
declare @QueQuan nchar[50]
declare @Ngaytd datetime
set @msv= [select MaSV from deleted]
set @tensv= [select TenSV from deleted]
set @Ngaysinh= [select NgaySinh from deleted]
set @QueQuan= [select QueQuan from deleted]
insert into LuuSV
values [@msv,@tensv,@Ngaysinh,@QueQuan,GETDATE[]]
end
+]xóa sinh viên:
USE [QLsinhvien]
GO
/****** Object: Trigger [dbo].[XoaS] Script Date: 9/8/2015 10:07:22 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/****** Object: Trigger [dbo].[XoaM] Script Date: 30/08/2015 7:43:10 CH ******/
ALTER trigger [dbo].[XoaS]
on [dbo].[sv]
after Delete
as
begin
delete from Diem where Diem.MaSV=[select MaSV from deleted]
end