Skip to content
Home » Câu Lệnh Điều Kiện Trong Sql | Ref: Liên Quan Tới Định Nghĩa Bảng

Câu Lệnh Điều Kiện Trong Sql | Ref: Liên Quan Tới Định Nghĩa Bảng

[SQL SEVER TỪ A-Z] Bài 9: Truy vấn có điều kiện trong SQL

Cơ sở dữ liệu Demo

Trong khoá này, chúng ta sẽ sử dụng cơ sở dữ liệu mẫu được nhiều người biết đến là Northwind.

Bên dưới là một lựa chọn từ bảng “Customers”:

CustomerID CustomerName ContactName Address City PostalCode Country
Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

Ví dụ – Câu lệnh không có điều kiện ELSE

Vì ELSE là không bắt buộc nên câu lệnh có thể khuyết thiếu điều kiện này.


DECLARE @nhanvien_salary INT; SET @nhanvien_salary = 15000000; IF @nhanvien_salary < 10000000 PRINT 'Chuyen vien'; GO

Ở câu lệnh này, chương trình sẽ đưa ra kết quả là Chuyen vien nếu như biến @nhanvien_salary < 10000000. Không dùng ELSE khi bạn chắc chắn rằng lệnh này luôn đưa ra kết quả TRUE.

[SQL SEVER TỪ A-Z] Bài 9: Truy vấn có điều kiện trong SQL
[SQL SEVER TỪ A-Z] Bài 9: Truy vấn có điều kiện trong SQL

3) Trên bản ghi (record)

Nhớ thêm phần biểu thức điều kiện

Nhớ thêm phần ký tự thay thế

insert..values: thêm các bản ghi vào bảng


insert into SinhVien (MaSV, TenSV, QueQuan)values (1, N’Nguyễn Văn A’, 1)

insert..select: thêm các bản ghi từ bảng khác vào bảng


insert into DocGiaselect MaSV, TenSV, QueQuan from SinhVien insert into DocGia select MaGV, TenGV, QueQuan from GiaoVien

select..into: đưa kết quả lựa chọn vào bảng mới


select MaSV, TenSV, Dieminto SinhVienKha from SinhVien where Diem > 7.0

delete: xóa các bản ghi từ bảng


delete from SinhViendelete from SinhVien where MaSV=1234

truncate: xóa toàn bộ bản ghi của bảng


truncate table SinhVien

update: sửa các bản ghi trong bảng


update SinhVienset NhomTruong = 1 where MaSV < 4 update SinhVien set NhomTruong = 4 where (MaSV > 3 and MaSV < 8)

Nội dung chính

Để theo dõi tốt nhất bài này, bạn nên xem qua bài:

  • Khởi tạo và thao tác với DATABASE, TABLE trong SQL.
  • KIỂU DỮ LIỆU trong SQL.
  • Insert, Delete, Update Table trong SQL.
  • KHÓA CHÍNH, KHÓA NGOẠI trong SQL.
  • TRUY VẤN CƠ BẢN trong SQL.

Trong bài này, chúng ta sẽ cùng nhau tìm hiểu một số vấn đề sau:

  • Database mẫu
  • Giải bài tập truy vấn cơ bản
  • Truy vấn có điều kiện
  • Một số ví dụ khác
  • Bài tập tự luyện
[SQL SEVER TỪ A-Z] Bài 27: If else sql - Câu truy vấn có điều kiện trong sql
[SQL SEVER TỪ A-Z] Bài 27: If else sql – Câu truy vấn có điều kiện trong sql

4) Truy vấn (query)

Hỗ trợ truy vấn: distinct, top, as, identity

Phép toán tập hợp: in, like, between

Các hàm tổng nhóm: sum, max, min, avg

4.1) Truy vấn đơn giản

select *: Hiện tất cả bảng


select *from SinhVien

select: Hiện một số cột


select TenSV, DiemTBfrom SinhVien

select..where: Hiện một số dòng / bản ghi


select TenSV, DiemTBfrom SinhVien where DiemTB > 6.0

select..order by: Hiện và sắp xếp theo điểm rồi theo tên


select TenSV, DiemTBfrom SinhVien order by DiemTB desc, TenSV asc // asc sắp sếp tăng dần, desc là giảm dần

select..distinct: Hiện danh sách giá trị không trùng lặp


select distinct QueQuanfrom SinhVien

select..top: Hiện các dòng đầu tiên trong bảng


select top 3 TenSV, DiemTBfrom SinhVien order by DiemTB desc, TenSV asc

4.2) Truy vấn lồng nhau (nested query)

select..where (select)

Hiện tất cả những người trong bảng nhân viên có lương bằng lương lớn nhất của những người có trong công ty:


select TenNV, Luongfrom NhanVien where Luong = (select max(Luong) from NhanVien)

select..where (in)

Hiện tất cả những người trong bảng nhân viên có lương lớn nhất hoặc lớn nhì của những người có trong công ty:


select TenNV, Luongfrom NhanVien where Luong in (select top 2 Luong from NhanVien order by Luong)

Câu lệnh select trong sẽ tạo ra một tập hai giá trị (top 2) đó là lương lớn nhất và lương lớn nhì. Và câu lệnh select thứ nhất sẽ chọn ra những người mà lương nằm trong tập lớn nhất và lớn nhì

select..where (in sub)

Hiện ra tất cả những người có lương lớn nhất phòng của anh ta (không phải lớn nhất trong công ty mà lớn nhất trong phòng hoặc đơn vị mà anh ta thuộc về)


select nv1.TenNV, nv1.Luongfrom NhanVien as nv1 where nv1.Luong = (select max(Luong) from NhanVien where Phong=nv1.Phong)

Câu lệnh select trong sẽ trả về giá trị lương lớn nhất nhưng không phải lớn nhất trong toàn công ty mà lớn nhất trong phòng của nv1. Sau đó câu lệnh select ngoài cùng sẽ xác định xem nv1 có được chọn không bằng cách kiểm tra lương anh ta với lương lớn nhất của phòng anh ta.

4.3) Truy vấn tổng nhóm (subtotal query / grouping query)

select..group by: Thống kê theo tiêu chí

Hiện ra số lượng các nhân viên ứng với từng quê


select QueQuan, count(*)from NhanVien group by QueQuan

Đếm số nam và số nữ trong công ty


select GioiTinh, count(*)from NhanVien group by GioiTinh

Tính tổng thu nhập theo từng phòng


select Phong, sum(Luong)from NhanVien group by Phong

select..having: Hiện ra một số nhóm phù hợp

Chỉ đếm số lượng người ở Hải Phòng và số lượng người ở Hà nội


select QueQuan, count(*)from NhanVien group by QueQuan having (QueQuan = ‘HP’, QueQuan = ‘HN’)

Chỉ hiện ra những phòng nào có tổng thu nhập lớn hơn 500000


select Phong, sum(Luong)from NhanVien group by Phong having sum(Luong) > 5000000

Chỉ hiện ra những tỉnh nào có số lượng người lớn hơn 10


select QueQuan, count(*)from NhanVien group by QueQuan having count(*) > 10

4.4) Truy vấn liên bảng (cross table query / joining query)

select..inner join: ghép các cặp bản ghi thỏa mãn điều kiện

Ghép bảng nhân viên và hiện ra tên nhân viên và tên địa phương


select NhanVien.TenNV, DiaPhuong.TenDP from NhanVien inner join DiaPhuong on NhanVien.QueQuan = DiaPhuong.MaDP

select..left outer join: lấy tất cả phía trái và ghép (nếu có) với phải

Lấy tất cả những nhân viên kể cả những nhân viên có quê quán không hợp lệ (nghĩa là mã quê quán không có trong bảng địa phương)


select NhanVien.TenNV, DiaPhuong.TenDP from NhanVien left outer join DiaPhuong on NhanVien.QueQuan = DiaPhuong.MaDP

select..right outer join: lấy tất cả phía phải và ghép (nếu có) với phía trái

Lấy tất cả những địa phương ghép với nhân viên, các địa phương không hợp lệ sẽ được ghép với bộ dữ liệu rỗng. Không hiện ra các nhân viên không có mã quê quán phù hợp


select NhanVien.TenNV, DiaPhuong.TenDP from NhanVien right outer join DiaPhuong on NhanVien.QueQuan = DiaPhuong.MaDP

select..full outer join: lấy từ hai phía và ghép nếu có

Lấy tất cả những nhân viên (nếu không có quê quán phù hợp thì ghép với bộ dữ liệu rỗng) và tất cả những địa phương kể cả không có nhân viên.


select NhanVien.TenNV, DiaPhuong.TenDP from NhanVien right outer join DiaPhuong on NhanVien.QueQuan = DiaPhuong.MaDP

select..cross join: trả về tất cả các cặp có thể ghép

Ghép từng nhân viên với tất cả các địa phương. Như vậy nếu có m nhân viên và có n địa phương thì bảng đích sẽ có m*n dòng. n dòng đầu cho nhân viên thứ nhất ghép với các địa phương. n dòng sau cho nhân viên thứ hai ghép với các địa phương. và tiếp tục như thế tới nhân viên thứ m.


select NhanVien.TenNV, DiaPhuong.TenDP from NhanVien cross join DiaPhuong

Các toán tử trong câu lệnh điều kiện WHERE

Các toán tử dưới đây có thể sử dụng trong câu lệnh điều kiện

WHERE

:

Toán tử Mô tả
Bằng
Không bằng. Lưu ý: Trong một số phiên bản SQL, toán tử này có thể được viết như sau !=
Lớn hơn
Nhỏ hơn
Lớn hơn hoặc bằng
Nhỏ hơn hoặc bằng
Nằm giữa một khoảng
Tìn kiếm một mẫu
Để xác định nhiều giá trị có thể cho một cột

IF ELSE – Lệnh rẽ nhánh

Nội dung

Học SQL 25. Hiểu rõ các câu lệnh INNER JOIN, LEFT JOIN, RIGHT JOIN trong SQL
Học SQL 25. Hiểu rõ các câu lệnh INNER JOIN, LEFT JOIN, RIGHT JOIN trong SQL

Dẫn nhập

Trong bài trước, Kteam đã hướng dẫn bạn cách TRUY VẤN CƠ BẢN TRONG SQL. Chúng ta đã biết cách truy vấn như thế nào? Lấy toàn bộ dữ liệu như thế nào? Xuất dữ liệu theo column mong muốn như thế nào? Gom nhiều table như thế nào?

Tuy nhiên, trong bài trước chúng ta còn vài vấn đề trong câu truy vấn còn vướng mắc, cùng Kteam giải quyết những vấn đề đó với TRUY VẤN CÓ ĐIỀU KIỆN nhé!

ref: Các khái niệm cơ bản của cơ sở dữ liệu

Các mô hình dữ liệu (data model)

+ Mô hình thứ bậc (hierarchical)

+ Mô hình mạng lưới (network)

+ Mô hình quan hệ (relational)

Các vấn đề của lưu trữ

+ Sự dư thừa (redundance)

+ Sự nhất quán (consistence)

+ Tính toàn vẹn (integrity)

+ Sự an toàn (security)

+ Sự chia sẻ (sharing)

Các khái niệm cơ bản

+ Cơ sở dữ liệu (database)

+ Bảng (table) hoặc quan hệ (relation)

+ Bản ghi (record) hoặc dòng (row) hoặc bộ (tuple)

+ Trường (field) hoặc cột (column)

+ Mối quan hệ (relationship) được biểu hiện bằng bảng (table) hoặc khóa (key)

Mối quan hệ giữa các

+ Tại sao phải lưu mối quan hệ

+ Phương pháp lưu các mối quan hệ (dùng khóa, dùng bảng)

+ Khóa chính (primary key) và khóa ngoài (foreign key)

+ Vấn đề toàn vẹn tham chiếu (referential integrity)

Ngôn ngữ định nghĩa và xử lý dữ liệu

+ Thao tác trên các đối tượng như cơ sở dữ liệu, bảng, cột

+ Phần định nghĩa cơ sở dữ liệu và bảng: create, drop, alter

+ Phần cập nhật dữ liệu: insert, delete, update

+ Phần truy vấn dữ liệu: join, union, projection, selection, sort, group

+ Phần lập trình và thao tác: declare, set, use, go

Học SQL 14. Sắp xếp kết quả bằng ORDER BY trong SQL | Tự học câu lệnh SQL | Học SQL
Học SQL 14. Sắp xếp kết quả bằng ORDER BY trong SQL | Tự học câu lệnh SQL | Học SQL

Giải bài tập truy vấn cơ bản

Trong phần cuối của bài Truy vấn cơ bản trong SQL chúng ta có một số câu thực hành tự luyện, sẽ được giải đáp ngay dưới đây sử dụng database mẫu Howkteam:

  1. Truy xuất thông tin của Table Tham gia đề tài


SELECT * FROM dbo.THAMGIADT

  1. Lấy ra Mã khoa và Tên khoa tương ứng


SELECT MAKHOA, TENKHOA FROM dbo.KHOA

  1. Lấy ra Mã GV, tên GV và họ tên người thân tương ứng


SELECT GV.MAGV, HOTEN, NT.TEN FROM dbo.GIAOVIEN AS GV, dbo.NGUOITHAN AS NT

  1. Lấy ra Mã GV, tên GV và tên khoa tương ứng mà giáo viên đó làm việc. (Gợi ý: Bộ môn nằm trong khoa)


SELECT gv.MAGV, gv.HOTEN, k.TENKHOA FROM dbo.GIAOVIEN AS GV,dbo.BOMON AS BM, dbo.KHOA AS K

Nếu đây là đáp án của bạn thì chúc mừng, bạn đã hoàn thành bài tập! Tuy nhiên, nếu bạn để ý, chúng ta có chút vấn đề nho nhỏ.

Theo dữ liệu sẵn có tại database Howkteam ta thấy mỗi giáo viên được đại diện bằng MaGV chỉ tương ứng với 0 – 3 Tên người thân.

Và mỗi MaGV chỉ ứng với một MaBM, Mỗi MaBM ứng với một MaKhoa.

Nhưng kết quả của câu 3 và 4 lại là tích Descartes đáp án mà bạn truy vấn được.

Vậy để có kết quả đúng có phải cần có điều kiện ràng buộc trong câu truy vấn? Cùng tìm hiểu cấu trúc câu truy vấn có điều kiện nào!

Lọc khi có nhiều hơn một điều kiện

Với lọc khi có nhiều hơn một điều kiện, ta có thể sử dụng toán tử AND và toán tử OR.

  • Toán tử AND.

Toán tử AND nhằm kết hợp các điều kiện với nhau.

Cú pháp của AND:

WHERE Condition 1 AND Condition 2,…

  • Condition 1, Condition 2: Điều kiện kết hợp.

Ví dụ: Từ bảng SalesLT.Product thuộc bộ dữ liệu adventureworks. Truy vấn các cột Name, Color, StandardCost, Weight. Với điều kiện cột StandardCost >= 1000 và cột Weight > 300.

  • Toán tử OR.

Toán tử OR nhằm chọn hoặc thoả mãn điều kiện 1 hoặc điều kiện 2.

Cú pháp của AND:

WHERE Condition 1 OR Condition 2,…

  • Condition 1, Condition 2: Điều kiện 1 hoặc điều kiện 2.

