Khoá học lập trình SQL Bài Giảng: Hướng dẫn tìm hiểu view + proc trong SQL - Lập trình SQL Server

  • 5.0/5.0
  • 2k Đăng ký
  • Học lập trình
  • Tiếng việt

Thông tin khóa học

Hướng dẫn tìm hiểu view + proc trong SQL - Lập trình SQL Server

-- TEST
select * from Student
select * from Subject
select * from Marks



-- Query
---- Hien thi thong tin diem thi sinh vien: roll_number, student_name, subject_name, marks
select Student.roll_number, Student.student_name, Subject.subject_name, Marks.marks
from Student, Subject, Marks
where Student.roll_number = Marks.roll_number
	and Subject.subject_id = Marks.subject_id



---- Bai toan: Luu lai truy van tren thi lam cach nao -> Cach thong thuong -> save file sql -> sau mo lai va test
---- Bai toan 2: Neu phat trien du an theo team (nhieu thanh vien) -> cung su dung chung 1 database
--------- Lam sao de chia se cac query -> thanh vien trong du an co the su dung lai query ban da viet thi lam cach nao???
---- Bai toan 3: Phat trien chuong trinh phan mem:
--------- Cach 1: Nhung sql trong code ngon ngu lap trinh
--------- Cach 2: Luu toan sql trong database -> su dung thong qua 1 view & proc -> su dung dc query
---- View & Proc => giup chung ta => quan ly dc cau query trong chinh database
-- I) View: Luu 1 truy van select -> view se dc hieu nhu 1 table tam thoi.
create view view_student_marks
as
select Student.roll_number, Student.student_name, Subject.subject_name, Marks.marks
from Student, Subject, Marks
where Student.roll_number = Marks.roll_number
	and Subject.subject_id = Marks.subject_id


---- TEST
select * from view_student_marks
order by marks asc

select * from view_student_marks
where marks >= 8
order by marks asc



---- Sua view
alter view view_student_marks
as
select top(10) Student.roll_number, Student.student_name, Subject.subject_name, Marks.marks
from Student, Subject, Marks
where Student.roll_number = Marks.roll_number
	and Subject.subject_id = Marks.subject_id

---- Xoa view
drop view view_student_marks



-- II) proc: Duoc hieu nhu 1 function (ham & method & phuong thuc)
------ Điều này có nghĩa là gì: proc -> có thể lưu nhiều câu truy vấn khác nhau: Có thể là nhiều lệnh select, insert, update, delete
create proc proc_test
as
begin
	select * from Student
	select * from Subject
	select * from Marks
end

---- TEST
exec proc_test




create proc proc_view_student_marks_and_test
as
begin
	select Student.roll_number, Student.student_name, Subject.subject_name, Marks.marks
	from Student, Subject, Marks
	where Student.roll_number = Marks.roll_number
		and Subject.subject_id = Marks.subject_id

	select * from Student
	select * from Subject
	select * from Marks
end

exec proc_view_student_marks_and_test





-- Proc: Hiểu nó như là 1 function trong ngôn ngữ lập trình
---- Do vậy: Tham số đầu vào, dữ liệu trả về (output)
---- Proc -> xem thông tin điểm thi của sinh viên -> điều kiện tham số đầu vào là minMarks
create proc view_student_marks_by_min
	@minMarks float
as
begin
	select Student.roll_number, Student.student_name, Subject.subject_name, Marks.marks
	from Student, Subject, Marks
	where Student.roll_number = Marks.roll_number
		and Subject.subject_id = Marks.subject_id
		and Marks.marks >= @minMarks
end

exec view_student_marks_by_min 8





---- Bài toán proc gồm nhiều tham số đầu vào thì làm thế nào.
------ Xem thông tin điểm thi sinh viên: @minMark & @roll_number
create proc view_student_marks_by_min_rollno
	@minMarks float,
	@rollno nvarchar(20)
