I: Giới thiệu về SQL
Đây là bài đầu tiên trong seri về SQL này nên mình xin phép được nói qua một chút về khái niệm SQL:
- SQL [Structured Query Language] là ngôn ngữ lập trình được thiết kế để quản lý và thao tác dữ liệu được lưu trữ trong cơ sở dữ liệu quan hệ. Nó là một ngôn ngữ tiêu chuẩn được sử dụng bởi các hệ thống quản lý cơ sở dữ liệu [DBMS] có thể tạo, sửa đổi và truy vấn cơ sở dữ liệu.
- SQL được sử dụng để thực hiện nhiều tác vụ khác nhau, chẳng hạn như:
- Create và update struct của các đối tượng cơ sở dữ liệu, chẳng hạn như table và index
- Insert, update , delete dữ liệu trong cơ sở dữ liệu
- Lấy dữ liệu từ cơ sở dữ liệu
- Tạo view và stored procedures
- Setting permissions trên các đối tượng cơ sở dữ liệu
\==> SQL là một ngôn ngữ mạnh mẽ được sử dụng rộng rãi trong ngành để quản lý và thao tác dữ liệu trong cơ sở dữ liệu. Đó là một kỹ năng có giá trị cho bất kỳ ai làm việc với dữ liệu, dù là nhà khoa học dữ liệu, nhà phân tích dữ liệu hay quản trị viên cơ sở dữ liệu.
II: Câu lệnh SELECT
Câu lệnh
SELECT first_name, last_name, salary
FROM employees;
4 là một thao tác SQL cơ bản được sử dụng để truy xuất dữ liệu từ cơ sở dữ liệu. Đây là một trong những câu lệnh SQL được sử dụng phổ biến nhất và nó được dùng để chọn các cột hoặc hàng dữ liệu cụ thể từ một bảng.
Đây là cú pháp cơ bản của câu lệnh
SELECT first_name, last_name, salary
FROM employees;
4:
SELECT column1, column2, ...
FROM table_name
WHERE condition;
Mệnh đề
SELECT first_name, last_name, salary
FROM employees;
4 chỉ định các cột mà bạn muốn truy xuất từ bảng. Bạn có thể chỉ định một hoặc nhiều cột, được phân tách bằng dấu
SELECT first_name, last_name, salary
FROM employees;
7.
Mệnh đề
SELECT first_name, last_name, salary
FROM employees;
8 chỉ định tên của bảng mà bạn muốn lấy dữ liệu từ đó.
Mệnh đề
SELECT first_name, last_name, salary
FROM employees;
9 là optional và được sử dụng để chỉ định một điều kiện phải được đáp ứng để một hàng được đưa vào tập kết quả. Nếu bạn bỏ qua mệnh đề
SELECT first_name, last_name, salary
FROM employees;
9, tất cả các hàng trong table sẽ được đưa vào tập kết quả.
Dưới đây là một ví dụ về câu lệnh
SELECT first_name, last_name, salary
FROM employees;
4 truy xuất tất cả các hàng từ bảng nhân viên, chỉ chọn các cột
SELECT * FROM employees WHERE salary > 50000;
2,
SELECT * FROM employees WHERE salary > 50000;
3 và
SELECT * FROM employees WHERE salary > 50000;
4:
SELECT first_name, last_name, salary
FROM employees;
Câu lệnh này sẽ trả về một tập hợp kết quả chứa các cột
SELECT * FROM employees WHERE salary > 50000;
2,
SELECT * FROM employees WHERE salary > 50000;
3 và
SELECT * FROM employees WHERE salary > 50000;
4 cho tất cả các hàng trong table
SELECT * FROM employees WHERE salary > 50000;
8.
III: Câu lệnh WHERE
Trong SQL, mệnh đề
SELECT first_name, last_name, salary
FROM employees;
9 được sử dụng để lọc kết quả của câu lệnh
SELECT first_name, last_name, salary
FROM employees;
4,
SELECT * FROM employees WHERE salary > 50000 AND department = 'Sales';
1,
SELECT * FROM employees WHERE salary > 50000 AND department = 'Sales';
2 hoặc
SELECT * FROM employees WHERE salary > 50000 AND department = 'Sales';
3. Nó chỉ định một điều kiện phải được đáp ứng để một hàng được đưa vào tập kết quả hoặc bị ảnh hưởng bởi câu lệnh.
Mệnh đề WHERE là optional và được sử dụng để chỉ định một điều kiện phải được đáp ứng để một hàng được đưa vào tập kết quả. Nếu bạn bỏ qua mệnh đề WHERE, tất cả các hàng trong table sẽ được đưa vào tập kết quả.
Đây là một ví dụ về câu lệnh
SELECT first_name, last_name, salary
FROM employees;
4 với mệnh đề
SELECT first_name, last_name, salary
FROM employees;
9:
SELECT * FROM employees WHERE salary > 50000;
Câu lệnh này sẽ trả về tất cả các hàng từ bảng
SELECT * FROM employees WHERE salary > 50000;
8 có cột
SELECT * FROM employees WHERE salary > 50000;
4 lớn hơn 50000.
Bạn có thể sử dụng các toán tử so sánh khác nhau trong mệnh đề
SELECT first_name, last_name, salary
FROM employees;
9, chẳng hạn như =, , =, để chỉ định điều kiện. Bạn cũng có thể sử dụng các toán tử logic như AND, OR và NOT để kết hợp nhiều điều kiện.
Dưới đây là một ví dụ về câu lệnh
SELECT first_name, last_name, salary
FROM employees;
4 với nhiều điều kiện:
SELECT * FROM employees WHERE salary > 50000 AND department = 'Sales';
Câu lệnh này sẽ trả về tất cả các hàng từ bảng
SELECT * FROM employees WHERE salary > 50000;
8 có cột
SELECT * FROM employees WHERE salary > 50000;
4 lớn hơn 50000 và cột
SELECT column1, column2, ... FROM table_name ORDER BY column1 ASC|DESC, column2 ASC|DESC, ...;
2 là
SELECT column1, column2, ... FROM table_name ORDER BY column1 ASC|DESC, column2 ASC|DESC, ...;
3.
IV: Câu lệnh ORDER BY
Trong SQL, mệnh đề
SELECT column1, column2, ... FROM table_name ORDER BY column1 ASC|DESC, column2 ASC|DESC, ...;
4 được sử dụng để sắp xếp kết quả của câu lệnh
SELECT first_name, last_name, salary
FROM employees;
4,
SELECT * FROM employees WHERE salary > 50000 AND department = 'Sales';
1,
SELECT * FROM employees WHERE salary > 50000 AND department = 'Sales';
2 hoặc
SELECT * FROM employees WHERE salary > 50000 AND department = 'Sales';
3. Nó chỉ định thứ tự sắp xếp các hàng trong tập hợp kết quả.
Mệnh đề
SELECT column1, column2, ... FROM table_name ORDER BY column1 ASC|DESC, column2 ASC|DESC, ...;
4 là tùy chọn và nếu nó bị bỏ qua, thứ tự của các hàng trong tập hợp kết quả sẽ không được xác định.
Đây là cú pháp cơ bản của mệnh đề
SELECT column1, column2, ... FROM table_name ORDER BY column1 ASC|DESC, column2 ASC|DESC, ...;
4:
SELECT column1, column2, ... FROM table_name ORDER BY column1 ASC|DESC, column2 ASC|DESC, ...;
Từ khóa
SELECT * FROM employees ORDER BY salary DESC;
1 chỉ định rằng các hàng phải được sắp xếp theo thứ tự tăng dần [từ thấp nhất đến cao nhất]. Từ khóa
SELECT * FROM employees ORDER BY salary DESC;
2 chỉ định rằng các hàng phải được sắp xếp theo thứ tự giảm dần [từ cao nhất đến thấp nhất].
Bạn có thể chỉ định một hoặc nhiều cột để sắp xếp, phân tách bằng dấu phẩy. Nếu bạn chỉ định nhiều cột, các hàng sẽ được sắp xếp đầu tiên theo cột đầu tiên, sau đó theo cột thứ hai, v.v.
Đây là một ví dụ về câu lệnh
SELECT first_name, last_name, salary
FROM employees;
4 với mệnh đề
SELECT column1, column2, ... FROM table_name ORDER BY column1 ASC|DESC, column2 ASC|DESC, ...;
4:
SELECT * FROM employees ORDER BY salary DESC;
Câu lệnh này sẽ trả về tất cả các hàng từ bảng
SELECT * FROM employees WHERE salary > 50000;
8, được sắp xếp theo thứ tự giảm dần theo cột
SELECT * FROM employees WHERE salary > 50000;
4.
Bạn cũng có thể sử dụng mệnh đề
SELECT column1, column2, ... FROM table_name ORDER BY column1 ASC|DESC, column2 ASC|DESC, ...;
4 với mệnh đề
SELECT * FROM employees ORDER BY salary DESC;
8 để truy xuất một số hàng cụ thể từ tập hợp kết quả, được sắp xếp theo một thứ tự cụ thể.
SELECT * FROM employees ORDER BY salary DESC LIMIT 10;
Câu lệnh này sẽ trả về 10 record trên cùng từ bảng
SELECT * FROM employees WHERE salary > 50000;
8, được sắp xếp theo thứ tự giảm dần theo cột
SELECT * FROM employees WHERE salary > 50000;
4.
V: Câu lệnh LIMIT
Trong SQL, mệnh đề
SELECT * FROM employees ORDER BY salary DESC;
8 được sử dụng để hạn chế số lượng hàng được trả về bởi câu lệnh
SELECT first_name, last_name, salary
FROM employees;
4,
SELECT * FROM employees WHERE salary > 50000 AND department = 'Sales';
1,
SELECT * FROM employees WHERE salary > 50000 AND department = 'Sales';
2 hoặc
SELECT * FROM employees WHERE salary > 50000 AND department = 'Sales';
3. Nó thường được sử dụng cùng với mệnh đề
SELECT column1, column2, ... FROM table_name ORDER BY column1 ASC|DESC, column2 ASC|DESC, ...;
4 để truy xuất một số hàng cụ thể từ một tập hợp kết quả.
Đây là cú pháp cơ bản của mệnh đề
SELECT * FROM employees ORDER BY salary DESC;
8:
SELECT column1, column2, ... FROM table_name ORDER BY column1 ASC|DESC LIMIT number_of_rows;
Mệnh đề
SELECT * FROM employees ORDER BY salary DESC;
8 theo sau mệnh đề
SELECT column1, column2, ... FROM table_name ORDER BY column1 ASC|DESC, column2 ASC|DESC, ...;
4 và chỉ định số lượng hàng tối đa sẽ trả về.
Đây là một ví dụ về câu lệnh
SELECT first_name, last_name, salary
FROM employees;
4 với mệnh đề
SELECT * FROM employees ORDER BY salary DESC;
8:
SELECT * FROM employees ORDER BY salary DESC LIMIT 10;
Câu lệnh này sẽ trả về 10 hàng trên cùng từ bảng
SELECT * FROM employees WHERE salary > 50000;
8, được sắp xếp theo thứ tự giảm dần theo cột
SELECT * FROM employees WHERE salary > 50000;
4.
Bạn cũng có thể sử dụng mệnh đề
SELECT * FROM employees ORDER BY salary DESC;
8 với giá trị
SELECT column1, column2, ... FROM table_name ORDER BY column1 ASC|DESC LIMIT number_of_rows;
5 để bỏ qua một số hàng nhất định trước khi bắt đầu trả lại hàng. Cú pháp cho điều này là:
SELECT column1, column2, ... FROM table_name ORDER BY column1 ASC|DESC LIMIT offset, number_of_rows;
Dưới đây là một ví dụ về câu lệnh
SELECT first_name, last_name, salary
FROM employees;
4 với mệnh đề
SELECT * FROM employees ORDER BY salary DESC;
8 và giá trị
SELECT column1, column2, ... FROM table_name ORDER BY column1 ASC|DESC LIMIT number_of_rows;
5:
SELECT first_name, last_name, salary
FROM employees;
0
Câu lệnh này sẽ bỏ qua 10 hàng trên cùng và trả về 10 hàng tiếp theo từ bảng
SELECT * FROM employees WHERE salary > 50000;
8, được sắp xếp theo thứ tự giảm dần theo cột
SELECT * FROM employees WHERE salary > 50000;
4.
VI: Câu lệnh GROUP BY & HAVING
Trong SQL, mệnh đề
SELECT * FROM employees ORDER BY salary DESC LIMIT 10;
1 được sử dụng để nhóm các kết quả của câu lệnh
SELECT first_name, last_name, salary
FROM employees;
4 dựa trên một hoặc nhiều cột. Nó thường được sử dụng cùng với các hàm tổng hợp như
SELECT * FROM employees ORDER BY salary DESC LIMIT 10;
3,
SELECT * FROM employees ORDER BY salary DESC LIMIT 10;
4,
SELECT * FROM employees ORDER BY salary DESC LIMIT 10;
5,
SELECT * FROM employees ORDER BY salary DESC LIMIT 10;
6 và
SELECT * FROM employees ORDER BY salary DESC LIMIT 10;
7 để tính giá trị cho từng nhóm.
Đây là cú pháp cơ bản của mệnh đề
SELECT * FROM employees ORDER BY salary DESC LIMIT 10;
1:
SELECT first_name, last_name, salary
FROM employees;
1
Mệnh đề
SELECT * FROM employees ORDER BY salary DESC LIMIT 10;
1 theo sau mệnh đề
SELECT first_name, last_name, salary
FROM employees;
9 và đứng trước mệnh đề
SELECT column1, column2, ... FROM table_name ORDER BY column1 ASC|DESC, column2 ASC|DESC, ...;
4. Nó chỉ định các cột mà bạn muốn nhóm các kết quả theo.
Đây là một ví dụ về câu lệnh
SELECT first_name, last_name, salary
FROM employees;
4 với mệnh đề
SELECT * FROM employees ORDER BY salary DESC LIMIT 10;
1:
SELECT first_name, last_name, salary
FROM employees;
2
Câu lệnh này sẽ trả về số lượng
SELECT column1, column2, ... FROM table_name ORDER BY column1 ASC|DESC LIMIT offset, number_of_rows;
4 trong mỗi
SELECT column1, column2, ... FROM table_name ORDER BY column1 ASC|DESC, column2 ASC|DESC, ...;
2 có hơn 5
SELECT column1, column2, ... FROM table_name ORDER BY column1 ASC|DESC LIMIT offset, number_of_rows;
4. Kết quả sẽ được nhóm theo cột
SELECT column1, column2, ... FROM table_name ORDER BY column1 ASC|DESC, column2 ASC|DESC, ...;
2.