Download as pdf or txt
Download as pdf or txt
You are on page 1of 30

SQL BASIC CHEETSHEAT

* Kelvin nhận dạy 1 kèm 1 về Data Analyst *


CRUD (CREATE – READ – UPDATE – DELETE)
CRUD (viết tắt các chữ cái đầu của Create-Read-Update-Delete,
nghĩa là "tạo, đọc, cập nhật, xoá") là bốn chức năng cơ bản khi
làm việc với 1 cơ sở dữ liệu trong SQL mà bất kỳ Data Analyst nào
cũng đều phải thành thạo viết lệnh.

SAMPLE DATA

ID NAME COUNTRY_ID POPULATION

1 PARIS 1 2243000

2 BERLIN 2 3460000
CRUD: CREATE
TẠO MỚI 1 DATABASE, VỚI CÂU LỆNH “CREATE DATABASE”
Cú Pháp: CREATE DATABASE TÊN DATABSE SẼ TẠO;
Ví Dụ: CREATE DATABASE MUAHANG;

TẠO MỚI 1 TABLE, VỚI CÂU LỆNH “CREATE TABLE”


Cú Pháp: CREATE TABLE table_name Ví Dụ: CREATE TABLE Persons
( (
column1 datatype, PersonID int,
column2 datatype, LastName varchar(255),
column3 datatype, FirstName varchar(255),
.... Address varchar(255),
); City varchar(255)
);
CRUD: CREATE
THÊM MỚI DỮ LIỆU VÀO 1 TABLE, VỚI CÂU LỆNH “INSERT INTO”
“Thêm 1 dòng dữ liệu mới vào 1 Table đang có trong Database”

Cú Pháp: INSERT INTO table_name