Ví dụ: Từ bảng SalesLT.Product thuộc bộ dữ liệu adventureworks. Truy vấn các cột Name, Color, StandardCost, Weight. Với điều kiện cột StandardCost >= 1000 hoặc cột Weight > 300.

  • Trong SQL, mặc định cụm điều kiện AND sẽ được thực hiện trước OR.

Ví dụ: Từ bảng SalesLT.Product thuộc bộ dữ liệu adventureworks. Truy vấn các cột Name, Color, StandardCost, Weight. Với điều kiện cột StandardCost > 1000 hoặc cột Weight > 300 và StandardCost > 2000.

Giải thích câu lệnh truy vấn:

  • FROM: Dữ liệu được lấy từ bảng SalesLT.Product.
  • WHERE: Lọc bản ghi thoả mãn hoặc StandardCost >1000 hoặc cột Weight > 300 và StandardCost > 2000.

Trên thực tế, SQL sẽ chạy truy vấn điều kiện cột Weight > 300 và StandardCost > 2000, sau đó mới truy vấn điều kiện cột StandardCost >1000.

Khóa Học SQL Server - Bài 13. Kết hợp điều kiện bằng toán tử AND, OR, NOT trong SQL
Khóa Học SQL Server – Bài 13. Kết hợp điều kiện bằng toán tử AND, OR, NOT trong SQL

Database mẫu

Để thao tác tốt với bài này, chúng ta sử dụng database HowKteam sau:


-- 1/ Tạo DB + Sử dụng DB Create Database HowKteam Go Use HowKteam Go -- 2/ Tạo các table + Khoá chính Create Table THAMGIADT ( MAGV nchar(3), MADT nchar(4), STT int, PHUCAP float, KETQUA nvarchar(10), Primary Key (MAGV,MADT,STT) ) go Create Table KHOA ( MAKHOA nchar (4), TENKHOA nvarchar (50), NAMTL int, PHONG char(3), DIENTHOAI char(10), TRUONGKHOA nchar(3), NGAYNHANCHUC datetime, primary key (MAKHOA) ) go create table BOMON ( MABM nchar(4), TENBM nchar (50), PHONG char(3), DIENTHOAI char(11), TRUONGBM nchar(3), MAKHOA nchar (4), NGAYNHANCHUC date, primary key (MABM) ) go create table CONGVIEC ( MADT nchar(4), SOTT int, TENCV nvarchar(50), NGAYBD datetime, NGAYKT datetime, primary key (MADT,SOTT) ) go create table DETAI ( MADT nchar(4), TENDT nvarchar(50), CAPQL nchar(20), KINHPHI float, NGAYBD date, NGAYKT date, MACD nchar(4), GVCNDT nchar(3), primary key (MADT) ) go create table CHUDE ( MACD nchar(4), TENCD nvarchar(30), primary key (MACD) ) go 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) ) go create table NGUOITHAN ( MAGV nchar(3), TEN nchar(12), NGSINH datetime, PHAI nchar(3), primary key (MAGV,TEN) ) go create table GV_DT ( MAGV nchar(3), DIENTHOAI char (10), primary key (MAGV,DIENTHOAI) ) go -- 3/ Tạo khoá ngoại --Tạo khoá ngoại ở bảng THAMGIADT Alter table THAMGIADT add constraint FK_HG1_MADT foreign key (MADT, STT) references CONGVIEC(MADT,SOTT) go --Tạo khóa ngoại ở bảng CONGVIEC Alter table CONGVIEC add constraint FK_HG2_MADT foreign key (MADT) references DETAI(MADT) go --Tạo khóa ngoại ở bảng DETAI Alter table DETAI add constraint FK_HG3_MACD foreign key (MACD) references CHUDE(MACD) go --Tạo khóa ngoại ở bảng DETAI Alter table DETAI add constraint FK_HG4_GVCNDT foreign key (GVCNDT) references GIAOVIEN(MAGV) go --Tạo khóa ngoại ở bảng THAMGIADT Alter table THAMGIADT add constraint FK_HG5_MAGV foreign key (MAGV) references GIAOVIEN(MAGV) go --Tạo khóa ngoại ở bảng GIAOVIEN Alter table GIAOVIEN add constraint FK_HG6_GVQLCM foreign key (GVQLCM) references GIAOVIEN(MAGV) go --Tạo khóa ngoại ở bảng KHOA Alter table KHOA add constraint FK_HG7_TRUONGKHOA foreign key (TRUONGKHOA) references GIAOVIEN(MAGV) go --Tạo khóa ngoại ở bảng NGUOITHAN Alter table NGUOITHAN add constraint FK_HG8_MAGV foreign key (MAGV) references GIAOVIEN(MAGV) go --Tạo khóa ngoại ở bảng GIAOVIEN Alter table GIAOVIEN add constraint FK_HG9_MABM foreign key (MABM) references BOMON(MABM) go --Tạo khóa ngoại ở bảng BOMON Alter table BOMON add constraint FK_HG10_MAKHOA foreign key (MAKHOA) references KHOA(MAKHOA) go --Tạo khóa ngoại ở bảng BOMON Alter table BOMON add constraint FK_HG11_TRUONGBM foreign key (TRUONGBM) references GIAOVIEN(MAGV) go --Tạo khóa ngoại ở bảng GV_DT Alter table GV_DT add constraint FK_HG12_MAGV foreign key (MAGV) references GIAOVIEN(MAGV) go -- 4/ Nhập data --Nhập data cho bảng CHUDE Insert Into CHUDE(MACD,TENCD) values ('NCPT', N'Nghiên cứu phát triển') Insert Into CHUDE(MACD,TENCD) values ('QLGD', N'Quản lý giáo dục') Insert Into CHUDE(MACD,TENCD) values ('UDCN', N'Ứng dụng công nghệ') go --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 --Nhập data cho bảng DETAI Insert Into DETAI(MADT,TENDT,CAPQL,KINHPHI,NGAYBD,NGAYKT,MACD,GVCNDT) values ('001',N'HTTT quản lý các trường ĐH',N'ĐHQG',20.0,'2007-10-20','2008-10-20',N'QLGD','002') Insert Into DETAI(MADT,TENDT,CAPQL,KINHPHI,NGAYBD,NGAYKT,MACD,GVCNDT) values ('002',N'HTTT quản lý giáo vụ cho một Khoa',N'Trường',20.0,'2000-10-12','2001-10-12',N'QLGD','002') Insert Into DETAI(MADT,TENDT,CAPQL,KINHPHI,NGAYBD,NGAYKT,MACD,GVCNDT) values ('003',N'Nghiên cứu chế tạo sợi Nanô Platin',N'ĐHQG',300.0,'2008-05-15','2010-05-15',N'NCPT','005') Insert Into DETAI(MADT,TENDT,CAPQL,KINHPHI,NGAYBD,NGAYKT,MACD,GVCNDT) values ('004',N'Tạo vật liệu sinh học bằng màng ối người',N'Nhà nước',100.0,'2007-01-01','2009-12-31',N'NCPT','004') Insert Into DETAI(MADT,TENDT,CAPQL,KINHPHI,NGAYBD,NGAYKT,MACD,GVCNDT) values ('005',N'Ứng dụng hóa học xanh',N'Trường',200.0,'2003-10-10','2004-12-10',N'UDCN','007') Insert Into DETAI(MADT,TENDT,CAPQL,KINHPHI,NGAYBD,NGAYKT,MACD,GVCNDT) values ('006',N'Nghiên cứu tế bào gốc',N'Nhà nước',4000.0,'2006-10-12','2009-10-12',N'NCPT','004') Insert Into DETAI(MADT,TENDT,CAPQL,KINHPHI,NGAYBD,NGAYKT,MACD,GVCNDT) values ('007',N'HTTT quản lý thư viện ở các trường ĐH',N'Trường',20.0,'2009-05-10','2010-05-10',N'QLGD','001') go --Nhập data cho bảng CONGVIEC Insert Into CONGVIEC(MADT,SOTT,TENCV,NGAYBD,NGAYKT) values ('001',1,N'Khởi tạo và Lập kế hoạch','2007-10-20','2008-12-20') Insert Into CONGVIEC(MADT,SOTT,TENCV,NGAYBD,NGAYKT) values ('001',2,N'Xác định yêu cầu','2008-12-21','2008-03-21') Insert Into CONGVIEC(MADT,SOTT,TENCV,NGAYBD,NGAYKT) values ('001',3,N'Phân tích hệ thống','2008-03-22','2008-05-22') Insert Into CONGVIEC(MADT,SOTT,TENCV,NGAYBD,NGAYKT) values ('001',4,N'Thiết kế hệ thống','2008-05-23','2008-06-23') Insert Into CONGVIEC(MADT,SOTT,TENCV,NGAYBD,NGAYKT) values ('001',5,N'Cài đặt thử nghiệm','2008-06-24','2008-10-20') Insert Into CONGVIEC(MADT,SOTT,TENCV,NGAYBD,NGAYKT) values ('002',1,N'Khởi tạo và lập kế hoạch','2009-05-10','2009-07-10') Insert Into CONGVIEC(MADT,SOTT,TENCV,NGAYBD,NGAYKT) values ('002',2,N'Xác định yêu cầu','2009-07-11','2009-10-11') Insert Into CONGVIEC(MADT,SOTT,TENCV,NGAYBD,NGAYKT) values ('002',3,N'Phân tích hệ thống','2009-10-12','2009-12-20') Insert Into CONGVIEC(MADT,SOTT,TENCV,NGAYBD,NGAYKT) values ('002',4,N'Thiết kế hệ thống','2009-12-21','2010-03-22') Insert Into CONGVIEC(MADT,SOTT,TENCV,NGAYBD,NGAYKT) values ('002',5,N'Cài đặt thử nghiệm','2010-03-23','2010-05-10') Insert Into CONGVIEC(MADT,SOTT,TENCV,NGAYBD,NGAYKT) values ('006',1,N'Lấy mẫu','2006-10-20','2007-02-20') Insert Into CONGVIEC(MADT,SOTT,TENCV,NGAYBD,NGAYKT) values ('006',2,N'Nuôi cấy','2007-02-21','2008-09-21') go --Nhập data cho bảng THAMGIADT Insert Into THAMGIADT(MAGV,MADT,STT,PHUCAP) values ('001','002',1,0.0) Insert Into THAMGIADT(MAGV,MADT,STT,PHUCAP) values ('001','002',2,2.0) Insert Into THAMGIADT(MAGV,MADT,STT,PHUCAP,KETQUA) values ('002','001',4,2.0,N'Đạt') Insert Into THAMGIADT(MAGV,MADT,STT,PHUCAP,KETQUA) values ('003','001',1,1.0,N'Đạt') Insert Into THAMGIADT(MAGV,MADT,STT,PHUCAP,KETQUA) values ('003','001',2,0.0,N'Đạt') Insert Into THAMGIADT(MAGV,MADT,STT,PHUCAP,KETQUA) values ('003','001',4,1.0,N'Đạt') Insert Into THAMGIADT(MAGV,MADT,STT,PHUCAP) values ('003','002',2,0.0) Insert Into THAMGIADT(MAGV,MADT,STT,PHUCAP,KETQUA) values ('004','006',1,0.0,N'Đạt') Insert Into THAMGIADT(MAGV,MADT,STT,PHUCAP,KETQUA) values ('004','006',2,1.0,N'Đạt') Insert Into THAMGIADT(MAGV,MADT,STT,PHUCAP,KETQUA) values ('006','006',2,1.5,N'Đạt') Insert Into THAMGIADT(MAGV,MADT,STT,PHUCAP) values ('009','002',3,0.5) Insert Into THAMGIADT(MAGV,MADT,STT,PHUCAP) values ('009','002',4,1.5) go --Nhập data cho bảng KHOA Insert Into KHOA(MAKHOA,TENKHOA,NAMTL,PHONG,DIENTHOAI,TRUONGKHOA,NGAYNHANCHUC) values (N'CNTT',N'Công nghệ thông tin',1995,'B11','0838123456','002','2005-02-20') Insert Into KHOA(MAKHOA,TENKHOA,NAMTL,PHONG,DIENTHOAI,TRUONGKHOA,NGAYNHANCHUC) values (N'HH',N'Hóa học',1980,'B41','0838456456','007','2001-10-15') Insert Into KHOA(MAKHOA,TENKHOA,NAMTL,PHONG,DIENTHOAI,TRUONGKHOA,NGAYNHANCHUC) values (N'SH',N'Sinh học',1980,'B31','0838454545','004','2000-10-11') Insert Into KHOA(MAKHOA,TENKHOA,NAMTL,PHONG,DIENTHOAI,TRUONGKHOA,NGAYNHANCHUC) values (N'VL',N'Vật lý',1976,'B21','0838223223','005','2003-09-18') go --Nhập data cho bảng NGUOITHAN Insert Into NGUOITHAN(MAGV,TEN,NGSINH,PHAI) values ('001',N'Hùng','1990-01-14',N'Nam') Insert Into NGUOITHAN(MAGV,TEN,NGSINH,PHAI) values ('001',N'Thủy','1994-12-08',N'Nữ') Insert Into NGUOITHAN(MAGV,TEN,NGSINH,PHAI) values ('003',N'Hà','1998-09-03',N'Nữ') Insert Into NGUOITHAN(MAGV,TEN,NGSINH,PHAI) values ('003',N'Thu','1998-09-03',N'Nữ') Insert Into NGUOITHAN(MAGV,TEN,NGSINH,PHAI) values ('007',N'Mai','2003-03-26',N'Nữ') Insert Into NGUOITHAN(MAGV,TEN,NGSINH,PHAI) values ('007',N'Vy','2000-02-14',N'Nữ') Insert Into NGUOITHAN(MAGV,TEN,NGSINH,PHAI) values ('008',N'Nam','1991-05-06',N'Nam') Insert Into NGUOITHAN(MAGV,TEN,NGSINH,PHAI) values ('009',N'An','1996-08-19',N'Nam') Insert Into NGUOITHAN(MAGV,TEN,NGSINH,PHAI) values ('010',N'Nguyệt','2006-01-14',N'Nữ') go --Nhập data cho bảng GV_DT Insert Into GV_DT(MAGV,DIENTHOAI) values ('001','0838912112') Insert Into GV_DT(MAGV,DIENTHOAI) values ('001','0903123123') Insert Into GV_DT(MAGV,DIENTHOAI) values ('002','0913454545') Insert Into GV_DT(MAGV,DIENTHOAI) values ('003','0838121212') Insert Into GV_DT(MAGV,DIENTHOAI) values ('003','0903656565') Insert Into GV_DT(MAGV,DIENTHOAI) values ('003','0937125125') Insert Into GV_DT(MAGV,DIENTHOAI) values ('006','0937888888') Insert Into GV_DT(MAGV,DIENTHOAI) values ('008','0653717171') Insert Into GV_DT(MAGV,DIENTHOAI) values ('008','0913232323') go --Nhập data cho bảng BOMON Insert Into BOMON(MABM,TENBM,PHONG,DIENTHOAI,MAKHOA) values (N'CNTT',N'Công nghệ tri thức','B15','0838126126',N'CNTT') Insert Into BOMON(MABM,TENBM,PHONG,DIENTHOAI,MAKHOA) values (N'HHC',N'Hóa hữu cơ','B44','0838222222',N'HH') Insert Into BOMON(MABM,TENBM,PHONG,DIENTHOAI,MAKHOA) values (N'HL',N'Hóa Lý','B42','0838878787',N'HH') Insert Into BOMON(MABM,TENBM,PHONG,DIENTHOAI,TRUONGBM,MAKHOA,NGAYNHANCHUC) values (N'HPT',N'Hóa phân tích','B43','0838777777','007',N'HH','2007-10-15') Insert Into BOMON(MABM,TENBM,PHONG,DIENTHOAI,TRUONGBM,MAKHOA,NGAYNHANCHUC) values (N'HTTT',N'Hệ thống thông tin','B13','0838125125','002',N'CNTT','2004-09-20') Insert Into BOMON(MABM,TENBM,PHONG,DIENTHOAI,TRUONGBM,MAKHOA,NGAYNHANCHUC) values (N'MMT',N'Mạng máy tính','B16','0838676767','001',N'CNTT','2005-05-15') Insert Into BOMON(MABM,TENBM,PHONG,DIENTHOAI,MAKHOA) values (N'SH',N'Sinh hóa','B33','0838898989',N'SH') Insert Into BOMON(MABM,TENBM,PHONG,DIENTHOAI,MAKHOA) values (N'VLĐT',N'Vật lý điện tử','B23','0838234234',N'VL') Insert Into BOMON(MABM,TENBM,PHONG,DIENTHOAI,TRUONGBM,MAKHOA,NGAYNHANCHUC) values (N'VLUD',N'Vật lý ứng dụng','B24','0838454545','005',N'VL','2006-02-18') Insert Into BOMON(MABM,TENBM,PHONG,DIENTHOAI,TRUONGBM,MAKHOA,NGAYNHANCHUC) values (N'VS',N'Vi Sinh','B32','0838909090','004',N'SH','2007-01-01') 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