as
begin
	select Student.roll_number, Student.student_name, Subject.subject_name, Marks.marks
	from Student, Subject, Marks
	where Student.roll_number = Marks.roll_number
		and Subject.subject_id = Marks.subject_id
		and Marks.marks >= @minMarks
		and Student.roll_number = @rollno
end

exec view_student_marks_by_min_rollno 7, 'R001'






---- Đếm xem có bao nhiêu sinh viên có có điểm thi >= minMarks - Hiển thị dữ liệu đầu ra.
create proc view_count_student_marks_by_min
	@minMarks float,
	@count int output -- float, int, nvarchar, ...
as
begin
	select Student.roll_number, Student.student_name, Subject.subject_name, Marks.marks
	from Student, Subject, Marks
	where Student.roll_number = Marks.roll_number
		and Subject.subject_id = Marks.subject_id
		and Marks.marks >= @minMarks

	-- count(*): Có nghĩa là đếm tổng số bản ghi trong câu truy vấn: Với cách viết này không cần dùng thêm group by.
	select @count = count(*)
	from Student, Subject, Marks
	where Student.roll_number = Marks.roll_number
		and Subject.subject_id = Marks.subject_id
		and Marks.marks >= @minMarks
end

---- Khi khai báo 1 biến trong lệnh sql -> cần đặt từ khóa declare trước tên biến.
declare @count2 int
exec view_count_student_marks_by_min 6, @count = @count2 output
---- Không thể cộng chuỗi với số nguyên
---- Do vậy: Để in được kết quả đầu ra -> chuyển số nguyên về chuỗi (int -> nvarchar)
------- Hàm chuyển int -> nvarhhar: CONVERT(nvarchar(20), @count2)
print N'So ban ghi tim duoc: ' + CONVERT(nvarchar(20), @count2)





-- Sua stored (proc) -> alter
-- Xoa stored (proc) -> drop
drop proc view_count_student_marks_by_min

---- Overview: group by
-- group by: Khi nhom dữ liêu -> thông qua các hàm: count, sum, min, max, avg.
select Student.roll_number, Student.student_name, count(Marks.marks) 'So Mon Co Diem Thi'
from Student, Subject, Marks
where Student.roll_number = Marks.roll_number
	and Subject.subject_id = Marks.subject_id
group by Student.roll_number, Student.student_name










Đăng nhập để làm bài kiểm tra

Chưa có kết quả nào trước đó

Chương trình

Video Hướng dẫn cách xác định kiểu dữ liệu, primary key, foreign key trong SQL - My SQL - SQL Server
Bài tập - Thiết kế CSDL - Tạo bảng, thêm dữ liêu, hiển thị dữ liệu - Lập trình SQL Server
Video Hướng dẫn thao tác nhiểu bảng - select - multi table - join, inner join trong SQL Server
Thiết kế database - bãi đỗ xe - Lập trình SQL Server
Video Hướng dẫn phân tích CSDL - phân tích bảng, column trong bản - Học lập trình SQL, SQL Server
Video Hướng dẫn tìm hiểu create, alter , insert table và bản chất primary key, foreign key - SQL Server
Video Hướng dẫn tìm hiểu select, and, in, like, not in,group by .. having, order by asc, desc - SQL Server
Thiết kế hệ quản trị CSDL - Quản lý sinh viên (create, alter, update, insert, select) - Lập trình SQL Server
Video Quản lý sinh viên (create, alter, update, insert, select) - Lập trình SQL Server
Thiết kế CSDL quản lý sinh viên - lập trình sql server
SQL - Thiết kế CSDL quản lý bán hàng - Lập trình SQL Server
Thiết kế CSDL quản lý bán hàng - create - alter - insert - update - delete trong CSDL - Học lập trình SQL Server
Quản lý khách sạn - nâng cao - Lập trình Sql Server

Video Hướng dẫn tìm hiểu view trong SQL Server
Bài Giảng: Hướng dẫn tìm hiểu view + proc trong SQL - Lập trình SQL Server
Bài tập - Thiết kế CSDL - sử dụng trong giải đấu bóng đá FIFA - champions league - world cup - Lập trình SQL Server