(column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

Ví Dụ: INSERT INTO Customers


(CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger’,
'4006', 'Norway');
CRUD: READ
TRUY VẤN DỮ LIỆU TỪ 1 TABLE, VỚI CÂU LỆNH “SELECT”.

Cú Pháp 1: SELECT column1, column2, ... Hiển Thị Các Cột Dữ Liệu Muốn Lấy
FROM table_name; Từ 1 Table

Ví Dụ 1: SELECT CustomerName, City Hiển Thị Cột Dữ Liệu “CustomerName” và Cột “City”
FROM Customers; Từ Table có tên là “Customer”

Cú Pháp 2: SELECT * Hiển Thị Tất Cả Cột Dữ Liệu


FROM table_name; Từ 1 Table

Ví Dụ 2: SELECT * Hiển Thị Tất Cả Cột Dữ Liệu


FROM Customers; Từ Table có tên là “Customer”
CRUD: READ
TRUY VẤN DỮ LIỆU TỪ 1 TABLE, VỚI CÂU LỆNH “SELECT”.
NHƯNG LỌC TRUY VẤN THEO ĐIỀU KIỆN, VỚI TỪ KHÓA “WHERE”

Cú Pháp: CÂU LỆNH SELECT +


WHERE điều kiện truy vấn;
Ví Dụ: SELECT * FROM CUSTOMER Hiển Thị Tất Cả Cột Dữ Liệu Từ Table “Customer”
WHERE name = ‘Kelvin’; nhưng chỉ hiển thị với khách có tên là “Kelvin”

NOTE:
- Điều kiện truy vấn có thể là các toán tử so sánh như >, >=, <, <=, <>, =
- Các từ khóa bổ sung cho điều kiện truy vấn gồm Like, Between, In, Is Not Null
CRUD: READ
LIKE: SELECT * FROM Customers ‘a%’, Tìm giá trị bắt đầu bằng “a”
WHERE name LIKE 'a%'; ‘%a’, Tìm giá trị kết thúc bằng “a”

BETWEEN: SELECT * FROM Customers Hiển Thị Tất Cả Cột Dữ Liệu Từ Table
WHERE soluong BETWEEN 10 AND 20; “Customer” nhưng chỉ hiển thị với điều kiện
là cột số lượng có giá trị nằm giữa 10 và 20.

IN: SELECT * FROM Customers Hiển Thị Tất Cả Cột Dữ Liệu Từ Table “Customer”
WHERE name IN (‘Kelvin’, ‘Lan’, ‘Hong’); nhưng chỉ hiển thị với điều kiện là tên khách hàng là
1 trong 3 tên sau: “Kelvin”, “Lan”, “Hong”.

IS NOT NULL: SELECT * FROM Customers Hiển Thị Tất Cả Cột Dữ Liệu Từ Table “Customer”
WHERE vip IS NOT NULL nhưng chỉ với khách hàng có giá trị trong cột VIP
(KHÔNG BỊ TRỐNG), tức truy vấn các khách VIP.
CRUD: READ
TRUY VẤN TỪ NHIỀU CỘT TRONG 1 TABLE, VỚI CÂU LỆNH “SELECT”.
NHƯNG NHÓM KẾT QUẢ, LOẠI DỮ LIỆU TRÙNG LẮP VỚI “GROUP BY”

Nếu nhóm kết quả mà có


yêu cầu điều kiện, thì bổ
sung từ khóa HAVING

Cú Pháp:
HAVING điều kiện nhóm
Cú Pháp: SELECT colum1, colum2,… FROM TÊN TABLE
Ví Dụ:
GROUP BY colum1, colum2,…;
HAVING country_id = 4

Ví Dụ: SELECT country_id FROM CITY


GROUP BY country_id;
CRUD: READ
TRUY VẤN DỮ LIỆU TỪ 1 TABLE, VỚI CÂU LỆNH “SELECT”.
NHƯNG KẾT QUẢ CÓ SẮP XẾP (SORT), VỚI TỪ KHÓA “ORDER BY”
Cú Pháp: CÂU LỆNH SELECT +
ORDER BY column1, column2, ... ASC|DESC;

Ví Dụ: SELECT * FROM CUSTOMER Hiển Thị Tất Cả Cột Dữ Liệu Từ Table “Customer”
ORDER BY name DESC; nhưng sắp xếp theo cột “name” và giảm dần Z -> Z

NOTE:
- ASC là sắp xếp tăng dần (với số là 1,2,3,4,5… với text là theo A -> Z)
- DESC là sắp xếp giảm dần (với số là 5,4,3,2,1 với text là theo Z -> A)
- TỪ KHÓA “ORDER BY” nằm sau “WHERE điều kiện truy vấn”
CRUD: UPDATE
ĐỂ UPDATE LẠI CẤU TRÚC CỦA 1 TABLE TRONG DATABASE
Cú Pháp 1: ALTER TABLE table_name
Cập Nhật Thêm Cột Vào Table
ADD column_name datatype;

Cú Pháp 2: ALTER TABLE table_name


Xóa Cột Trong Table
DROP COLUMN column_name;

Cú Pháp 3: ALTER TABLE table_name


Đổi Tên Cột Trong Table
RENAME COLUMN tên cột cũ TO tên cột mới;

Cú Pháp 4: ALTER TABLE table_name


ALTER COLUMN column_name datatype; Đổi Data Type của Cột Trong Table
CRUD: UPDATE
ĐỂ UPDATE LẠI DỮ LIỆU CỦA 1 TABLE TRONG DATABASE
Cú Pháp: UPDATE table_name
Cập Nhật Dữ Liệu Của 1 Table
SET column1 = value1, column2 = value2, ...
Theo Điều Kiện Where
WHERE điều kiện truy vấn;

Ví Dụ: UPDATE Customers Cập Nhật Lại Dữ Liệu Khách Hàng


SET name = ‘Kelvin’, sdt = ‘0909222345’ Trong Table Customers ở vị trí có
WHERE makhachhang = ‘KH005’; makhachhang là “KH005”

NOTE:
- Nếu bạn bỏ WHERE, toàn bộ dòng dữ liệu sẽ update theo giá trị mới ở phần SET.
CRUD: DELETE
XÓA TOÀN BỘ DATABASE
Cú Pháp: DROP DATABASE TÊN DATABASE; Xóa 1 Database trong Server

XÓA TOÀN BỘ 1 TABLE


Cú Pháp: DROP TABLE TÊN TABLE; Xóa 1 Table trong 1 Database

XÓA TOÀN BỘ DỮ LIỆU TRONG 1 TABLE (TABLE VẪN CÒN TỒN TẠI)
Cú Pháp: TRUNCATE TABLE TÊN TABLE; Xóa Dữ Liệu Trong 1 Table
CRUD: DELETE
ĐỂ XÓA DỮ LIỆU 1 DÒNG / MỘT SỐ DÒNG TRONG 1 TABLE
Cú Pháp: DELETE FROM TÊN TABLE Xóa Dữ Liệu Trong 1 Table
WHERE điều kiện truy vấn; Theo Điều Kiện Where

Xóa Dữ Liệu Khách Hàng Trong Table


Ví Dụ: DELETE FROM Customers
Customers ở vị trí có makhachhang
WHERE makhachhang = ‘KH005’;
là “KH005”

NOTE:
- Nếu bạn bỏ WHERE, toàn bộ dòng dữ liệu trong Table sẽ bị xóa.
JOIN – NỐI BẢNG
Một trong nhưng lợi ích chính của SQL là khả năng kết hợp dữ liệu từ hai hay
nhiều bảng lại với nhau. Việc kết hợp các bảng lại như vậy gọi là JOIN, SQL
sẽ tạo ra một bảng tạm thời chứa dữ liệu kết quả từ JOIN.

Để có thể nối, 2 hoặc nhiều bảng phải có mối quan hệ (relationship) với nhau
theo các hình thức 1-1, 1-∞, ∞- ∞

BẢNG 1 BẢNG 2
JOIN – NỐI BẢNG: INNER JOIN
Inner join trong SQL là một cách để kết hợp dữ liệu từ hai hoặc nhiều bảng
trong cơ sở dữ liệu quan hệ. Nó chỉ trả về những bản ghi (record) có giá trị
khớp trong cả hai bảng. Nói cách khác, inner join chỉ trả về các bản ghi
(record) có giá trị của các cột được chỉ định trong cả hai bảng khớp với nhau.

BẢNG 1

BẢNG ĐƯỢC JOIN


BẢNG 2
JOIN – NỐI BẢNG: INNER JOIN
Cú Pháp: SELECT column_name(s) FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;

Ví Dụ: SELECT Album.album_id, Artist.name, Artist.artist_id, FROM Artist


INNER JOIN Album
ON Artist.artist_id = Album.artist_id;
JOIN – NỐI BẢNG: LEFT JOIN
LEFT JOIN trong SQL là kiểu JOIN trả về tất cả các bản ghi (record) từ bảng
bên trái (bảng 1) và các bản ghi (record) phù hợp từ bảng bên phải (bảng 2)
theo điều kiện truy vấn.

BẢNG 1

BẢNG ĐƯỢC JOIN


BẢNG 2
JOIN – NỐI BẢNG: LEFT JOIN
Cú Pháp: SELECT column_name(s) FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;

Ví Dụ: SELECT Artist.Artist_id, Artist.name, Album.album_id, Album.title FROM Artist


INNER JOIN Album
ON Artist.artist_id = Album.artist_id;
JOIN – NỐI BẢNG: RIGHT JOIN
RIGHT JOIN trong SQL là kiểu JOIN trả về tất cả các bản ghi (record) từ
bảng bên PHẢI (bảng 2) và các bản ghi (record)phù hợp từ bảng bên TRÁI
(bảng 1).

BẢNG 1

BẢNG ĐƯỢC JOIN


BẢNG 2
JOIN – NỐI BẢNG: RIGHT JOIN
Cú Pháp: SELECT column_name(s) FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;

Ví Dụ: SELECT Artist.Artist_id, Artist.name, Album.album_id, Album.title FROM Artist


RIGHT JOIN Album
ON Artist.artist_id = Album.artist_id;
JOIN – NỐI BẢNG: FULL JOIN
FULL JOIN trong SQL là kiểu JOIN trả về tất cả các bản ghi (record) từ cả 2
bảng (bảng 1 và bảng 2), bao gồm cả những bản ghi (record) khớp với điều
kiện truy vấn và cả những bản ghi không khớp (sẽ để Null).

BẢNG 1
BẢNG ĐƯỢC JOIN
BẢNG 2
JOIN – NỐI BẢNG: FULL JOIN
Cú Pháp: SELECT column_name(s) FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name WHERE điều kiện truy vấn;

Ví Dụ: SELECT Artist.Artist_id, Artist.name, Album.album_id, Album.title FROM Artist


LL OUTER JOIN Album
ON Artist.artist_id = Album.artist_id;
SQL - STANDARD FUNCTION
Là các nhóm hàm được xây dựng sẵn trong ngôn ngữ SQL, dùng để xử lý
với từng nhóm dữ liệu trong SQL khi truy vấn dữ liệu, giống như trong Excel.
Bao Gồm:

- Nhóm Hàm về Chuỗi (Text)


- Nhóm Hàm về Thời Gian (Date - Time)
- Nhóm Hàm về Số (Numeric)
- Nhóm Hàm về Toán Học (Aggregation)
- Nhóm Hàm về Luận Lý (Conditional)

NOTE: cheatsheet này chỉ giới thiệu demo 1 số hàm thông dụng nhất
STANDARD FUNCTION: TEXT FUNCTION
HÀM LEFT Dùng để tách chuỗi, tạo 1 chuỗi mới
Cú Pháp: LEFT(string, number_of_chars) với số ký tự tách ra từ bên trái chuỗi.
STANDARD FUNCTION: TEXT FUNCTION
HÀM RIGHT Dùng để tách chuỗi, tạo 1 chuỗi mới
Cú Pháp: RIGHT(string, number_of_chars) với số ký tự tách ra từ bên phải chuỗi.

RIGHT(‘Save the green’, 5)


STANDARD FUNCTION: TEXT FUNCTION
HÀM SUBSTRING Dùng để tách 1 chuỗi,
Cú Pháp: SUBSTRING(value, position, length) đang nằm trong 1 chuỗi khác
STANDARD FUNCTION: DATE - TIME FUNCTION
HÀM ADDDATE
Cú Pháp: ADDDATE(expr, day)
Dùng để thay đổi ngày tháng năm bằng
expr: khoảng thời gian (yyyy-mm-dd)
cách cộng thêm số ngày vào
day: số ngày cộng vào

Ví Dụ: ADDDATE('2019-01-02', 31); Từ ngày 2/1/2019, cộng thêm 31 ngày


Kết Quả: 2019-02-02 nữa thì thành ngày 2/2/2019

HÀM CURRENT_DATE()
Cú Pháp: CURRENT_DATE() Dùng để trả về ngày hiện tại, trả theo định dạng ‘yyyy-mm-dd’

NHÓM HÀM DAY, MONTH, YEAR


Cú Pháp:
DAY(date) Dùng để trả về ngày, tháng, năm từ dữ liệu ngày/tháng/năm
MONTH(date) Ví Dụ: YEAR('19-03-15’) >> 2019
YEAR(date)
STANDARD FUNCTION: NUMERIC FUNCTION
Dùng +, -, *, / để thực hiện các phép toán cơ bản
Ví Dụ: Select 60 * 60 * 24 * 7; -- Kết Quả : 604800

Dùng HÀM ROUND(value) để làm tròn số


Ví Dụ: SELECT ROUND(1234.56789); -- Kết Quả: 1235

Dùng HÀM SQRT(value) để tính căn bậc 2


Ví Dụ: SELECT SQRT(9); -- Kết Quả: 3
STANDARD FUNCTION: AGGREATION FUNCTION
Dùng COUNT để đếm số dòng
- Count (*) >> đếm số dòng trong 1 bảng
- Count (tên cột) >> đếm số dòng (không có giá trị Null) trong 1 cột
Ví Dụ: SELECT COUNT(*) FROM city; -- Kết Quả: 8

Dùng MIN & MAX để lấy giá trị nhỏ nhất và lớn nhất
- Min(Tên Cột)
- Max(Tên Cột)
Ví Dụ: SELECT MIN(Price) FROM Products;
STANDARD FUNCTION: CONDITIONAL FUNCTION
HÀM IF() trả về giá trị dựa trên điều kiện LUẬN LÝ.
- Trả về 1 giá trị là “A” NẾU điều kiện là ĐÚNG (TRUE).
- Trả về 1 giá trị là “B” NẾU điều kiện là SAI (FALSE).

Cú Pháp: IF(điều kiện, giá trị trả về nếu đúng, giá trị trả về nếu sai)

Ví Dụ: SELECT id, name, IF(name = ‘Paris’,‘Nước Pháp’, ‘Không Phải Pháp’)
FROM CITY;

ID NAME IF (…)
1 Paris Nước Pháp
101 Marseille Không Phải Pháp
102 Lyon Không Phải Pháp
… … …

You might also like