Ví dụ về câu lệnh điều kiện WHERE

Câu lệnh SQL bên dưới lựa chọn tất cả khách hàng đến từ quốc gia “Mexico”, trong bảng “Customers”:

Ví dụ


SELECT * FROM Customers WHERE Country='Mexico';

Kết quả (dựa vào mẫu 5 bản ghi ở trên):

CustomerID CustomerName ContactName Address City PostalCode Country
Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
Học SQL 16. Câu lệnh UPDATE trong SQL
Học SQL 16. Câu lệnh UPDATE trong SQL

Ví dụ

  • Cú pháp 1:

DECLARE @ngay_sinh date = CAST(‘1970-01-13′ AS date) DECLARE @tuoi tinyint DECLARE @thong_bao nvarchar(100) = N’Bạn còn trẻ’ SET @tuoi = YEAR(GETDATE()) – YEAR(@ngay_sinh) IF @tuoi >= 50 BEGIN SET @thong_bao = N’Bạn đã già’ PRINT CONCAT(N’Tuổi: ‘,@tuoi) PRINT @thong_bao END

  • Cú pháp 2:

DECLARE @ngay_sinh date = CAST(‘1971-01-13′ AS date) DECLARE @tuoi tinyint DECLARE @thong_bao nvarchar(100) SET @tuoi = YEAR(GETDATE()) – YEAR(@ngay_sinh) IF @tuoi >= 50 BEGIN SET @thong_bao = N’Bạn đã già’ PRINT CONCAT(N’Tuổi: ‘,@tuoi) PRINT @thong_bao END ELSE BEGIN SET @thong_bao = N’Bạn còn trẻ’ PRINT CONCAT(N’Tuổi: ‘,@tuoi) PRINT @thong_bao END

Trong các bài viết trước,


BAC


đã giới thiệu đến bạn đọc câu lệnh lấy dữ liệu trong SQL là SELECT. Tuy nhiên, nếu chỉ dùng SELECT thì việc lấy dữ liệu khá hạn chế và không thực sự chính xác. Vì thế, chúng ta sẽ cần thêm một mệnh đề điều kiện để lấy được những dữ liệu đúng nhu cầu công việc.

Mệnh đề WHERE trong SQL

Mệnh đề WHERE được dùng để lọc các bản ghi.

Nó thường được dùng để chỉ trích xuất các bản ghi đáp ứng những điều kiện cụ thể.


Lưu ý

: Mệnh đề WHERE chỉ được sử dụng trong câu lệnh SELECT, nó cũng được dùng trong UPDATE, DELETE,…!.

Ví dụ về mệnh đề WHERE

Để thực hiện ví dụ này, bạn cần nhập cơ sở dữ liệu mẫu Northwind vào SQL Server Management Studio. Hãy xem bài viết hướng dẫn ngay dưới đây:


Tham khảo:

Hướng dẫn tải và cài đặt dữ liệu mẫu Northwind trong SQL Server Management Studio

Câu lệnh SQL dưới đây sẽ chọn tất cả các khách hàng đến từ quốc gia Mexico trong bảng Customers:

SELECT * FROM Customers

WHERE Country = ‘Mexico’;

Các trường chữ và các trường số

SQL yêu cầu dấu ngoặc đơn xung quanh các giá trị văn bản (hầu hết các hệ thống cơ sở dữ liệu cũng sẽ cho phép dấu ngoặc kép).

Tuy nhiên, các trường số không được đặt trong dấu ngoặc kép.

Ví dụ:

SELECT * FROM Categories

WHERE CategoryID=1;

Các toán tử trong mệnh đề WHERE

Bạn có thể sử dụng các toán tử này để lấy được những dữ liệu mong muốn.

  • (=) dấu bằng
  • (>) dấu lớn hơn
  • (<) dấu nhỏ hơn
  • (>=) dấu lớn hơn hoặc bằng
  • (<=) dấu nhỏ hơn hoặc bằng
  • (<>) dấu không bằng, trong một vài phiên bản SQL có thể dùng dấu (!=)
  • BETWEEN – giữa một phạm vi nhất định
  • LIKE – Tìm kiếm một mẫu
  • IN – Để chỉ định nhiều giá trị có thể có cho một cột

Bây giờ, bạn đã biết chính xác cách mệnh đề WHERE được dùng trong SQL. Hãy khám phá bằng cách sử dụng các toán tử để lấy các phần dữ liệu mà bạn mong muốn. Trong một số trường hợp bạn có thể gặp lỗi do kiểu dữ liệu không phù hợp, chúng ta sẽ nhắc đến trong các bài viết khác sẽ được cập nhật tại website

bacs.vn

, đừng quên đón đọc.


Nguồn tham khảo:


https://www.w3schools.com/

Nhu cầu đào tạo doanh nghiệp


BAC

là đơn vị đào tạo BA đầu tiên tại Việt Nam. Đối tác chính thức của

IIBA

quốc tế. Ngoài các khóa học public,

BAC

còn có các khóa học in house dành riêng cho từng doanh nghiệp. Chương trình được thiết kế riêng theo yêu cầu của doanh nghiệp, giúp doanh nghiệp giải quyết những khó khăn và tư vấn phát triển.

Tham khảo chương trình đào tạo:

BAC – Biên soạn và tổng hợp nội dung

Trong các bài viết trước,


BAC


đã giới thiệu đến bạn đọc câu lệnh lấy dữ liệu trong SQL là SELECT. Tuy nhiên, nếu chỉ dùng SELECT thì việc lấy dữ liệu khá hạn chế và không thực sự chính xác. Vì thế, chúng ta sẽ cần thêm một mệnh đề điều kiện để lấy được những dữ liệu đúng nhu cầu công việc.

Mệnh đề WHERE trong SQL

Mệnh đề WHERE được dùng để lọc các bản ghi.

Nó thường được dùng để chỉ trích xuất các bản ghi đáp ứng những điều kiện cụ thể.


Lưu ý

: Mệnh đề WHERE chỉ được sử dụng trong câu lệnh SELECT, nó cũng được dùng trong UPDATE, DELETE,…!.

Ví dụ về mệnh đề WHERE

Để thực hiện ví dụ này, bạn cần nhập cơ sở dữ liệu mẫu Northwind vào SQL Server Management Studio. Hãy xem bài viết hướng dẫn ngay dưới đây:


Tham khảo:

Hướng dẫn tải và cài đặt dữ liệu mẫu Northwind trong SQL Server Management Studio

Câu lệnh SQL dưới đây sẽ chọn tất cả các khách hàng đến từ quốc gia Mexico trong bảng Customers:

SELECT * FROM Customers

WHERE Country = ‘Mexico’;

Các trường chữ và các trường số

SQL yêu cầu dấu ngoặc đơn xung quanh các giá trị văn bản (hầu hết các hệ thống cơ sở dữ liệu cũng sẽ cho phép dấu ngoặc kép).

Tuy nhiên, các trường số không được đặt trong dấu ngoặc kép.

Ví dụ:

SELECT * FROM Categories

WHERE CategoryID=1;

Các toán tử trong mệnh đề WHERE

Bạn có thể sử dụng các toán tử này để lấy được những dữ liệu mong muốn.

  • (=) dấu bằng
  • (>) dấu lớn hơn
  • (<) dấu nhỏ hơn
  • (>=) dấu lớn hơn hoặc bằng
  • (<=) dấu nhỏ hơn hoặc bằng
  • (<>) dấu không bằng, trong một vài phiên bản SQL có thể dùng dấu (!=)
  • BETWEEN – giữa một phạm vi nhất định
  • LIKE – Tìm kiếm một mẫu
  • IN – Để chỉ định nhiều giá trị có thể có cho một cột

Bây giờ, bạn đã biết chính xác cách mệnh đề WHERE được dùng trong SQL. Hãy khám phá bằng cách sử dụng các toán tử để lấy các phần dữ liệu mà bạn mong muốn. Trong một số trường hợp bạn có thể gặp lỗi do kiểu dữ liệu không phù hợp, chúng ta sẽ nhắc đến trong các bài viết khác sẽ được cập nhật tại website

bacs.vn

, đừng quên đón đọc.


Nguồn tham khảo:


https://www.w3schools.com/

Nhu cầu đào tạo doanh nghiệp


BAC

là đơn vị đào tạo BA đầu tiên tại Việt Nam. Đối tác chính thức của

IIBA

quốc tế. Ngoài các khóa học public,

BAC

còn có các khóa học in house dành riêng cho từng doanh nghiệp. Chương trình được thiết kế riêng theo yêu cầu của doanh nghiệp, giúp doanh nghiệp giải quyết những khó khăn và tư vấn phát triển.

Tham khảo chương trình đào tạo:

BAC – Biên soạn và tổng hợp nội dung

Huy Bui

6,484

19-04-2022

Cùng Cole điểm mặt 26 câu lệnh phổ biến trong câu lệnh sql, lưu về và dùng ngay nhé. Tham khảo khóa học SQL data analyst Cole tại đây: https://blog.cole.vn/khoa-hoc-sql-cho-data-analyst/

SELECT là lệnh được dùng để lấy kết quả từ một; hoặc nhiều bảng trong CSDL của SQL Server.

Cú pháp lệnh SELECT

Ở dạng đơn giản, cú pháp của lệnh SELECT như sau:

SELECT “biểu thức”

FROM “bảng”

[WHERE “điều kiện”];

Ở dạng đầy đủ, cú pháp của lệnh SELECT trong SQL Server sẽ là:

SELECT [ ALL | DISTINCT ]

[ TOP (gia_tri_dau) [ PERCENT ] [ WITH TIES ] ]

“Biểu thức”

FROM “bảng”

[WHERE “điều kiện”]

[GROUP BY “biểu thức”]

[HAVING “điều kiện”]

[ORDER BY “biểu thức” [ ASC | DESC ]];

Tên biến hoặc giá trị biến:

ALL: Tùy chọn. Trả lại tất cả các hàng phù hợp.

DISTINCT: Tùy chọn. Loại bỏ tất cả các giá trị trùng lặp khỏi bộ kết quả.

TOP (gia_tri_dau): Tùy chọn. Nếu chỉ định cụ thể sẽ trả về những giá trị đầu trong bộ kết quả dựa trên gia_tri_dau đã chon. Ví dụ TOP(10) sẽ trả về 10 hàng đầu tiên trong bộ kết quả.

PERCENT: Tùy chọn. Nếu chỉ định cụ thể thì các hàng đầu tiên dựa theo phần trăm trên bộ kết quả (chỉ định bằng gia_tri_dau). Ví dụ TOP(10) PERCENT sẽ trả về top 10% kết quả đầu tiên trong bộ kết quả.

WITH TIES: Tùy chọn. Nếu chỉ định cụ thể thì các hàng cố định ở cuối trong kết quả có giới hạn sẽ được trả về. Điều này có thể khiến cho số hàng trả về nhiều hơn biến TOP cho phép.

Biểu thức: Cột hay giá trị tính toán mà bạn muốn lấy về. Dùng * nếu muốn lấy tất cả các cột.

Bảng: Bảng mà bạn muốn lấy kết quả về. Phải có ít nhất 1 bảng được liệt kê trong lệnh FROM.

WHERE “điều kiện”: Tùy chọn. Điều kiện mà kết quả trả về phải đáp ứng được.

GROUP BY “biểu thức”: Tùy chọn. Thu thập dữ liệu từ nhiều bản ghi và nhóm kết quả theo một hoặc nhiều cột.

HAVING “điều kiện”: Tùy chọn. Dùng kết hợp với GROUP BY để giới hạn nhóm các hàng trả về khi điều kiện được đáp ứng là TRUE.

ORDER BY “biểu thức”: Tùy chọn. Được dùng để lọc bộ kết quả. ASC sẽ lọc theo thứ tự tăng dần và DESC sẽ lọc theo thứ tự giảm dần.

Trong SQL Server (Transact-SQL); mệnh đề DISTINCT được dùng để loại bỏ trùng lặp trong bộ kết quả trả về. Mệnh đề DISTINCT chỉ có thể dùng trong lệnh SELECT.

Cú pháp mệnh đề DISTINCT

SELECT DISTINCT “biểu thức”

FROM “bảng”

[WHERE “điều kiện”];

Tên biến hoặc giá trị biến

“biểu thức”

Cột hoặc giá trị tính toán mà bạn muốn lấy

“bảng”

Bảng dùng để lấy bản ghi. Phải có ít nhất 1 bảng trong mệnh đề FROM.

WHERE “điều kiện”

Tùy chọn. Điều kiện mà bản ghi phải đáp ứng để được chọn.

Lưu ý

Trong SQL Server; mệnh đề DISTINCT không bỏ qua giá trị NULL. Vậy nên; khi dùng mệnh đề này trong lệnh; kết quả trả về sẽ có cả giá trị NULL duy nhất.

Trong SQL Server (T-SQL); mệnh đề WHERE được dùng để lọc kết quả từ các lệnh SELECT; INSERT; UPDATE hoặc DELETE.

Cú pháp mệnh đề WHERE

WHERE “điều kiện”;

Tên các biến hoặc giá trị biến

Điều kiện – Là các điều kiện mà bản ghi phải đáp ứng được để được chọn.

Khi kết hợp 2 điều kiện này; cần phải nhớ dùng dấu ngoặc đơn để cơ sở dữ liệu biết được thứ tự thực hiện từng điều kiện.

