Bài 10: Truy vấn dữ liệu trong SQL Server (Phần 1) - Học SQL Server cơ bản

Đăng bởi: Admin | Lượt xem: 3764 | Chuyên mục: SQL


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 thông qua các cột và thông tin cần trích xuất có thể thuộc một hoặc nhiều bảng.
Thao tác này được sử dụng rất nhiều trong các hệ thống phần mềm hoặc website, chẳng hạn khi các bạn đăng nhập vào facebook 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, các bạn chỉ cần copy và chạy đoạn mã sau trong SQL Server, chúng ta sẽ có một cơ sở dữ liệu để demo:
-- 1/ Tạo DB + Sử dụng DB
	Create Database BKitSoftware
	Go
	Use BKitSoftware
	Go
	
-- 2/ Tạo table + Khoá chính
	create table GIAOVIEN
	(
		MAGV nchar(3),
		HOTEN nvarchar(50),
		LUONG float,
		PHAI nchar(3),
		NGSINH date,
		DIACHI nchar(50),
		GVQLCM nchar(3),
		MABM nchar(4),
		primary key (MAGV)
	)

--Nhập data 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

--Cập nhật thêm dữ liệu cho bảng GIAOVIEN
	update GIAOVIEN
	set MABM = 'MMT'
	where (MAGV = '001')
	update GIAOVIEN
	set MABM = 'HTTT'
	where (MAGV = '002')
	update GIAOVIEN
	set MABM = 'HTTT'
	where (MAGV = '003')
	update GIAOVIEN
	set MABM = 'VS'
	where (MAGV = '004')
	update GIAOVIEN
	set MABM = N'VLĐT'
	where (MAGV = '005')
	update GIAOVIEN
	set MABM = 'VS'
	where (MAGV = '006')
	update GIAOVIEN
	set MABM = 'HPT'
	where (MAGV = '007')
	update GIAOVIEN
	set MABM = 'HPT'
	where (MAGV = '008')
	update GIAOVIEN
	set MABM = 'MMT'
	where (MAGV = '009')
	update GIAOVIEN
	set MABM = 'HPT'
	where (MAGV = '010')
	GO
Ta có bảng GIAOVIEN như sau:

1. SQL Select

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

2. SQL Where

WHERE trong SQL được sử dụng để chỉ định một điều kiện trong khi lấy dữ liệu từ một bảng hoặc bằng cách JOIN với nhiều bảng. Nếu điều kiện thỏa mãn, thì nó trả về một giá trị cụ thể từ bảng. Bạn nên sử dụng mệnh đề WHERE để lọc các bản ghi và chỉ lấy các bản ghi cần thiết.
WHERE không chỉ được sử dụng trong câu lệnh SELECT, mà nó còn được sử dụng trong câu lệnh UPDATE, DELETE, vv, mà sẽ được đề cập đến trong các 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ả thu được:

3. SQL Distinct

Câu lệnh DISTINCT được sử dụng cùng với 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ụ, chúng ta muốn lấy ra các mức lương của giáo viên, nếu không dùng DISTINCT:
SELECT LUONG FROM GIAOVIEN
Ta thấy có nhiều kết quả trùng nhau, do đó, trong trường hợp này, DISTINCT có vai trò lọc ra những kết quả trùng nhau đó
SELECT DISTINCT LUONG FROM GIAOVIEN

4. SQL And và Or

Toán tử AND và OR được sử 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 các toán tử khác trong cùng một lệnh SQL.  
Cú pháp của 2 toán tử này là tương tự nhau:
SELECT column1, column2, columnN...
FROM table_name
WHERE [condition1] AND [condition2] OR [condition3]...;
Ví dụ, chúng ta muốn lấy ra thông tin của giáo viên thuộc bộ môn MMT hoặc HTTT, câu lệnh sẽ như sau:
SELECT * FROM GIAOVIEN WHERE MABM = 'MMT' OR MABM='HTTT'
Trong trường hợp chúng ta muốn lấy thông tin của giáo viên thuộc bộ môn MMT hoặc HTTT nhưng có giới tính là Nam, câu lệnh sẽ như sau:
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 một 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 có thể dùng IN như sau:
SELECT * FROM GIAOVIEN WHERE LUONG IN ('2000','2200','2300')
Như vậy, thông qua bài học này, chúng ta đã cùng nhau tìm hiểu một số câu lệnh, mệnh đề,.. để truy vấn dữ liệu trong SQL Server. Sang bài tiếp theo, chúng ta sẽ tiếp tục học những câu lệnh còn lại. Cảm ơn các bạn đã đọc.
Bài tiếp theo: Truy vấn dữ liệu trong SQL Server (Phần 2) >>
vncoder logo

Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!