Video Hướng dẫn tìm hiểu proc procedure trong SQL Server - Lập trình SQL Server, MySQL
Bài tập - Quản lý bãi đỗ xe - Lập trình SQL Server
Bài tập - Xây dự hệ thống đưa đón học sinh bằng xe bus của Trường Học - Lập trình SQL Server
Bài Giảng: Xây dự hệ thống đưa đón học sinh bằng xe bus của Trường Học - Lập trình SQL Server
Bài tập - Thiết kế CSDL quản lý sở thú - SQL Server
Bài Giảng: Bài tập - Thiết kế CSDL quản lý sở thú - SQL Server
Bài tập - Chương trình quản lý bán hàng - Lập trình SQL Server
Xây dựng CSDL quản lý điểm danh Trường Học - Lập trình SQL Server/MySQL
Video Xây dựng CSDL quản lý điểm danh aptech - Lập trình SQL Server/MySQL
Bài tập - Quản lý quán cafe - Lập trình SQL Server - MySQL
Video Bài tập - Quản lý quán cafe - Lập trình SQL Server - MySQL

Video Học Trigger qua ví dụ - quản lý nhà trên phố - Lập trình SQL Server
Video Hướng dẫn học trigger qua bài quản lý điểm danh Aptech - Lập trình SQL Server
Bài tập - Quản lý nhân khẩu - Lập trình SQL Server - MySQL
Video Bài tập - Quản lý nhân khẩu - Lập trình SQL Server - MySQL

[Examination] Bài Thi Thực Hành SQL Server
[Examination] Quản lý sản phẩm - Lập trình SQL Server
[Examination] Hệ thống quản lý sinh viên - SQL Server
Bài Giảng: Hệ thống quản lý sinh viên - Lập trình SQL Server
Nguyễn Văn An
Nguyễn Văn An
2026-06-22 11:16:23
Khóa học cực kỳ chất lượng, giảng viên hướng dẫn rất chi tiết và dễ hiểu. Mình đã áp dụng được ngay vào công việc thực tế.
Trần Thị Bích
Trần Thị Bích
2026-06-19 11:16:23
Nội dung bài giảng được sắp xếp logic, đi từ cơ bản đến nâng cao. Rất phù hợp cho người mới bắt đầu.
Lê Hoàng Hải
Lê Hoàng Hải
2026-06-17 11:16:23
Khóa học hay, tuy nhiên phần bài tập thực hành hơi khó một chút. Cần phải xem lại video vài lần mới làm được.
Phạm Minh Tuấn
Phạm Minh Tuấn
2026-06-10 11:16:23
Tuyệt vời! Đây là khóa học tốt nhất mình từng tham gia. Support nhiệt tình, giải đáp thắc mắc rất nhanh.

Đánh giá

B1. B1. Tạo tài khoản -> Sử dụng để học online
B2. Đăng ký học
B3. Hoàn thành mua khoá học
B4. Thanh toán theo hướng dẫn
B5. Đợi chúng tôi kiểm tra thông tin và thêm bạn vào lớp học

Chào mừng các anh chị và các bạn gia nhập đội ngũ Giảng viên QViet. Anh chị vui lòng đăng ký theo hướng dẫn sau:
Bước 1: Truy cập website https://gozic.vn/teacher/form
Bước 2: Điền thông tin theo yêu cầu. Để bản đăng ký được duyệt nhanh nhất, anh chị hãy điền đủ thông tin nhé.
Bước 3: Click vào "đăng ký ngay" để hoàn thành
Lưu ý:
Link video bài giảng mẫu: Video bài giảng mẫu là căn cứ để Trắc Nghiệm Việt duyệt về hình thức và chất lượng giảng dạy. Vì vậy anh chị hãy điền link này để đăng ký được duyệt nhanh nhất nhé.
Anh chị cũng nên mô tả kỹ về kinh nghiệm giảng dạy để Trắc Nghiệm Việt đánh giá nhé.
Chúc các anh chị và các bạn thành công, sớm gia nhập đội ngũ giảng viên Trắc Nghiệm Việt!
×