Cú pháp kết hợp điều kiện AND và điều kiện OR

WHERE “điều kiện 1”

AND “điều kiện 2”

OR “điều kiện n”;

Tên biến và giá trị biến

điều kiện 1, điều kiện 2… điều kiện n

Các điều kiện được đánh giá để xác định xem bản ghi có được lựa chọn hay không.

Lưu ý:

Điều kiện IN được dùng trong SQL Server (Transact-SQL); để giảm thiểu việc phải sử dụng quá nhiều điều kiện OR trong các lệnh SELECT; INSERT; UPDATE hoặc DELETE.

Cú pháp điều kiện IN

biểu thức IN (giá trị 1, giá trị 2, … giá trị n);

Tên biến hoặc giá trị biến

biểu thức

Giá trị để kiểm tra

giá trị 1, giá trị 2, … giá trị n

Các giá trị để kiểm tra với biểu thức

Lưu ý

Trong SQL Server (Transact-SQL); điều kiện BETWEEN được dùng để lấy dữ liệu trong một khoảng; trong lệnh SELECT; INSERT; UPDATE hoặc DELETE.

Cú pháp điều kiện BETWEEN

bieu_thuc BETWEEN giatri1 AND giatri2 ;

Tên biến hoặc giá trị biến

bieu_thuc

cột hoặc trường thông tin

giatri1 và giatri2

các giá trị tạo nên khoảng mà bieu_thuc sẽ đối chiếu, bao gồm cả 2 giá trị đầu cuối.

Lưu ý

Điều kiện BETWEEN sẽ trả về tất cả các bản ghi mà bieu_thuc nằm trong khoảng từ giatri1 tới giatri2; bao gồm 2 giá trị đầu cuối.

Điều kiện LIKE trong SQL Server (Transact-SQL) cho phép dùng wildcard (các kí hiệu đại diện) trong mệnh đề WHERE ở các lệnh SELECT; INSERT; UPDATE và DELETE; dùng để đối sánh mẫu.

Cú pháp điều kiện LIKE

“biểu thức” LIKE “mẫu” [ ESCAPE ‘Escape_Character’ ]

Tên biến hoặc giá trị biến

biểu thức

Biểu thức kí tự như cột hoặc trường thông tin.

mẫu

BIểu thức kí tự có chứa đối chiếu mẫu. Các mẫu có thể chọn từ bảng dưới đây.

Escape Character

Tùy chọn. Tạm dịch là ký tự bỏ qua. Cho phép kiểm tra xem ký tự đại diện như % hay _ có được dùng theo đúng nghĩa đen (dưới dạng hằng số); chứ không được dùng như một kí tự đặc biệt.

Mệnh đề ORDER BY được dùng để lọc bản ghi trong bộ kết quả trả về của SQL Server. Mệnh đề này chỉ có thể dùng trong lệnh SELECT.

Cú pháp mệnh đề ORDER BY

SELECT “biểu thức”

FROM “bảng”

[WHERE “điều kiện”]

ORDER BY “biểu thức” [ ASC | DESC ];

Tên các biến và giá trị biến

Biểu thức – cột hoặc giá trị tính toán bạn muốn lấy.

Bảng – bảng mà bạn muốn dùng để lấy bản ghi. Phải có ít nhất 1 bảng trong mệnh đề FROM.

WHERE “điều kiện” – tùy chọn. Các điều kiện phải được đáp ứng thì bản ghi mới được chọn.

ASC – tùy chọn. Lọc kết quả theo thứ tự tăng dần của biểu thức (mặc định nếu không chỉ định rõ).

DESC – tùy chọn. Lọc kết quả theo thứ tự giảm dần của biểu thức.

Lưu ý:

Nếu không chọn cụ thể ASC hay DESC trong mệnh đề ORDER BY; thì kết quả sẽ mặc định được sắp xếp theo thứ tự tăng dần. Tương đương với ORDER BY “biểu thức” ASC.

Mệnh đề GROUP BY trong SQL Server cho phép bạn sắp xếp các hàng của truy vấn theo nhóm. Các nhóm được xác định bởi các cột mà bạn chỉ định trong mệnh đề GROUP BY. Thông thường; GROUP BY được sử dụng để tính tổng theo điều kiện; đếm bản ghi thỏa mãn điều kiện nào đó hoặc tìm dữ liệu MIN; MAX.

Cú pháp mệnh đề GROUP BY trong SQL Server

SELECT

bieu_thuc1, bieu_thuc2,… bieu_thuc_n,

ham_tong_hop (bieu_thuc)

FROM

ten_bang

[WHERE dieukien]

GROUP BY

bieu_thuc1,

bieu_thuc2,…;

Tên biến hoặc giá trị biến:

Hàm COUNT trong SQL Server dùng để đếm số lượng bản ghi (dữ liệu; hàng) có trong một bảng dữ liệu. Những giá trị NULL bỏ qua không tính.

Cú pháp hàm COUNT SQL Server

Để sử dụng hàm COUNT trong SQL Server; ta dùng cú pháp như sau:

SELECT COUNT(cot)

FROM bang

[WHERE dieukien];

Tham số:

Lưu ý:

Mệnh đề HAVING được dùng kết hợp với mệnh đề GROUP BY trong SQL Server (Transact-SQL): để giới hạn nhóm các hàng trả về; chỉ khi điều kiện được được đáp ứng là TRUE.

Cú pháp mệnh đề HAVING trong SQL Server

SELECT bieuthuc1, bieuthuc2, … bieuthuc_n,

ham_tong (bieuthuc)

FROM bang

[WHERE dieukien]

GROUP BY bieuthuc1, bieuthuc2, … bieuthuc_n

HAVING dieukien_having;

Tên biến hoặc giá trị biến

ham_tong

Có thể là các hàm như SUM, COUNT, MIN, MAX hoặc AVG.

bieuthuc1, bieuthuc2, … bieuthuc_n

Biểu thức không nằm bên trong hàm tổng và phải nằm trong mệnh đề GROUP BY.

WHERE dieukien

Tùy chọn. Các điều kiện mà bản ghi phải đáp ứng để được chọn.

HAVING dieukien_having

Đây là điều kiện thêm chỉ áp dụng với kết quả tổng để giới hạn các nhóm của những hàng được trả về. Chỉ các nhóm mà điều kiện được đánh giá là TRUE mới nằm trong bộ kết quả.

Lệnh CREATE TABLE trong SQL dùng để tạo một bảng mới. Việc tạo bảng mới cơ bản liên quan đến việc đặt tên cho bảng; xác định các cột của nó & kiểu dữ liệu của mỗi cột.

Cú pháp lệnh CREATE TABLE

Câu lệnh SQL CREATE TABLE có cú pháp như sau:

CREATE TABLE ten_bang(

cot1 kieu_du_kieu,

cot2 kieu_du_kieu,

cot3 kieu_du_kieu,

…..

cotN kieu_du_kieu,

PRIMARY KEY( mot hoac nhieu cot )

);

Trong SQL; lệnh DROP TABLE được dùng để xóa định nghĩa bảng và tất cả các dữ liệu; chỉ mục; ràng buộc; thông số của bảng.

Trước khi sử dụng lệnh DROP TABLE bạn phải xem xét; cân nhắc cẩn thận. Vì khi lệnh này được thực hiện; toàn bộ dữ liệu trong bảng sẽ bị xóa vĩnh viễn.

Cú pháp của lệnh DROP TABLE:

DROP TABLE ten_bang;

Câu lệnh CREATE INDEX được sử dụng để tạo chỉ mục trong bảng.

Các chỉ mục được sử dụng để lấy dữ liệu từ cơ sở dữ liệu nhanh hơn so với cách khác. Người dùng không thể nhìn thấy các chỉ mục; chúng chỉ được sử dụng để tăng tốc độ tìm kiếm / truy vấn.

Cú pháp CREATE INDEX

Tạo chỉ mục trên bảng. Các giá trị trùng lặp được phép:

CREATE INDEX index_name

ON table_name (column1, column2, …);

Cú pháp DROP INDEX

DROP INDEX ten_index;

Bạn nên cẩn thận trong khi xóa một chỉ mục. Vì khi đó hiệu suất có thể chậm hơn hoặc không được cải thiện.

Lệnh TRUNCATE TABLE được dùng để xóa tất cả bản ghi từ 1 bảng trong SQL Server. Lệnh này hoạt động tương tự như lệnh DELETE nhưng không có mệnh đề WHERE.

Cú pháp lệnh TRUNCATE TABLE trong SQL Server

TRUNCATE TABLE [ten_CSDL.] [ten_schema.] ten_bang

