Phần 10: Truy vấn dữ liệu trong SQL Server (Phần 1) – Học SQL Server Basic

Phần 10: Truy vấn dữ liệu trong SQL Server (Phần 1)                        – Học SQL Server Basic
Truy vấn dữ liệu trong SQL Server là thao tác trích xuất thông tin được lưu trữ trong các Table. Thông tin được truy xuất qua các cột và thông tin cần trích xuất có thể thuộc 1 hay nhiều bảng.
Thao tác này được dùng nhiều trong các hệ thống phần mềm hay web site, ví dụ khi anh em đăng nhập vào fb thì hệ thống sẽ thực hiện truy vấn dữ liệu để kiểm tra tích hợp lệ của tài khoản đăng nhập, ….
Ta thao tác các ví dụ trên cơ sở dữ liệu sau, anh em chỉ việc copy và chạy đoạn mã sau trong SQL Server, ta sẽ có 1 cơ sở dữ liệu để demo:
-- 1/ Tạo DB + Sử dụng DB
	Create Database BKitSoftware
	Go
	Use BKitSoftware
	Go
	
-- 2/ Tạo desk + Khoá chính
	create desk GIAOVIEN
	(
		MAGV nchar(3),
		HOTEN nvarchar(50),
		LUONG float,
		PHAI nchar(3),
		NGSINH date,
		DIACHI nchar(50),
		GVQLCM nchar(3),
		MABM nchar(4),
		major key (MAGV)
	)

--Nhập information cho bảng GIAOVIEN
	Insert Into GIAOVIEN(MAGV,HOTEN,LUONG,PHAI,NGSINH,DIACHI)
	values ('001',N'Nguyễn Hoài An',2000.0,N'Nam','1973-02-15',N'25/3 Lạc Long Quân, Q.10,TP HCM')
	Insert Into GIAOVIEN(MAGV,HOTEN,LUONG,PHAI,NGSINH,DIACHI)
	values ('002',N'Trần Trà Hương',2500.0,N'Nữ','1960-06-20',N'125 Trần Hưng Đạo, Q.1, TP HCM')
	Insert Into GIAOVIEN(MAGV,HOTEN,LUONG,PHAI,NGSINH,DIACHI,GVQLCM)
	values ('003',N'Nguyễn Ngọc Ánh',2200.0,N'Nữ','1975-05-11',N'12/21 Võ Văn Ngân Thủ Đức, TP HCM',N'002')
	Insert Into GIAOVIEN(MAGV,HOTEN,LUONG,PHAI,NGSINH,DIACHI)
	values ('004',N'Trương Nam Sơn',2300.0,N'Nam','1959-06-20',N'215 Lý Thường Kiệt,TP Biên Hòa')
	Insert Into GIAOVIEN(MAGV,HOTEN,LUONG,PHAI,NGSINH,DIACHI)
	values ('005',N'Lý Hoàng Hà',2500.0,N'Nam','1954-10-23',N'22/5 Nguyễn Xí, Q.Bình Thạnh, TP HCM')
	Insert Into GIAOVIEN(MAGV,HOTEN,LUONG,PHAI,NGSINH,DIACHI,GVQLCM)
	values ('006',N'Trần Bạch Tuyết',1500.0,N'Nữ','1980-05-20',N'127 Hùng Vương, TP Mỹ Tho',N'004')
	Insert Into GIAOVIEN(MAGV,HOTEN,LUONG,PHAI,NGSINH,DIACHI)
	values ('007',N'Nguyễn An Trung',2100.0,N'Nam','1976-06-05',N'234 3/2, TP Biên Hòa')
	Insert Into GIAOVIEN(MAGV,HOTEN,LUONG,PHAI,NGSINH,DIACHI,GVQLCM)
	values ('008',N'Trần Trung Hiếu',1800.0,N'Nam','1977-08-06',N'22/11 Lý Thường Kiệt,TP Mỹ Tho',N'007')
	Insert Into GIAOVIEN(MAGV,HOTEN,LUONG,PHAI,NGSINH,DIACHI,GVQLCM)
	values ('009',N'Trần Hoàng nam',2000.0,N'Nam','1975-11-22',N'234 Trấn Não,An Phú, TP HCM',N'001')
	Insert Into GIAOVIEN(MAGV,HOTEN,LUONG,PHAI,NGSINH,DIACHI,GVQLCM)
	values ('010',N'Phạm Nam Thanh',1500.0,N'Nam','1980-12-12',N'221 Hùng Vương,Q.5, TP HCM',N'007')
GO

