CodeGym
Kiến thức tổng quan về SQL (Structured Query Language)
SQL hay viết tắt của Structured Query Language, là ngôn ngữ truy vấn có cấu trúc giúp bạn truy xuất và cập nhật dữ liệu ở DB. Với mỗi RDBMS thì SQL sẽ thay đổi nhỏ ở một số cú pháp, nhưng nhìn chung điều đó là không nhiều. Bài viết sau mình sẽ hướng dẫn các bạn sử dụng SQL trên hệ quản trị MySQL.
1. Kiểu dữ liệu
Với mỗi table, sẽ có nhiều column, mỗi column được xem là thuộc tính của đối tượng. Và mỗi column sẽ có mỗi kiểu dữ liệu khác nhau, thường các kiểu mà chúng ta hay gặp:
Kí tự, chuỗi (String)
Số (Numeric)
Ngày và giờ (Date and Time)
Với mỗi loại, mình có liệt kê các kiểu thường xuyên được dùng để xây dựng DB, hãy cùng xem các bảng bên dưới.
1.1. Kiểu String
Kiểu dữ liệu
Mô tả
CHAR (size)
Độ dài là cố định.
Phạm vi 0 đến 255. Mặc định là 1
VARCHAR (size)
Độ dài thay đổi được.
Phạm vi 0 đến 65,535.
TINYTEXT
Độ dài thay đổi được, tối đa là 255 kí tự
TEXT
Độ dài thay đổi được.
Phạm vi 0 đến 65,535.
MEDIUMTEXT
Độ dài tối đa đến 16,777,215.
LONGTEXT
Độ dài tối đa đến 4,294,967,295.
Ngoài ra, nếu cần lưu trữ giá trị nhị phân thì có thể sử dụng kiểu BLOB.
1.2. Kiểu Numeric
Kiểu dữ liệu
Mô tả
BIT
Kiểu số có kích thước nhỏ nhất. Giá trị mặc định là 1.
BOOL (BOOLEAN)
Kiểu TRUE/FALSE
TINYINT, SMALLINT, INT, BIGINT
Các kiểu số nguyên
FLOAT, DOUBLE, DECIMAL
Các kiểu số thực (số thập phân)
1.3. Kiểu Date
Kiểu dữ liệu
Mô tả
DATE
Kiểu ngày, định dạng là: yyyy-mm-dd
DATETIME
Kiểu ngày và giờ, định dạng là: yyyy-mm-dd hh🇲🇲ss
TIMESTAMP
Tương tự như kiểu DATETIME, nhưng lưu dữ liệu theo chuẩn UTC.
TIME
Kiểu giờ, định dạng là: hh🇲🇲ss
YEAR
Kiểu năm, lưu trữ 4 chữ số.
[Database] SQL (Part 1)
[Database] SQL (Part 2)
2. Toán tử so sánh
Được sử dụng so sánh các dữ liệu với nhau, từ đó mới lọc kết quả cuối cùng của câu lệnh SQL.
Các toán tử so sánh cũng gần giống như các phép toán học.
Toán tử
Chú thích
=
So sánh bằng
>
So sánh lớn hơn
<
So sánh nhỏ hơn
>=
So sánh lớn hơn hoặc bằng
<=
So sánh nhỏ hơn hoặc bằng
Có thể dùng !=, đây là phép so sánh khác
3. Toán tử logic
Được sử dụng để phối hợp các biểu thức điều kiện với nhau
Toán tử
Ý nghĩa
AND
Trả về TRUE nếu 2 biểu thức cùng trả về TRUE.
IN
Trả về TRUE nếu chỉ cần có biểu thức trong danh sách điều kiện là TRUE
NOT
Phủ định biểu thức trả về kiểu BOOLEAN.
OR
Trả về TRUE nếu một trong hai biểu thức là TRUE
LIKE
Kiểm tra tính gần đúng của dữ liệu.
BETWEEN
Trả về TRUE, nếu giá trị thuộc trong đoạn
ALL
Trả về TRUE nếu tất cả tập so sánh là TRUE.
ANY
Trả về TRUE nếu có bất kỳ giá trị ở tập so sánh là TRUE.
EXISTS
Trả về TRUE nếu truy vấn trả về ít nhất một dòng dữ liệu
SOME
Trả về TRUE nếu vài giá trị ở tập so sánh là TRUE.
4. NULL
Là một giá trị đặc biệt, nó thể hiện 3 ý nghĩa sau:
Thể hiện giá trị chưa được xác định rõ ràng.
Giá trị ở đây không phải là rỗng hay 0.
Không thể dùng các toán tử so sánh thông thường với NULL, mà cần sử dụng toán tử IS. Như là IS NULL hay IS NOT NULL.
Kết luận
Hôm nay mình chỉ giới thiệu lại phần SQL đến đây thôi, có thể thấy rằng SQL cũng có nhiều khái niệm tương tự như bên ngôn ngữ lập trình. Nhưng đây chỉ là ngôn ngữ để thao tác với các dữ liệu ở DB, tức là chỉ thao tác với tầng dưới cùng của một hệ thống, được xem như là phương tiện để một ứng dụng giao tiếp được với DB trong hệ thống.
Nguồn: codegym.vn/blog/2023/11/18/structured-query-language-sql/
Kiến thức tổng quan về SQL (Structured Query Language)
SQL hay viết tắt của Structured Query Language, là ngôn ngữ truy vấn có cấu trúc giúp bạn truy xuất và cập nhật dữ liệu ở DB. Với mỗi RDBMS thì SQL sẽ thay đổi nhỏ ở một số cú pháp, nhưng nhìn chung điều đó là không nhiều. Bài viết sau mình sẽ hướng dẫn các bạn sử dụng SQL trên hệ quản trị MySQL.
1. Kiểu dữ liệu
Với mỗi table, sẽ có nhiều column, mỗi column được xem là thuộc tính của đối tượng. Và mỗi column sẽ có mỗi kiểu dữ liệu khác nhau, thường các kiểu mà chúng ta hay gặp:
Kí tự, chuỗi (String)
Số (Numeric)
Ngày và giờ (Date and Time)
Với mỗi loại, mình có liệt kê các kiểu thường xuyên được dùng để xây dựng DB, hãy cùng xem các bảng bên dưới.
1.1. Kiểu String
Kiểu dữ liệu
Mô tả
CHAR (size)
Độ dài là cố định.
Phạm vi 0 đến 255. Mặc định là 1
VARCHAR (size)
Độ dài thay đổi được.
Phạm vi 0 đến 65,535.
TINYTEXT
Độ dài thay đổi được, tối đa là 255 kí tự
TEXT
Độ dài thay đổi được.
Phạm vi 0 đến 65,535.
MEDIUMTEXT
Độ dài tối đa đến 16,777,215.
LONGTEXT
Độ dài tối đa đến 4,294,967,295.
Ngoài ra, nếu cần lưu trữ giá trị nhị phân thì có thể sử dụng kiểu BLOB.
1.2. Kiểu Numeric
Kiểu dữ liệu
Mô tả
BIT
Kiểu số có kích thước nhỏ nhất. Giá trị mặc định là 1.
BOOL (BOOLEAN)
Kiểu TRUE/FALSE
TINYINT, SMALLINT, INT, BIGINT
Các kiểu số nguyên
FLOAT, DOUBLE, DECIMAL
Các kiểu số thực (số thập phân)
1.3. Kiểu Date
Kiểu dữ liệu
Mô tả
DATE
Kiểu ngày, định dạng là: yyyy-mm-dd
DATETIME
Kiểu ngày và giờ, định dạng là: yyyy-mm-dd hh🇲🇲ss
TIMESTAMP
Tương tự như kiểu DATETIME, nhưng lưu dữ liệu theo chuẩn UTC.
TIME
Kiểu giờ, định dạng là: hh🇲🇲ss
YEAR
Kiểu năm, lưu trữ 4 chữ số.
[Database] SQL (Part 1)
[Database] SQL (Part 2)
2. Toán tử so sánh
Được sử dụng so sánh các dữ liệu với nhau, từ đó mới lọc kết quả cuối cùng của câu lệnh SQL.
Các toán tử so sánh cũng gần giống như các phép toán học.
Toán tử
Chú thích
=
So sánh bằng
>
So sánh lớn hơn
<
So sánh nhỏ hơn
>=
So sánh lớn hơn hoặc bằng
<=
So sánh nhỏ hơn hoặc bằng
Có thể dùng !=, đây là phép so sánh khác
3. Toán tử logic
Được sử dụng để phối hợp các biểu thức điều kiện với nhau
Toán tử
Ý nghĩa
AND
Trả về TRUE nếu 2 biểu thức cùng trả về TRUE.
IN
Trả về TRUE nếu chỉ cần có biểu thức trong danh sách điều kiện là TRUE
NOT
Phủ định biểu thức trả về kiểu BOOLEAN.
OR
Trả về TRUE nếu một trong hai biểu thức là TRUE
LIKE
Kiểm tra tính gần đúng của dữ liệu.
BETWEEN
Trả về TRUE, nếu giá trị thuộc trong đoạn
ALL
Trả về TRUE nếu tất cả tập so sánh là TRUE.
ANY
Trả về TRUE nếu có bất kỳ giá trị ở tập so sánh là TRUE.
EXISTS
Trả về TRUE nếu truy vấn trả về ít nhất một dòng dữ liệu
SOME
Trả về TRUE nếu vài giá trị ở tập so sánh là TRUE.
4. NULL
Là một giá trị đặc biệt, nó thể hiện 3 ý nghĩa sau:
Thể hiện giá trị chưa được xác định rõ ràng.
Giá trị ở đây không phải là rỗng hay 0.
Không thể dùng các toán tử so sánh thông thường với NULL, mà cần sử dụng toán tử IS. Như là IS NULL hay IS NOT NULL.
Kết luận
Hôm nay mình chỉ giới thiệu lại phần SQL đến đây thôi, có thể thấy rằng SQL cũng có nhiều khái niệm tương tự như bên ngôn ngữ lập trình. Nhưng đây chỉ là ngôn ngữ để thao tác với các dữ liệu ở DB, tức là chỉ thao tác với tầng dưới cùng của một hệ thống, được xem như là phương tiện để một ứng dụng giao tiếp được với DB trong hệ thống.
Nguồn: codegym.vn/blog/2023/11/18/structured-query-language-sql/