[ WITH (PARTITIONS (so_phanvung

| so _phanvung TO so _phanvung ) ] ;

Tên biến hoặc giá trị biến

ten_CSDL

Tùy chọn. Nếu được chỉ định thì đây là tên của cơ sở dữ liệu.

ten_scheme

Tùy chọn. Đây là tên của schema (tạm dịch là lược đồ hay không gian tên) mà bảng đó thuộc về.

ten_bang

Bảng mà bạn muốn xóa bản ghi.

WITH (PARTITIONS (so_phanvung | so _phanvung TO so _phanvung )

Tùy chọn và chỉ có thể dùng với bảng phân vùng (partition). Nếu được chỉ định, so_phanvung là số của vùng mà bạn muốn xóa trong bảng này. Để xóa nhiều vùng; dùng dấu phẩy phân tách các giá trị hoặc khoảng giá trị số phân vùng. Nếu dùng mệnh đề này với bảng không phân vùng thì SQL Server sẽ báo lỗi. Tính năng này không có trong tất cả các phiên bản của SQL Server.

Lưu ý

Trong SQL Server, lệnh ALTER TABLE được dùng để thêm cột; chỉnh sửa cột; xóa cột; đổi tên cột hoặc đổi tên bảng.

Cú pháp

ALTER TABLE ten_bang

ADD ten_cot dinh_nghia_cot;

Có thể dùng lệnh ALTER TABLE để đổi tên cột trong bảng. Có thể dùng sp_rename nhưng Microsoft khuyến khích xóa & tạo lại bảng; để kịch bản & các quy trình lưu trữ không bị hỏng.

Cú pháp

sp_rename ‘ten_bang.ten_cot_cu’, ‘ten_cot_moi’, ‘COLUMN’;

Cú pháp của lệnh INSERT INTO:

Lệnh INSERT INTO có 2 cú pháp cơ bản, chúng ta sẽ cùng tìm hiểu cả 2 cú pháp trong bài này.

Lệnh INSERT INTO, cú pháp 1:

INSERT INTO TEN_BANG (cot1, cot2, cot3,…cotN)

VALUES (gia_tri1, gia_tri2, gia_tri3,…gia_triN);

Ở đây, cot1, cot2, cot3,… cotN là tên các cột trong bảng mà bạn muốn chèn thêm dữ liệu. gia_tri1, gia_tri2, gia_tri3,…gia_triN là giá trị cần thêm vào tương ứng với các cột.

Nếu bạn muốn thêm giá trị vào tất cả các cột trong bảng thì có thể sử dụng lệnh INSERT INTO với cú pháp 2 dưới đây:

INSERT INTO TEN_BANG

VALUES (gia_tri1, gia_tri2, gia_tri3,…gia_triN);

Bạn thấy sự khác biệt không? Ở cú pháp 2; bạn không cần liệt kê tên các cột trong bảng. Chỉ cần đảm bảo rằng thứ tự các giá trị bạn muốn thêm vào đúng với thứ tự của các cột trong bảng là được.

Trong SQL Server (Transact-SQL); lệnh UPDATE được dùng để cập nhật các bản ghi hiện có trên một bảng trong cơ sở dữ liệu của SQL Server. Có 3 cú pháp cho lệnh UPDATE. Phụ thuộc vào việc bạn cập nhật theo kiểu truyền thống hay cập nhật một bảng bằng dữ liệu từ 1 bảng khác.

Cú pháp lệnh UPDATE

UPDATE bang

SET cot1 = bieuthuc1,

cot2 = bieuthuc2,

[WHERE dieu_kien] ;

Cú pháp cập nhật 1 bảng bằng dữ liệu từ 1 bảng khác trong SQL Server, kết hợp lệnh SELECT.

UPDATE bang1

SET cot1 = (SELECT bieuthuc1

FROM bang2

WHERE dieu_kien)

[WHERE dieu_kien];

Hoặc cú pháp khác để cập nhật một bảng bằng dữ liệu từ 1 bảng khác

UPDATE bang1

SET bang1.cot = bang2.bieuthuc1

FROM bang1

INNER JOIN bang2

ON (bang1.cot1 = bang2.cot1)

[WHERE dieu_kien];

Tên biến hoặc giá trị biến

cot1, cot2

Cột cần cập nhật.

bieuthuc1, bieuthuc2

Giá trị mới cần chỉ định cho cot1, cot2. Cot1 sẽ gán giá trị của bieuthuc1, cot2 gán giá trị của bieuthuc2…

WHERE dieu_kien

Tùy chọn. Điều kiện phải đáp ứng để bản ghi được cập nhật.

Lệnh DELETE trong SQL Server (Transact-SQL) được dùng để xóa một hoặc nhiều bản ghi (hàng) từ một bảng trong SQL Server.

Bạn có thể xóa những bản ghi thỏa mãn điều kiện nhất định hoặc xóa toàn bộ bản ghi trong bảng một cách dễ dàng với DELETE.

Cú pháp lệnh DELETE trong SQL Server

Cú pháp đơn giản của lệnh DELETE như sau:

DELETE FROM bang

[WHERE dieu_kien];

Cú pháp đầy đủ của lệnh DELETE như dưới đây:

DELETE [ TOP (giatri_dau) [PERCENT] ]

FROM bang

[WHERE dieu_kien];

Tên biến hoặc giá trị biến:

bang: Bảng cần xóa bản ghi.

WHERE dieu_kien: Tùy chọn. Điều kiện mà bản ghi phải đáp ứng để bị xóa.

TOP (giatri_dau): Tùy chọn. Nếu được nêu ra cụ thể sẽ chèn giá trị đầu của hàng dựa trên giatri_dau. Ví dụ TOP(10) sẽ chèn 10 hàng đầu tiên từ bộ kết quả.

PERCENT: Tùy chọn. Nếu được nêu ra cụ thể thì các hàng đầu tiên dựa trên số phần trăm giatri_dau của bộ kết quả. Ví dụ như TOP(10) PERCENT sẽ chèn 10% giá trị đầu trong bộ kết quả.

Lưu ý:

* Lưu ý mệnh đề WHERE trong câu lệnh DELETE. Mệnh đề WHERE chỉ định (các) bản ghi nào nên được xóa. Nếu bạn bỏ qua mệnh đề WHERE; tất cả các bản ghi trong bảng sẽ bị xóa!

* Không cần liệt kê các trường trong lệnh DELETE vì bạn sẽ xóa toàn bộ hàng trong bảng.

Cú pháp của lệnh CREATE DATABASE

CREATE DATABASE ten_co_so_du_lieu;

Lưu ý: Trong một RDBMS thì ten_co_so_du_lieu luôn luôn là duy nhất.

Cú pháp của lệnh DROP DATABASE trong SQL

DROP DATABASE ten_co_so_du_lieu;

ten_co_so_du_lieu luôn là duy nhất trong RDBMS.

Khi có nhiều cơ sở dữ liệu trong SQL Schema; để bắt đầu một hành động nào đó bạn cần chọn cơ sở dữ liệu để thực thi những hành động đó.

Lệnh USE trong SQL được sử dụng để chọn bất kỳ cơ sở dữ liệu nào đã có trong SQL Schema.

Cú pháp của lệnh USE trong SQL

USE ten_co_so_du_lieu;

ten_co_so_du_lieu luôn phải là duy nhất trong RDBMS.

Transaction kết thúc với một trong hai câu lệnh COMMIT hoặc ROLLBACK.

Khi một Transaction hoàn chỉnh được hoàn thành thì lệnh COMMIT phải được gọi ra. Lệnh này sẽ giúp lưu những thay đổi tới cơ sở dữ liệu

Cú pháp cơ bản của lệnh COMMIT:

COMMIT;

Lệnh ROLLBACK là lệnh điều khiển Transaction được sử dụng để trao trả Transaction về trạng thái trước khi có các thay đổi mà chưa được lưu tới Database. Lệnh ROLLBACK chỉ có thể được sử dụng để undo các Transaction trước khi xác nhận bằng lệnh Commit hay Rollback cuối cùng.

Cú pháp cơ bản của lệnh ROLLBACK:

ROLLBACK;

Ngoài 26 câu lệnh sql bên trên, các bạn cũng có thể tìm hiểu một số mệnh đề khác và thông tin lịch sử của ngôn ngữ sql đa-zi năng này nhé.

Câu lệnh SELECT là một câu lệnh quen thuộc trong SQL, được sử dụng để lấy về các kết quả ở các bảng trong CSDL ở SQL server. Cùng tìm hiểu chi tiết hơn về câu lệnh này nhé.

Mục lục

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ê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.

Nội dung bài viết

Khóa học

Với hệ thống nhỏ, chúng ta hoàn toàn có thể lưu trữ dữ liệu bằng file để khi tắt ứng dụng dữ liệu chúng ta vẫn còn được lưu giữ. Nhưng với hệ thống lớn, truy vấn tìm kiếm, thao tác với dữ liệu trên file không còn dễ dàng và hiệu quả nữa. Và SQL ra đời để giải quyết vấn đề đó.

Chúng ta cùng nhau tìm hiểu về SQL và SQL Server thông qua serial HƯỚNG DẪN SỬ DỤNG SQL SERVER nhé!

Đánh giá

Bình luận

–BT:–1. Xuất ra thông tin giáo viên và Giáo viên quản lý chủ nhiệm của người đóSELECT GV1.*, GV.*FROM dbo.GIAOVIEN AS GV, dbo.GIAOVIEN AS GV1WHERE GV1.GVQLCM = GV.MAGV–2. Xuất ra số lượng giáo viên của khoa CNTTSELECT COUNT(*) AS N’Số lượng giáo viên’FROM dbo.GIAOVIEN AS GV, dbo.BOMON AS BM, dbo.KHOA AS KWHERE GV.MABM = BM.MABM AND BM.MAKHOA = K.MAKHOA–3. Xuất ra thông tin của giáo viên và đề tài người đó tham gia khi mà kết quả là đạtSELECT GV.HOTEN, DT.TENDTFROM dbo.GIAOVIEN AS GV, dbo.THAMGIADT AS TG, dbo.DETAI AS DTWHERE GV.MAGV = TG.MAGV AND TG.MADT = DT.MADT AND TG.KETQUA = N’Đạt’

–Xuất ra thông tin giáo viên và Giáo viên quản lý chủ nhiệm của người đóselect gv.magv, gv.hoten,gv.ngsinh,gv.diachi ,gv2.magv as N’Mã gvqlcm’,gv2.hoten as N’Giáo viên chủ nghiệm’ from giaovien as gv,giaovien as gv2where gv.magv=gv2.gvqlcm–Xuất ra số lượng giáo viên của khoa CNTTselect count(*) as N’Gv khoa CNTT’from giaovien as gvjoin bomon as bm on bm.mabm=gv.mabmjoin khoa as K on k.makhoa=bm.makhoawhere K.makhoa=’CNTT’–Xuất ra thông tin giáo viên và đề tài người đó tham gia khi mà kết quả là đạtselect gv.magv,gv.hoten,dt.tendt from giaovien as gvjoin thamgiadt as tg on tg.magv=gv.magvjoin detai as dt on tg.madt=dt.madtwhere tg.ketqua=N’Đạt’

–Bài tập–1. Xuất ra thông tiN giáo viên và giáo viên quản lý chủ nhiệm của người đóSELECT GV.MAGV AS N’Mã giáo viên’, GV.HOTEN AS N’Tên giáo viên’, GVCN.MAGV AS N’Mã giáo viên chủ nhiệm’, GVCN.HOTEN AS N’Tên giáo viên chủ nhiệm’FROM dbo.GIAOVIEN AS GV, dbo.GIAOVIEN AS GVCNWHERE GV.GVQLCM = GVCN.MAGVGo

–2. Xuất ra số lượng giáo viên của khoa cnttSELECT COUNT(*)FROM dbo.GIAOVIEN AS GV, dbo.BOMON AS BM, dbo.KHOA AS KHWHERE GV.MABM = BM.MABMAND BM.MAKHOA = KH.MAKHOAAND BM.MAKHOA = ‘SH’Go

–3. Xuất ra thông tin giáo viên và đề tài người đó tham gia khi mà kết quả là đạtSELECT GV.MAGV, GV.HOTEN, DT.TENDT, TGDT.KETQUAFROM dbo.GIAOVIEN AS GV, dbo.THAMGIADT AS TGDT, dbo.DETAI AS DTWHERE GV.MAGV = TGDT.MAGVAND TGDT.MADT = DT.MADTAND TGDT.KETQUA = N’Đạt’Go

  1. Xuất ra thông tin giáo viên và Giáo viên quản lý chủ nhiệm của người đó

SELECT GV1.HOTEN AS ‘TEN GIAO VIEN’,GV2.HOTEN AS ‘GIAO VIEN QUAN LI BO MON’FROM DBO.GIAOVIEN AS GV1, DBO.GIAOVIEN AS GV2, DBO.BOMON AS BM WHERE GV1.MABM=BM.MABM AND GV2.MAGV=BM.TRUONGBM

Kteam ơi. mình có thử đưa ra để bài ntn và làm. vì sao nó lại trùng lặp kết quả ạ?. Mình đang không biết lỗi ở đâu

— Truy xuất bảng tham gia đề tài lấy ra mã giáo viên => tên đề tài => tên giáo viên => lương => tên khoa => trưởng khoaselect GV.magv As N’Mã Giáo viên’,pdt.madt as N’Mã đề tài’,GV.HOTEN as N’Tên giáo viên’,DT.tenDT as N’Tên Đề Tài’,GV.luong as N’Lương tháng’,k.TENKHOA as N’Tên khoa’,k.TRUONGKHOA as N’Số trưởng Khoa’from dbo.THAMGIADT as pdt, dbo.DETAI as DT, dbo.GIAOVIEN as GV, dbo.KHOA as K, dbo.BOMON as BMwhereGv.magv = pdt.MAGV andpdt.madt = dt.madt andgv.mabm = bm.mabm andbm.makhoa = k.makhoa

Lệnh IF…ELSE trong SQL Server

If trong SQL Server là gì? If Else trong SQL Server được dùng như thế nào? Hãy cùng Quantrimang.com tìm hiểu nhé!

Nếu hỏi ngành nghề nào có mức lương cao và được “săn đón” nhất hiện nay, chắc chắn lập trình là câu trả lời bạn nhận được nhiều nhất. Công nghệ thông tin phát triển rõ ràng đã khiến cuộc sống của con người thoải mái, dễ chịu và đạt được nhiều thành tựu tiến bộ hơn. Chính vì thế, ngày càng có nhiều người muốn tham gia vào lĩnh vực này.

Lập trình thực sự là một bộ môn khó, tuy nhiên, nếu bạn thực sự đam mê, vẫn hoàn toàn có thể chinh phục được nó. Chỉ cần chọn một ngôn ngữ mà bạn thực sự thích, sau đó bắt đầu tìm hiểu từ những kiến thức cơ bản nhất.

Dù lựa chọn ngôn ngữ lập trình nào, bạn cũng đều nên biết về SQL Server. Đây là một sản phẩm của Microsoft. Nó không phải là một ngôn ngữ lập trình, mà là một phần mềm hệ thống quản trị cơ sở dữ liệu quan hệ do Microsoft phát triển vào năm 1988.

Hiện SQL Server được sử dụng cho việc tạo, duy trì và triển khai hệ thống quản lý dữ liệu. Khi học SQL Server, nhất định bạn nên biết về lệnh điều kiện hay if else.

[SQL SEVER TỪ A-Z] Bài 28: Case - when  - Câu truy vấn có điều kiện
[SQL SEVER TỪ A-Z] Bài 28: Case – when – Câu truy vấn có điều kiện

Tên biến hoặc giá trị biến

2.1 Tên biến và giá trị

Ngoài ra khi kết hợp với câu lệnh SELECT chúng ta sẽ kết hợp các biến sau

ALL – Tùy chọn. Kết quả trả về tất cả các hàng phù hợp

DISTINCT – Tùy chọn. Loại tất cả các giá trị bị trùng khỏi kết quả trả về.

TOP (gia_tri_dau) – Tùy chọn. Trả về toàn bộ kết quả ở hàng đầu tiên dựa vào gia_tri_dau đã chọn. Ví dụ TOP(5) thì kết quả trả về là 5 hàng đầu tiên.

WITH TIES – Tùy chọn. Nếu chỉ định cụ thể thì các hàng cố định ở cuối trong kết quả có giới hạn sẽ được trả về. Điều này có thể khiến cho số hàng trả về nhiều hơn biến TOP cho phép.

PERCENT – Tùy chọn. Nếu chỉ định cụ thể thì các hàng đầu tiên dựa theo phần trăm trên bộ kết quả (chỉ định bằng gia_tri_dau). Ví dụ TOP(5) PERCENT sẽ trả về top 5% kết quả đầu tiên trong bộ kết quả.

Biểu thức – Cột hoặc giá trị tính toán mà bạn muốn lấy. Dùng dấu * nếu bạn muốn lấy toàn bộ các cột.

Bảng – Kết quả trả về sẽ là bảng của bạn chọn. Phải có ít nhất 1 bảng được liệt kê trong lệnh FROM.

WHERE “điều kiện” – Tùy chọn. Kết quả trả về sẽ phải đáp ứng được điều kiện được đặt ra.

GROUP BY “biểu thức” – Tùy chọn. Nhóm các kết quả theo một hay nhiều cột từ dữ liệu thu thập được thông qua các bảng ghi.

HAVING “điều kiện” – Tùy chọn. Dùng lệnh này kết hợp với GROUP BY để giới hạn nhóm các hàng trả về khi đáp ứng được điều kiện.

ORDER BY “biểu thức” – Tùy chọn. Được dùng để lọc các kết quả. Sử dụng ASC để lọc theo thứ tự tăng dần và DESC để lọc theo thứ tự giảm dần.

2.2 Các ví dụ

Chọn toàn bộ trường trong một bảng

SELECT *

FROM hangtonkho

WHERE soluong > 10

ORDER BY hangtonkho_id ASC;

Sử dụng dấu * để chọn tất cả các giá trị trong bảng hangtonkho nhưng phải thỏa mãn giá trị là soluong > 10. Kết quả trả về sẽ được sắp xếp theo thứ tự tăng dần dựa trên bảng hangtonkho_id

Chọn một vài trường trong bảng

SELECT hangtonkho_id, hangtonkho_type, soluong

FROM hangtonkho

WHERE hangtonkho_id >= 555

AND hangtonkho_type = ‘phanmem’

ORDER BY soluong DESC, hangtonkho_id ASC;

Ở lệnh trên, kết quả trả về sẽ là số lượng, id, loại hàng và được lấy từ bảng hangtonkho khi thỏa mãn điều kiện id >= 555, loại hàng cũng cần thỏa mãn là “phanmem” (phần mềm).

Các kết quả trả về sẽ được sắp xếp theo số lượng giảm dần và tăng dần của id

Chọn từ nhiều bảng khác nhau

SELECT hangtonkho.hangtonkho_id, sanpham.sanpham_ten, hangtonkho.soluong

FROM hangtonkho

INNER JOIN sanpham

ON hangtonkho.sanpham_id = sanpham.sanpham_id

ORDER BY hangtonkho_id;

Trong ví dụ này tôi sẽ chọn ra từ các bảng hantonkho và sanpham để lấy ra các giá trị hangtonkho_id, sanpham_ten và soluong. Để làm được như vậy thì ID ở bảng hangtonkho phải giống với bảng sanpham.

Kết quả trả về sẽ được sắp xêm theo thứ tự tăng dần của ID.

Sử dụng keyword TOP

SELECT TOP(3)

hangtonkho_id, hangtonkho_type, soluong

FROM hangtonkho

WHERE hangtonkho_type = ‘phanmem’

ORDER BY hangtonkho_id ASC;

Trong ví dụ này thì tôi sẽ lấy ra 3 hàng đầu tiên trong bảng hangtonkho và thỏa mãn điều kiện loại hàng là “phanmem” (phần mềm). Kết quả trả về gồm id, loại hàng, số lượng và được sắp xếp từ tăng dần theo mã id.

Sử dụng keyword TOP PERCENT

SELECT TOP(10) PERCENT

hangtonkho_id, hangtonkho_type, soluong

FROM hangtonkho

WHERE hangtonkho_type = ‘phanmem’

ORDER BY hangtonkho_id ASC;

Gần tương tự như trên nhưng chỉ 10% giá trị đầu tiên được trả về thỏa mãn điều kiện là loại sản phẩm là phần mềm. 90% còn lại không được hiện ra.

Như vậy là chúng ta lại hoàn thành thêm một bài học khá hữu ích về lệnh SELECT trong SQL Server. Đón xem các bài viết tiếp theo của tôi nhé.

Trong các bài viết trước,


BAC


đã giới thiệu đến bạn đọc câu lệnh lấy dữ liệu trong SQL là SELECT. Tuy nhiên, nếu chỉ dùng SELECT thì việc lấy dữ liệu khá hạn chế và không thực sự chính xác. Vì thế, chúng ta sẽ cần thêm một mệnh đề điều kiện để lấy được những dữ liệu đúng nhu cầu công việc.

Mệnh đề WHERE trong SQL

Mệnh đề WHERE được dùng để lọc các bản ghi.

Nó thường được dùng để chỉ trích xuất các bản ghi đáp ứng những điều kiện cụ thể.


Lưu ý

: Mệnh đề WHERE chỉ được sử dụng trong câu lệnh SELECT, nó cũng được dùng trong UPDATE, DELETE,…!.

Ví dụ về mệnh đề WHERE

Để thực hiện ví dụ này, bạn cần nhập cơ sở dữ liệu mẫu Northwind vào SQL Server Management Studio. Hãy xem bài viết hướng dẫn ngay dưới đây:


Tham khảo:

Hướng dẫn tải và cài đặt dữ liệu mẫu Northwind trong SQL Server Management Studio

Câu lệnh SQL dưới đây sẽ chọn tất cả các khách hàng đến từ quốc gia Mexico trong bảng Customers:

SELECT * FROM Customers

WHERE Country = ‘Mexico’;

Các trường chữ và các trường số

SQL yêu cầu dấu ngoặc đơn xung quanh các giá trị văn bản (hầu hết các hệ thống cơ sở dữ liệu cũng sẽ cho phép dấu ngoặc kép).

Tuy nhiên, các trường số không được đặt trong dấu ngoặc kép.

Ví dụ:

SELECT * FROM Categories

WHERE CategoryID=1;

Các toán tử trong mệnh đề WHERE

Bạn có thể sử dụng các toán tử này để lấy được những dữ liệu mong muốn.

  • (=) dấu bằng
  • (>) dấu lớn hơn
  • (<) dấu nhỏ hơn
  • (>=) dấu lớn hơn hoặc bằng
  • (<=) dấu nhỏ hơn hoặc bằng
  • (<>) dấu không bằng, trong một vài phiên bản SQL có thể dùng dấu (!=)
  • BETWEEN – giữa một phạm vi nhất định
  • LIKE – Tìm kiếm một mẫu
  • IN – Để chỉ định nhiều giá trị có thể có cho một cột

Bây giờ, bạn đã biết chính xác cách mệnh đề WHERE được dùng trong SQL. Hãy khám phá bằng cách sử dụng các toán tử để lấy các phần dữ liệu mà bạn mong muốn. Trong một số trường hợp bạn có thể gặp lỗi do kiểu dữ liệu không phù hợp, chúng ta sẽ nhắc đến trong các bài viết khác sẽ được cập nhật tại website

bacs.vn

, đừng quên đón đọc.


Nguồn tham khảo:


https://www.w3schools.com/

Nhu cầu đào tạo doanh nghiệp


BAC

là đơn vị đào tạo BA đầu tiên tại Việt Nam. Đối tác chính thức của

IIBA

quốc tế. Ngoài các khóa học public,

BAC

còn có các khóa học in house dành riêng cho từng doanh nghiệp. Chương trình được thiết kế riêng theo yêu cầu của doanh nghiệp, giúp doanh nghiệp giải quyết những khó khăn và tư vấn phát triển.

Tham khảo chương trình đào tạo:

BAC – Biên soạn và tổng hợp nội dung

Trong các bài viết trước,


BAC


đã giới thiệu đến bạn đọc câu lệnh lấy dữ liệu trong SQL là SELECT. Tuy nhiên, nếu chỉ dùng SELECT thì việc lấy dữ liệu khá hạn chế và không thực sự chính xác. Vì thế, chúng ta sẽ cần thêm một mệnh đề điều kiện để lấy được những dữ liệu đúng nhu cầu công việc.

Mệnh đề WHERE trong SQL

Mệnh đề WHERE được dùng để lọc các bản ghi.

Nó thường được dùng để chỉ trích xuất các bản ghi đáp ứng những điều kiện cụ thể.


Lưu ý

: Mệnh đề WHERE chỉ được sử dụng trong câu lệnh SELECT, nó cũng được dùng trong UPDATE, DELETE,…!.

Ví dụ về mệnh đề WHERE

Để thực hiện ví dụ này, bạn cần nhập cơ sở dữ liệu mẫu Northwind vào SQL Server Management Studio. Hãy xem bài viết hướng dẫn ngay dưới đây:


Tham khảo:

Hướng dẫn tải và cài đặt dữ liệu mẫu Northwind trong SQL Server Management Studio

Câu lệnh SQL dưới đây sẽ chọn tất cả các khách hàng đến từ quốc gia Mexico trong bảng Customers:

SELECT * FROM Customers

WHERE Country = ‘Mexico’;

Các trường chữ và các trường số

SQL yêu cầu dấu ngoặc đơn xung quanh các giá trị văn bản (hầu hết các hệ thống cơ sở dữ liệu cũng sẽ cho phép dấu ngoặc kép).

Tuy nhiên, các trường số không được đặt trong dấu ngoặc kép.

Ví dụ:

SELECT * FROM Categories

WHERE CategoryID=1;

Các toán tử trong mệnh đề WHERE

Bạn có thể sử dụng các toán tử này để lấy được những dữ liệu mong muốn.

  • (=) dấu bằng
  • (>) dấu lớn hơn
  • (<) dấu nhỏ hơn
  • (>=) dấu lớn hơn hoặc bằng
  • (<=) dấu nhỏ hơn hoặc bằng
  • (<>) dấu không bằng, trong một vài phiên bản SQL có thể dùng dấu (!=)
  • BETWEEN – giữa một phạm vi nhất định
  • LIKE – Tìm kiếm một mẫu
  • IN – Để chỉ định nhiều giá trị có thể có cho một cột

Bây giờ, bạn đã biết chính xác cách mệnh đề WHERE được dùng trong SQL. Hãy khám phá bằng cách sử dụng các toán tử để lấy các phần dữ liệu mà bạn mong muốn. Trong một số trường hợp bạn có thể gặp lỗi do kiểu dữ liệu không phù hợp, chúng ta sẽ nhắc đến trong các bài viết khác sẽ được cập nhật tại website

bacs.vn

, đừng quên đón đọc.


Nguồn tham khảo:


https://www.w3schools.com/

Nhu cầu đào tạo doanh nghiệp


BAC

là đơn vị đào tạo BA đầu tiên tại Việt Nam. Đối tác chính thức của

IIBA

quốc tế. Ngoài các khóa học public,

BAC

còn có các khóa học in house dành riêng cho từng doanh nghiệp. Chương trình được thiết kế riêng theo yêu cầu của doanh nghiệp, giúp doanh nghiệp giải quyết những khó khăn và tư vấn phát triển.

Tham khảo chương trình đào tạo:

BAC – Biên soạn và tổng hợp nội dung

Bài viết được sự cho phép của tác giả Lê Chí Dũng

Các toán tử phổ biến

Bạn có thể sử dụng câu lệnh logic có điểu kiện (Predicates) ở câu lệnh SQL

Một số các điều kiện toán tử phổ biến (Predicate operator)

Toán tử so sánh

Ví dụ: Từ bảng SalesLT.Product thuộc bộ dữ liệu adventureworks. Truy vấn các cột Name, Color, StandardCost, ListPrice. Với 3 điều kiện đồng thời xảy ra: ListPrice > 1000, StandardCost < 9000, màu sắc của sản phẩm khác màu đen.

Toán tử logic

a) Toán tử so sánh giá trị tương đối (LIKE)

‘LIKE’ được sử dụng để lọc ký tự thoả mãn một mẫu tìm kiếm (Pattern) đã được chỉ định sẵn.

Cú pháp của LIKE:

WHERE col_name LIKE pattern

  • col_name: Cột mà bạn muốn thực hiện so sánh mẫu.
  • pattern: Mẫu tìm kiếm bạn muốn sử dụng, có thể chứa các ký tự đại diện như ‘%’ (thay thế bất kỳ chuỗi ký tự) và ‘_’ (thay thế một ký tự).
  • Với ký tự đại diện %

Ví dụ: Từ bảng Product thuộc bộ dữ liệu adventureworks, truy vấn ProductID, Name, ProductNumber. Với điều kiện sản phẩm có chứa có tên ‘AWC Logo Cap’.

  • Với ký tự đại diện _

Ví dụ: Từ bảng Product thuộc bộ dữ liệu adventureworks, truy vấn ProductID, Name, ProductNumber. Với điều kiện, sản phẩm có tổng số ký tự trong tên là 7 ký tự, và tên kết thúc bằng Fork.

  • Với ký tự đại diện [ ]

Ví dụ: Từ bảng DimProduct thuộc bộ dữ liệu AdventureWorksDW2019, truy vấn ProductAlternateKey, EnglishProductName, ReorderPoint. Với điều kiện, EnglishProductName có ký tự đầu tiên nằm trong khoảng từ A đến L và có các ký tự còn lại lần lượt là ‘L Crankarm’.

  • Với ký tự đại diện [^ ]

Ví dụ: Từ bảng Customer thuộc bộ dữ liệu adventureworks, truy vấn FirstName, CompanyName, SalesPerson. Với điều kiện, FirstName có tên bắt đầu với chuỗi ký tự ‘Andre’ và kết thúc khác với ký tự ‘a’.

Wildcard character ngoài được sử dụng với mệnh đề WHERE và toán tử LIKE, để so sánh tương đối với mẫu ký tự và lọc dòng thoả mãn thì còn được sử dụng trong hàm xử lý string là hàm PATINDEX

HÀM PATINDEX

Tương tự như CHARINDEX nhưng PATINDEX cho phép sử dụng mẫu ký tự như ‘%’ và ‘_’.

Cú pháp của hàm PATINDEX:

PATINDEX(‘%pattern%’, expression)

  • %pattern%: Là một chuỗi ký tự mẫu (pattern) bạn muốn tìm kiếm, % đại diện cho ký tự.
  • expression: Là biểu thức hoặc cột chứa dữ liệu mà bạn muốn kiểm tra.

Ví dụ: Vị trí của chuỗi ký tự ‘sleeve’ trong tên sản phẩm là vị trí thứ mấy?

Giải thích câu lệnh truy vấn:

  • FROM: Dữ liệu được truy vấn từ bảng SalesLT.Product.
  • SELECT: Truy vấn các cột Name, vị trí của chuỗi ký tự ‘Logo’ bằng hàm CHARINDEX, vị trí của ký tự gồm 4 chữ cái bắt đầu bằng ‘Lo’ bằng hàm PATINDEX.
  • Hàm CHARINDEX: Xác định vị trí chính xác của chữ ‘Logo’ là vị trí 13.
  • Hàm PATINDEX: Xác định vị trí của ký tự thoả mãn mẫu: Có ít nhất 4 ký tự trong chuỗi và 2 ký tự đầu là ‘Lo’.

Vậy nên chữ ‘Long’ thoả mãn ký tự yêu cầu nên trả về vị trí thứ 1.

CHARINDEX sẽ tìm vị trí bắt đầu của ký tự chính xác.

PATINDEX có thể sử dụng được với các wildcard character để xác định vị trí xuất hiện mẫu ký tự mà không cần định nghĩa ký tự chính xác của nó.

b) Toán tử lọc trong tập giá trị (IN)