--Update thêm dữ liệu cho bảng GIAOVIEN
	replace GIAOVIEN
	set MABM = 'MMT'
	the place (MAGV = '001')
	replace GIAOVIEN
	set MABM = 'HTTT'
	the place (MAGV = '002')
	replace GIAOVIEN
	set MABM = 'HTTT'
	the place (MAGV = '003')
	replace GIAOVIEN
	set MABM = 'VS'
	the place (MAGV = '004')
	replace GIAOVIEN
	set MABM = N'VLĐT'
	the place (MAGV = '005')
	replace GIAOVIEN
	set MABM = 'VS'
	the place (MAGV = '006')
	replace GIAOVIEN
	set MABM = 'HPT'
	the place (MAGV = '007')
	replace GIAOVIEN
	set MABM = 'HPT'
	the place (MAGV = '008')
	replace GIAOVIEN
	set MABM = 'MMT'
	the place (MAGV = '009')
	replace GIAOVIEN
	set MABM = 'HPT'
	the place (MAGV = '010')
	GO
Ta có bảng GIAOVIEN như dưới đây:

1. SQL Select

Câu lệnh SELECT là 1 câu lệnh căn bản nhất trong SQL, mục đích là truy vấn dữ liệu trong những bảng (Table).
Cú pháp căn bản của câu lệnh SELECT trong SQL như dưới đây:
SELECT column1, column2, columnN FROM table_name;
Ví dụ, Nếu như muốn lấy dữ liệu ở cột MAGV và HOTEN, ta sử dụng câu lệnh sau:
choose MAGV, HOTEN from GIAOVIEN
Kết quả nhận được:
Hoặc nếu như bạn cần lấy tất cả dữ liệu của bảng, ta sử dụng câu lệnh
choose * from GIAOVIEN

2. SQL Where

WHERE trong SQL được dùng để chỉ định 1 điều kiện trong khi lấy dữ liệu từ 1 bảng hay bằng việc JOIN với rất nhiều bảng. Nếu như điều kiện thỏa mãn, thì nó trả về 1 giá trị chi tiết từ bảng. Bạn nên sử dụng mệnh đề WHERE để lọc những bản ghi và chỉ lấy những bản ghi cần thiết.
WHERE không chỉ được dùng trong câu lệnh SELECT, mà nó còn được dùng trong câu lệnh UPDATE, DELETE, vv, mà sẽ được nhắc đến tới trong những bài tiếp theo.
Cú pháp:
SELECT column1, column2, columnN 
FROM table_name
WHERE [condition]
Ví dụ, ta muốn lấy thông tin của giáo viên có mã số là 001
SELECT * FROM GIAOVIEN 
WHERE MAGV = '001'
Kết quả nhận được:

3. SQL Distinct

Câu lệnh DISTINCT được dùng cùng SELECT, dùng để SELECT các dữ liệu, bỏ qua các dữ liệu trùng nhau. Cú pháp là:
SELECT distinct column1, column2  ....
Ví dụ, ta muốn lấy ra các mức lương của giáo viên, nếu như không sử dụng DISTINCT:
SELECT LUONG FROM GIAOVIEN
Ta thấy có nhiều kết quả trùng nhau, do vậy, trong trường hợp này, DISTINCT có vai trò lọc ra các kết quả trùng nhau đó
SELECT DISTINCT LUONG FROM GIAOVIEN

4. SQL And và Or

Toán tử AND và OR được dùng để kết hợp nhiều điều kiện nhằm thu hẹp dữ liệu trong câu lệnh SQL. Hai toán tử này được gọi là toán tử liên hợp trong SQL Server. AND và OR cho phép tạo nhiều so sánh với những toán tử khác trong cùng 1 lệnh SQL.
Cú pháp của 2 toán tử này là giống nhau nhau:
SELECT column1, column2, columnN...
FROM table_name
WHERE [condition1] AND [condition2] OR [condition3]...;
Ví dụ, ta muốn lấy ra thông tin của giáo viên thuộc bộ môn MMT hay HTTT, câu lệnh sẽ như dưới đây:
SELECT * FROM GIAOVIEN WHERE MABM = 'MMT' OR MABM='HTTT'
Trong trường hợp ta muốn lấy thông tin của giáo viên thuộc bộ môn MMT hay HTTT nhưng có giới tính là Nam, câu lệnh sẽ như dưới đây:
SELECT * FROM GIAOVIEN WHERE MABM = 'MMT' OR MABM='HTTT'AND PHAI='Nam'

5. SQL IN

Câu lệnh IN trong WHERE sử dụng trong tình huống tìm kiếm giá trị thuộc 1 tập hợp nhất định.
Ví dụ, ta muốn tìm thông tin của các giáo viên có mức lương là 2000, 2200, 2300, ngoài cách sử dụng OR, chúng ta sẽ có thể dùng IN như dưới đây:
SELECT * FROM GIAOVIEN WHERE LUONG IN ('2000','2200','2300')
Như thế, qua bài học này, ta đã cùng tìm hiểu những câu lệnh, mệnh đề,.. để truy vấn dữ liệu trong SQL Server. Sang bài tiếp theo, ta sẽ tiếp tục học những câu lệnh còn lại. Cảm ơn anh em đã đọc.

admin

Leave a Reply

Your email address will not be published. Required fields are marked *