Toán tử IN được sử dụng nhằm lọc xem một giá trị có thuộc tập giá trị đã xác định.

Cú pháp của IN:

WHERE col_name IN(val_1, val_2, val_3 …)

  • col_name: Cột mà bạn muốn thực hiện so sánh mẫu.
  • val_1, val_2, val_3: Danh sách giá trị mà bạn muốn so sánh với cột.

Ví dụ: Từ bảng Product thuộc bộ dữ liệu adventureworks, truy vấn cột ProductID, Name, ProductNumber, Color với điều kiện những sản phẩm được chọn là sản phẩm có màu đen hoặc trắng hoặc đỏ.

-> Bản chất của IN tương đương với việc sử dụng phép OR để viết điều kiện với cùng 1 cột. Người ta sẽ sử dụng IN để ngắn gọn hơn.

c) Toán tử truy vấn giá trị trong khoảng (BETWEEN)

Toán tử BETWEEN sử dụng để lọc các giá trị thoả mãn trong khoảng xác định.

Cú pháp của BETWEEN:

WHERE col_name BETWEEN val_1 AND val_2

  • col_name: Cột mà bạn muốn thực hiện so sánh.
  • val_1, val_2: Giới hạn của khoảng xác định.
  • Đối với dữ liệu dạng string

Ví dụ: Từ bảng Customer thuộc bộ dữ liệu adventureworks, truy vấn các cột FirstName, CompanyName, SalesPerson. Với điều kiện, CompanyName nằm trong khoảng từ ‘A Bike Store’ đến ‘Big Cycle Mall’. Kết quả được sắp xếp từ A đến Z theo cột CompanyName.

Bảng dữ liệu gốc gồm 847 hàng.

Giải thích câu lệnh truy vấn:

  • ORDER BY: Sắp xếp từ A đến Z theo cột CompanyName.

Kết quả truy vấn gồm 58 hàng.

  • Đối với dữ liệu dạng datetime

Ví dụ: Từ bảng Customer thuộc bộ dữ liệu adventureworks, truy vấn các cột FirstName, CompanyName, SalesPerson, ModifiedDate. Với điều kiện, ModifiedDate nằm trong khoảng từ ‘2005-08-01’ đến ‘2006-07-01’.

  • Đối với dữ liệu dạng số

Ví dụ: Từ bảng Product thuộc bộ dữ liệu adventureworks, truy vấn ProductID, Name, ProductNumber, Color, StandardCost với điều kiện StandardCost trong khoảng giá từ 1000-3000.

Lưu ý: Về bản chất, BETWEEN 1000 AND 3000 sẽ tương ứng với việc thực hiện phép lọc >= 1000 và <= 3000.

d) Toán tử xử lý NULL

Toán tử IS NULL sử dụng để lọc các giá trị thoả mãn điều kiện là NULL.

Cú pháp của IS NULL:

WHERE col_name IS NULL.

  • col_name: Cột mà bạn muốn thực hiện so sánh.

Ví dụ: Từ bảng Product thuộc bộ dữ liệu adventureworks, truy vấn ProductID, Name, ProductNumber, Color với điều kiện những sản phẩm được chọn là sản phẩm không tồn tại màu sắc.

e) Toán tử phủ định điều kiện (NOT)

Toán tử NOT được sử dụng để xác định các hàng hoặc giá trị không thỏa mãn một điều kiện cụ thể.

NOT không đi một mình, mà đi kèm cùng với các toán tử khác như là: IN, BETWEEN, LIKE, IS NOT NULL.

Lưu ý: Toán tử NOT không trả về các giá trị không tồn tại (NULL).

Ví dụ: Từ bảng Product thuộc bộ dữ liệu adventureworks, truy vấn ProductID, Name, ProductNumber, Color truy vấn những sản phẩm tồn tại giá trị màu sắc.

Giải thích câu lệnh truy vấn:

  • FROM: Dữ liệu được lấy từ bảng SalesLT.Product.
  • WHERE: Lọc bản ghi thoả mãn sản phẩm tồn tại màu sắc.
  • SELECT: Truy vấn các cột ProductID, Name, ProductNumber, Color.

Bây giờ bạn đã biết cách sử dụng các khái niệm này để có thể áp dụng chúng cho các dự án và truy vấn của riêng mình. Một số cách bạn sử dụng hàm WHERE và điều kiện lọc trong SQL là gì? Chia sẻ suy nghĩ và kinh nghiệm của bạn trong phần bình luận bên dưới để DATAPOT biết với nhé.

Học SQL 11. Câu lệnh SELECT và SELECT DISTINCT trong SQL | Tự học câu lệnh SQL | Học SQL
Học SQL 11. Câu lệnh SELECT và SELECT DISTINCT trong SQL | Tự học câu lệnh SQL | Học SQL

Tại sao cần lệnh điều kiện?

Lệnh điều kiện trong SQL Server giúp bạn xác định các logic và hành động khác nhau cho các điều kiện khác nhau. Nó cho phép bạn triển khai hành động dựa trên điều kiện đã định trong lệnh. Thực tế, bạn thực hiện nhiều hành động dựa trên kết quả của một số hoạt động hoặc tình huống khác.

Một số ví dụ thực tế của lệnh điều kiện trong SQL Server là:

  • Nếu ngày mai trời mưa, tôi sẽ lên kế hoạch đi đường bộ.
  • Nếu vé máy bay thấp hơn 400 USD, tôi sẽ đi du lịch ở Châu Âu và tham quan một thắng cảnh gần đó.

Hành động ở đây là chuyến đi đường bộ là điều kiện phụ thuộc vào kết quả của hoạt động khác (trời mưa).

Lệnh if là một phần của hàm luồng điều khiển trong SQL Server. Thông thường, nó là lệnh đưa ra quyết định trong các ngôn ngữ lập trình khác mà trả về một giá trị dựa trên điều kiện được cung cấp. Lệnh này chạy code nằm trong khối IF khi điều kiện đưa ra đánh giá là true và khi điều kiện đánh giá false, lệnh ELSE sẽ được thực thi.

Lệnh IF

Sau đây là cú pháp minh họa cách dùng lệnh IF trong SQL Server:


IF boolean_expression BEGIN { statement_block } END

Ở cú pháp trên, statement_block trong khối BEGIN…END được thực thi khi boolean_expression đáp ứng điều kiện. Nếu không, khối này sẽ bị bỏ qua và điều khiển chương trình được chuyển sang lệnh này sau từ khóa END. Khi đó, bạn sẽ biết nếu biểu thức chứa lệnh SELECT, bạn cần bao gồm chúng trong dấu ngoặc.

Ví dụ – Các câu lệnh IF…ELSE lồng nhau

Vì chúng ta không thể viết điều kiện ELSE IF trong SQL Server như những ngôn ngữ khác nên cần dùng nhiều câu lệnh IF…ELSE lồng nhau để đạt được hiệu quả mong muốn.


DECLARE @nhanvien_salary INT; SET @nhanvien_salary = 15000000; IF @nhanvien_salary > 12000000 PRINT 'Giam doc'; ELSE BEGIN IF @nhanvien_salary > 10000000 PRINT 'Truong phong'; ELSE PRINT 'Chuyen vien'; END; GO

Ví dụ đưa ra được hiểu là, nếu lương lớn hơn 12 triệu kết quả đưa ra sẽ là Giám đốc, nếu không đat điều kiện này ta xét tiếp xuống điều kiện 2, nếu lương lớn hơn 10 triệu kết quả sẽ là Trưởng phòng, các trường hợp khác là Chuyên viên.

Trên đây là những điều bạn cần biết về cách dùng lệnh SQL Server IF Else. Về cơ bản, bạn cần ghi nhớ những điều sau:

  • Biến là các đối tượng hoạt động như placeholder.
  • Từ khóa BEGIN sẽ được dùng để bắt đầu khối lệnh và từ khóa END phải dùng để đóng nó.
  • Cách dùng ELSE trong lệnh IF… ELSE là tùy chọn.
  • Bạn cũng có thể lồng lệnh IF…ELSE vào bên trong lệnh IF…ELSE. Tuy nhiên, lồng lệnh IF trong một lệnh khác là ý tưởng tồi vì nó chỉ khiến code khó đọc và duy trì.

Bài trước: PROCEDURE (Thủ tục) trong SQL Server

Khóa Học SQL Server - Bài 28. Sub Query | Nested Query - Truy vấn con, truy vấn lồng nhau
Khóa Học SQL Server – Bài 28. Sub Query | Nested Query – Truy vấn con, truy vấn lồng nhau

Tải xuống

Tài liệu

Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Truy vấn với điều kiện trong SQL Server dưới dạng file PDF trong link bên dưới.

Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com

Đừng quên like và share để ủng hộ Kteam và tác giả nhé!

ref: Tham khảo thêm một số lệnh

Xem tất cả các CƠ SỞ DỮ LIỆU người dùng trong MÁY CHỦ

Mỗi khi một cơ sở dữ liệu được tạo ra, bảng sysdatabase trong cơ sở dữ liệu master sẽ chứa thông tin về bảng mới tạo ra đó. Do vậy chúng ta có thể liệt kê tất cả các cơ sở dữ liệu trong một máy chủ bằng cách liệt kê các bản ghi trong bảng sysdatabase


select * from master.dbo.sysdatabases where sid <> 1

Xem tất cả các BẢNG người dùng trong CƠ SỞ DỮ LIỆU

Mỗi khi một bảng được tạo ra trong một cơ sở dữ liệu, thông tin về bảng đó sẽ được chứa trong bảng sysobjects của chính cơ sở dữ liệu chứa bảng vừa tạo. Vì vậy chúng ta có thể xem danh sách các bảng trong cơ sở dữ liệu bằng cách truy vấn bảng sysobjects. Các bảng do người dùng tạo có kiểu là ‘U’


select * from Northwind.dbo.sysobjects where xtype='U'

Trong ví dụ này, chúng ta lấy tất cả các bản ghi bảng sysobjects của cơ sở dữ liệu Northwind nhưng chỉ lấy những bảng người dùng, nghĩa là những bảng có xtype là ‘U’

Xem tất cả các CỘT thuộc về một BẢNG

Mỗi khi một cột trong bảng được tạo, bảng syscolumns trong cơ sở dữ liệu sẽ chứa thông tin về cột vừa tạo. Thuộc tính id của cột sẽ chứa định danh của bảng mà cột đó thuộc về. Vì vậy để xem các cột trong một bảng dữ liệu, chúng ta có thể truy vấn bảng syscolumns


declare @x intset @x = (select id from sysobjects where name='Employees') select * from syscolumns where id = @x

Trong ví dụ này, ta khai báo biến @x kiểu int, sau đó lấy id của bảng Employees vào biến @x, rồi ta lấy tất cả các cột trong bảng syscolumns mà có id bằng @x, cũng có nghĩa là id của bảng Employees. Do vậy ta sẽ liệt kê được tất cả các cột trong bảng Employees

Sử dụng bảng tạm

Khai báo bảng, cập nhật bảng, và hiện bảng


declare @x table(MaSV int, TenSV nvarchar(20)) insert into @x values(1, N'Thưởng') insert into @x values(2, N'Yến') select * from @x

Khai báo bảng, tải bảng khác từ trong cơ sở dữ liệu lên bảng vừa khai báo, và hiện bảng


declare @x table(MaSV int, TenSV nvarchar(20)) insert into @x select EmployeeID, firstname from Northwind.dbo.Employees select * from @x

Sử dụng biến tạm


declare @t moneyset @t = (select max(UnitPrice) from Northwind.dbo.products) select * from Northwind.dbo.products where UnitPrice >= @t

Chứng khoán hôm nay | Nhận định thị trường: VNINDEX VÀO ĐẠI SÓNG, TOP SIÊU CỔ SẮP NỔ MẠNH
Chứng khoán hôm nay | Nhận định thị trường: VNINDEX VÀO ĐẠI SÓNG, TOP SIÊU CỔ SẮP NỔ MẠNH

Cú pháp lệnh SELECT trong SQL

1.1 Cú pháp ở dạng đơn giản

Câu lệnh SELECT đơn giản nhất thường là:

SELECT “biểu thức”

FROM “bảng”

[WHERE “điều kiện”];

1.2 Cú pháp ở dạng đầy đủ

Còn dạng đầy đủ câu lệnh sẽ dài hơn với

SELECT [ ALL | DISTINCT ] [ TOP (gia_tri_dau) [ PERCENT ] [ WITH TIES ] ]

“Biểu thức”

FROM “bảng”

[WHERE “điều kiện”] [GROUP BY “biểu thức”] [HAVING “điều kiện”] [ORDER BY “biểu thức” [ ASC | DESC ]];

Truy vấn có điều kiện

Cấu trúc:

SELECT [tính chất]

FROM

WHERE <điều kiện>

Trong đó:

[tính chất] có thể là một trong các từ khóa * (Lấy tất cả dữ liệu), DISTINCT (lấy dữ liệu không trùng lặp) , TOP

(lấy dữ liệu thứ n đầu tiên)


tên các bảng cột cần hiển thị ở kết quả truy vấn

  • Các column được ngăn cách với nhau bằng dấu phẩy (,)
  • Có thể gán tên cho các column với cú pháp:

    AS ‘Tên thay thế’.


tên các bảng, nguồn để lấy dữ liệu khi truy vấn

  • Các table được ngăn cách bằng dấu phẩy (,)
  • Alias là bí danh (hay còn gọi là tên gọi tắt) của table dùng cho các table có tên quá dài, hoặc một table được dùng nhiều lần trong câu truy vấn. Có thể đặt Alias theo cú pháp:

    AS

<Điều kiện> là điều kiện để lọc dữ liệu, trích xuất các record chứa dữ liệu thỏa điều kiện. Có sử dụng các toán tử logic, toán tử so sánh (đã nêu trong bài INSERT, DELETE, UPDATE TABLE TRONG SQL )

Ví dụ:

Sử dụng truy vấn có điều kiện cho câu 3 và câu 4 ở bài tập trên


-- 3. Lấy ra Mã GV, tên GV và họ tên người thân tương ứng SELECT GV.MAGV, HOTEN, NT.TEN FROM dbo.GIAOVIEN AS GV, dbo.NGUOITHAN AS NT WHERE GV.MAGV=NT.MAGV -- 4. Lấy ra Mã GV, Tên GV và Tên khoa của giáo viên đó làm việc. Gơi ý: Bộ môn nằm trong khoa SELECT gv.MAGV, gv.HOTEN, k.TENKHOA FROM dbo.GIAOVIEN AS GV,dbo.BOMON AS BM, dbo.KHOA AS K WHERE GV.MABM=BM.MABM AND BM.MAKHOA=K.MAKHOA

HƯỚNG DẪN PHÁT HIỆN SÓNG NGÀNH VÀ CỔ PHIẾU MẠNH VỚI AMIBROKER
HƯỚNG DẪN PHÁT HIỆN SÓNG NGÀNH VÀ CỔ PHIẾU MẠNH VỚI AMIBROKER

IF…ELSE trong SQL là gì?

Trong SQL Server, câu lệnh IF…ELSE dùng để thực thi các lệnh có điều kiện, nếu lệnh đúng thì thực thi lệnh đó, nếu sai sẽ thực thi một lệnh khác.

Cú pháp sử dụng IF…ELSE

Để sử dụng câu lệnh rẽ nhánh IF…ELSE trong SQL Server, ta sử dụng cú pháp như dưới đây:

IF dieukien{…câu lệnh thực thi khi điều kiện là TRUE…}[ ELSE{…câu lệnh thực thi khi điều kiện là FALSE…} ]

Ghi chú:

  • Không bắt buộc sử dụng ELSE. Bạn sẽ sử dụng điều kiện ELSE khi bạn muốn thực hiện một tập hợp các câu lệnh mà điều kiện IF được đánh giá là FALSE (ví dụ: điều kiện không được đáp ứng).
  • Không có điều kiện ELSE IF nằm trong câu lệnh IF…ELSE. Thay vào đó bạn phải sử dụng nhiều câu lệnh IF.. ELSE lồng nhau để đạt được hiệu quả mong muốn.

Giới thiệu về mệnh đề WHERE

Để tạo điều kiện lọc trong một câu lệnh truy vấn, bạn có thể sử dụng mệnh đề WHERE đi kèm với điều kiện:

SELECT Col_name, Col_name FROM table_name WHERE predicate {AND|OR predicate}

Ví dụ: Từ bảng Product thuộc bộ dữ liệu adventureworks, truy vấn các cột Name, ProductNumber, Color, StandardCost. Với điều kiện, StandardCost lớn hơn 1000.

Giải thích câu lệnh truy vấn:

  • FROM: Dữ liệu được truy vấn từ bảng SalesLT.Product.
  • WHERE: Lọc bản ghi thoả mãn StandardCost >1000.
  • SELECT: Truy vấn các cột Name, ProductNumber, Color, StandardCost.
Khóa Học SQL Server - Bài 31. Nâng cao hiệu suất truy vấn SQL với Common Table Expression (CTE)
Khóa Học SQL Server – Bài 31. Nâng cao hiệu suất truy vấn SQL với Common Table Expression (CTE)

1) Trên cơ sở dữ liệu (database)

Các phiên bản của SQL Server: Enterprise, Personal, Desktop, Developer,..

Các bộ phận của SQL Server: Enterprise Manager, Query Analyzer, Books Online,..

Các loại tập tin của SQL Server: data file (primary, secondary), log file

Các loại cơ sở dữ liệu của SQL Server: system database, user database

create database: tạo cơ sở dữ liệu


create database HoSoSinhViencreate database HoSoSinhVien on (name=’HSSV_data’, filename=’c:HSSV_data.mdf’) log on (name=’HSSV_log’, filename=’c:HSSV_log.ldf’)

drop database: xóa cơ sở dữ liệu


drop database HoSoSinhVien

alter database: sửa các thông tin của cơ sở dữ liệu


alter database HoSoSinhVienmodify name = HSSV

exec sp_dboption: sửa các thông tin của cơ sở dữ liệu


exec sp_dboption HoSoSinhVien, ‘read only’, ‘true’exec sp_dboption HoSoSinhVien, ‘autoshrink’, ‘true’ exec sp_dboption HoSoSinhVien, ‘single_user’

dbcc: điều khiển cơ sở dữ liệu


dbcc shrinkdatabase(HoSoSinhVien, 10)

Nhớ các kiểu số liệu: text, binary, numberic, money, datetime, bit, variant

Nhớ các các ràng buộc: default, check, unique, foreign, primary

Nhớ các kiểu toàn vẹn: entity, domain, referential, user

Nhớ các thuộc tính bổ trợ: identity, null

create table: tạo bảng
  • Tạo bảng với các cột


create table SinhVien (MaSV int,TenSV nchar(50))

  • Tạo với các ràng buộc


create table SinhVien (MaSV int primary key,TenSV nvarchar(50) not null,QueQuan int references DiaPhuong(MaDP))

drop table: xóa bảng


drop table SinhVien

alter table..add: thêm cột

Thêm cột bằng cách dùng lệnh alter table


alter table SinhVienadd QueQuan int

alter table..drop column: xóa cột


alter table SinhVien drop column QueQuan

alter table..alter column: thêm thuộc tính not null


alter table SinhVienalter column TenSV nchar(50) not null

alter table..add primary key: thêm khóa chính

Thêm ràng buộc khóa chính cần phải biến một cột null thành not null trước khi thêm. Nếu để lệnh chuyển đổi thuộc tính not null ngay cạnh lệnh thêm khóa chính thì phải chèn từ khóa go vào vì có thể lệnh trên chưa được thực hiện do đó lệnh dưới báo lỗi


alter table SinhVienalter column MaSV int not null go alter table SinhVien add primary key (MaSV)

alter table..add foreign key: thêm ràng buộc khóa ngoài


alter table SinhVien add foreign key (QueQuan) references DiaPhuong(MaDP)

alter table..add default: thêm ràng buộc mặc định


alter table SinhVien add default 'khong ten' for TenSV

exec sp_help: xem thông tin bảng


exec sp_help SinhVien

Tham khảo các vị trí tuyển dụng SQL lương cao tại Topdev.

Một số ví dụ khác

Để hiểu thêm về cách truy vấn cơ bản, chúng ta cùng nhau đi đến một số ví dụ đơn giản. Kteam khuyến khích bạn tự thao tác để có thể hiểu bài tốt hơn.

Ví dụ 1: Xuất ra giáo viên có lương hơn 2000


SELECT * FROM dbo.GIAOVIEN WHERE LUONG > 2000

Ví dụ 2: Xuất ra các giáo viên là nữ và có lương hơn 2000


SELECT * FROM dbo.GIAOVIEN WHERE LUONG > 2000 AND PHAI = N'Nữ'

Ví dụ 3: Lấy ra những giáo viên lớn hơn 40 tuổi. Trong câu này ta sử dụng thêm hàm

YEAR(

) để lấy ra năm của ngày

GETDATE() lấy ra ngày hiện tại. ( Đã nêu ở INSERT, DELETE, UPDATE TABLE TRONG SQL )


SELECT * FROM dbo.GIAOVIEN WHERE YEAR(GETDATE()) - YEAR(NGSINH) > 40

Ví dụ 4: Lấy ra họ tên, năm sinh, tuổi của các giáo viên nhỏ hơn 40 tuổi


SELECT HOTEN, NGSINH, YEAR(GETDATE()) - YEAR(NGSINH) FROM dbo.GIAOVIEN WHERE YEAR(GETDATE()) - YEAR(NGSINH) <= 40

Lúc này column tuổi không có tên xác định bạn có thể gán tên cho column như sau


SELECT HOTEN, NGSINH, YEAR(GETDATE()) - YEAR(NGSINH) AS 'TUOI' FROM dbo.GIAOVIEN WHERE YEAR(GETDATE()) - YEAR(NGSINH) <= 40

Ví dụ 5: Lấy ra tất cả thông tin của giáo viên là trưởng bộ môn


SELECT GV.* FROM dbo.GIAOVIEN AS GV, dbo.BOMON AS BM WHERE BM.TRUONGBM = GV.MAGV

Ví dụ 6: Lấy ra tên giáo viên và tên đề tài giáo viên đó tham gia


-- Lấy ra tên giáo viên và tên đề tài người đó tham gia SELECT HOTEN, TENDT FROM dbo.GIAOVIEN, dbo.THAMGIADT, dbo.DETAI WHERE GIAOVIEN.MAGV = THAMGIADT.MAGV AND DETAI.MADT = THAMGIADT.MADT

COUNT()

Hàm COUNT() là một hàm rất hữu ích, dùng để đếm số lượng record được chỉ định.

Cấu trúc:

SELECT COUNT(

FROM

WHERE <Điều kiện>

Đếm số lượng của tất cả Record

SELECT COUNT(*) FROM

Ví dụ:

Ví dụ 1: Đếm số lượng giáo viên có trong Table Giáo Viên


SELECT COUNT(*) AS N'Số lượng giáo viên' FROM dbo.GIAOVIEN

Ví dụ 2: Đếm số lượng người thân của Giáo viên có mã GV là 007


-- Đếm số lượng người thân của Giáo viên có mã GV là 007 SELECT COUNT(*) AS N'Số lượng người thân' FROM dbo.GIAOVIEN, dbo.NGUOITHAN WHERE GIAOVIEN.MAGV = '007' AND GIAOVIEN.MAGV = NGUOITHAN.MAGV

AVG()

Hàm AVG() là một hàm tính toán, dùng để lấy giá trị trung bình của một column có giá trị số được chỉ định.

Cấu trúc:

SELECT AVG(

FROM

WHERE <Điều kiện>

Ví dụ:

Ví dụ 1: Xuất ra mức lương trung bình của các giáo viên


SELECT AVG(LUONG) AS 'TBLUONG' FROM dbo.GIAOVIEN

Ví dụ 2: Xuất ra trung bình lương của các giáo viên nữ


SELECT AVG(LUONG) AS 'TBLUONG' FROM dbo.GIAOVIEN WHERE PHAI= N'Nữ'

SUM()

Hàm SUM() là hàm tính toán, dùng để lấy tính tổng giá trị số của một column được chỉ định.

Cấu trúc:

SELECT SUM(

FROM

WHERE <Điều kiện>

Ví dụ:

Ví dụ 1: Xuất ra tổng kinh phí dành cho các đề tài có thời gian kết thúc trước năm 2009


SELECT SUM(KINHPHI) AS 'TONG KINH PHI' FROM dbo.DETAI WHERE YEAR(NGAYKT) < 2009

Ví dụ 2: Xuất ra tổng lương của giáo viên nam có năm sinh trước 1960


SELECT SUM(LUONG) AS N'Tổng lương' FROM dbo.GIAOVIEN WHERE PHAI= N'Nam'AND YEAR(NGSINH) <1960

Hướng dẫn học SQL siêu dễ hiểu | Sử dụng SQL Azure Database
Hướng dẫn học SQL siêu dễ hiểu | Sử dụng SQL Azure Database

ref: Liên quan tới định nghĩa bảng

Các vấn đề về toàn vẹn dữ liệu

+ Toàn vẹn thực thể (entity integrity): primary key, unique, identity

+ Toàn vẹn tham chiếu (referential integrity): foreign key, check

+ Toàn vẹn miền dữ liệu (domain integrity): default, foreign key, check, not null

+ Toàn vẹn người dùng (user integrity): rules, stored procedures, triggers

Các hỗ trợ với toàn vẹn

+ Ràng buộc kiểm tra (check constraint): phải thỏa mãn điều kiện nào đó

+ Ràng buộc mặc định (default constraint): phải có một giá trị mặc định

+ Ràng buộc duy nhất (unique constraint): các giá trị trong cột không được trùng lặp

+ Ràng buộc khóa ngoài (foreign key constraint): các giá trị phải hợp lệ với cột khóa chính tương ứng

+ Ràng buộc khóa chính (primary key constraint): phải duy nhất và không trống

+ Thuộc tính định danh (identity property): có thể được tăng tự động

+ Thuộc tính không trống (not null property): không được phép để trống

Các kiểu dữ liệu

Giá trị nhị phân: bit

Các số nguyên: bigint, int, smallint, tinyint

Các số thực xấp xỉ: float, real

Giá trị số thực chính xác: decimal, numberic

Giá trị tiền tệ: money, smallmoney

Giá trị hời gian: datetime, smalldatetime

Các chuỗi: char, varchar, text, nchar, nvarchar, ntext,

Các chuỗi nhị phân: binary, varbinary, image

Các kiểu khác: cursor, table, variant, timestamp, uniqueidentifier

Bài viết gốc được đăng tải tại lcdung.top

Có thể bạn quan tâm:

Xem thêm Việc làm ngành IT hấp dẫn trên TopDev

Nếu bạn đang làm việc với các bộ dữ liệu lớn trong SQL, chắc hẳn bạn sẽ biết tầm quan trọng của việc có thể lọc được kết quả của mình. Đó là nơi hàm WHERE xuất hiện. Bằng cách sử dụng chức năng này để thực hiện truy vấn có điều kiện trong SQL, bạn có thể dễ dàng chỉ chọn các hàng đáp ứng các tiêu chí cụ thể, giúp phân tích dữ liệu của bạn dễ dàng hơn và rút ra kết luận có ý nghĩa.

Mục lục

Trường văn bản và trường số

SQL yêu cầu dấu nháy đơn quanh văn bản (hầu hết các hệ thống cơ sở dữ liệu sẽ yêu cầu dấu nháy kép cơ).

Dù sao, trường số không cần phải đưa vào trong dấu nháy:

Ví dụ


SELECT * FROM Customers WHERE CustomerID=1;

Kết quả:

CustomerID CustomerName ContactName Address City PostalCode Country
Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
Khóa Học SQL Server - Bài 08. Tìm giá trị Min và Max trong SQL
Khóa Học SQL Server – Bài 08. Tìm giá trị Min và Max trong SQL

Keywords searched by users: câu lệnh điều kiện trong sql

Câu Lệnh Select Có Điều Kiện Trong Sql Server
Câu Lệnh Select Có Điều Kiện Trong Sql Server
If Else - Lệnh Rẽ Nhánh
If Else – Lệnh Rẽ Nhánh
Truy Vấn Với Điều Kiện Trong Sql Server | How Kteam
Truy Vấn Với Điều Kiện Trong Sql Server | How Kteam
Truy Vấn Với Điều Kiện Trong Sql Server | How Kteam
Truy Vấn Với Điều Kiện Trong Sql Server | How Kteam
Sqlserver] Hướng Dẫn Sử Dụng Mệnh Đề Điều Kiện If Else Trong Sql Server
Sqlserver] Hướng Dẫn Sử Dụng Mệnh Đề Điều Kiện If Else Trong Sql Server
Lệnh Case When Trong Sql - Chức Năng, Cú Pháp Và Ví Dụ | Ktpm
Lệnh Case When Trong Sql – Chức Năng, Cú Pháp Và Ví Dụ | Ktpm
Update - Lệnh Sửa Dữ Liệu
Update – Lệnh Sửa Dữ Liệu
Mệnh Đề Having Trong Sql
Mệnh Đề Having Trong Sql
Mệnh Đề Group By Trong Sql Server - Quantrimang.Com
Mệnh Đề Group By Trong Sql Server – Quantrimang.Com
Toán Tử In Trong Sql Server - Học Phân Tích Dữ Liệu, Tin Học Văn Phòng Cùng  Mastermos
Toán Tử In Trong Sql Server – Học Phân Tích Dữ Liệu, Tin Học Văn Phòng Cùng Mastermos
Inner Join Trong Sql Server | How Kteam
Inner Join Trong Sql Server | How Kteam
Sql Server: Câu Lệnh Sql Hiển Thị Các Bảng | Tìm Ở Đây
Sql Server: Câu Lệnh Sql Hiển Thị Các Bảng | Tìm Ở Đây
Truy Vấn Dữ Liệu Trong Sql (Bài 5) - Gia Sư Tin Học
Truy Vấn Dữ Liệu Trong Sql (Bài 5) – Gia Sư Tin Học
Lệnh If...Else Trong Sql Server - Quantrimang.Com
Lệnh If…Else Trong Sql Server – Quantrimang.Com
Các Toán Tử Trong Sql Server - Học Phân Tích Dữ Liệu, Tin Học Văn Phòng  Cùng Mastermos
Các Toán Tử Trong Sql Server – Học Phân Tích Dữ Liệu, Tin Học Văn Phòng Cùng Mastermos
Hướng Dẫn Đọc Dữ Liệu Từ Nhiều Bảng Trong Sql Server - Gia Sư Tin Học
Hướng Dẫn Đọc Dữ Liệu Từ Nhiều Bảng Trong Sql Server – Gia Sư Tin Học
Cách Sử Dụng Các Câu Lệnh Truy Vấn Dữ Liệu Từ Nhiều Bảng (Inner Join, Outer  Join, Self Join, Union, Except, Intersection) Trong Sql | Học Trực Tuyến  Cntt, Học Lập Trình
Cách Sử Dụng Các Câu Lệnh Truy Vấn Dữ Liệu Từ Nhiều Bảng (Inner Join, Outer Join, Self Join, Union, Except, Intersection) Trong Sql | Học Trực Tuyến Cntt, Học Lập Trình
Năm 2022 Học Sql Có Gì Mới Cập Nhật
Năm 2022 Học Sql Có Gì Mới Cập Nhật
Năm 2022 Học Sql Có Gì Mới Cập Nhật
Năm 2022 Học Sql Có Gì Mới Cập Nhật
Lệnh If...Else Trong Sql Server - Quantrimang.Com
Lệnh If…Else Trong Sql Server – Quantrimang.Com
Câu Lệnh Case Trong Sql
Câu Lệnh Case Trong Sql
Cách Dùng Mệnh Đề Where Để Lọc Dữ Liệu Truy Vấn Trong Sql
Cách Dùng Mệnh Đề Where Để Lọc Dữ Liệu Truy Vấn Trong Sql
Giới Thiệu Sql Động. Tìm Kiếm Và Phân Trang Với Sp_Executesql
Giới Thiệu Sql Động. Tìm Kiếm Và Phân Trang Với Sp_Executesql
Câu Lệnh Select Có Điều Kiện Trong Sql Server - Kienit - Chia Sẻ Các Thủ  Thuật Máy Tính Hay Bạn Nên Biết
Câu Lệnh Select Có Điều Kiện Trong Sql Server – Kienit – Chia Sẻ Các Thủ Thuật Máy Tính Hay Bạn Nên Biết
Truy-Van-Du-Lieu-Trong-Sql-Hoc-Cung-Chuyen-Gia-Stanford
Truy-Van-Du-Lieu-Trong-Sql-Hoc-Cung-Chuyen-Gia-Stanford
Tổng Hợp Những Câu Lệnh Sql Cơ Bản | Topdev
Tổng Hợp Những Câu Lệnh Sql Cơ Bản | Topdev
Cách Viết Điều Kiện Lọc Dữ Liệu Với Giá Trị Có Dấu Tiếng Việt Trong Sql  Server - Mastermos Education
Cách Viết Điều Kiện Lọc Dữ Liệu Với Giá Trị Có Dấu Tiếng Việt Trong Sql Server – Mastermos Education
Sql - Các Cú Pháp Trong Sql - Học Java
Sql – Các Cú Pháp Trong Sql – Học Java
Sử Dụng Câu Lệnh Select, Insert, Update Trong Sql Server Chi Tiết Nhất -  Youtube
Sử Dụng Câu Lệnh Select, Insert, Update Trong Sql Server Chi Tiết Nhất – Youtube
Cách Dùng Lệnh Case Trong Sql Server Với Lệnh Select Và Update | Ecci
Cách Dùng Lệnh Case Trong Sql Server Với Lệnh Select Và Update | Ecci
9 Câu Lệnh Sql Cơ Bản Dân Tự Học Data Analyst Cần Biết - Unigap
9 Câu Lệnh Sql Cơ Bản Dân Tự Học Data Analyst Cần Biết – Unigap
Tuốt Tuồn Tuột Về Case When Trong Sql | Topdev
Tuốt Tuồn Tuột Về Case When Trong Sql | Topdev
Xem Dữ Liệu Trong Sql Server 2014 - R2S Academy
Xem Dữ Liệu Trong Sql Server 2014 – R2S Academy
Mệnh Đề Group By Trong Sql
Mệnh Đề Group By Trong Sql
Hướng Dẫn Viết Lênh Select Trong Sql - Youtube
Hướng Dẫn Viết Lênh Select Trong Sql – Youtube
Sql Cheat Sheet – Dành Cho Người Mới Học Sql - Mastering Data Analytics
Sql Cheat Sheet – Dành Cho Người Mới Học Sql – Mastering Data Analytics
Trigger Trong Sql Là Gì ? Cách Tạo Và Ví Dụ Về Trigger Sql Server - Bkns
Trigger Trong Sql Là Gì ? Cách Tạo Và Ví Dụ Về Trigger Sql Server – Bkns
Thứ Tự Run Câu Lệnh Sql Query | Giangtester Blog
Thứ Tự Run Câu Lệnh Sql Query | Giangtester Blog

See more here: kientrucannam.vn

Leave a Reply

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