[ThaoVTP] Tìm hiểu về SQL và một số câu lệnh SQL cơ bản
Bài đăng này đã không được cập nhật trong 3 năm
I. Khái niệm chung về SQL
1.1. SQL là gì?
SQL là một ngôn ngữ tiêu chuẩn để truy cập cơ sở dữ liệu (database). SQL là viết tắt của cụm từ Structured Query Language (Ngôn ngữ truy vấn cấu trúc). Cho phép bạn truy cập và thao tác với database. Ngoài ra, SQL là một tiêu chuẩn ANSI (American National Standards Institute- Viện tiêu chuẩn Quốc gia Mỹ).
1.2. SQL có thể làm gì?
• SQL có thể thực hiện những truy vấn với một cơ sở dữ liệu
• SQL có thể lấy data từ một cơ sở dữ liệu.
• SQL có thể insert (nhập) record vào một cơ sở dữ liệu
• SQL có thể update (cập nhật) record vào một cơ sở dữ liệu
• SQL có thể delete (xóa) record khỏi một cơ sở dữ liệu
• SQL có thể tạo cơ sở dữ liệu mới
• SQL có thể tạo bảng mới trong một cơ sở dữ liệu
• SQL có thể tạo phương thức tích trữ trong một cơ sở dữ liệu
• SQL có thể tạo những cái nhìn trong một cơ sở dữ liệu
• SQL có thể thiết lập (set) quyền cho bảng, phương thức và cái nhìn.
Trong bài viết này sẽ hướng dẫn các bạn cách sử dụng SQL để truy cập và thao tác data trong MySQL.
1.3. Câu lệnh SQL
Hành động mà bạn thực hiện nhiều nhất với một cơ sở dữ liệu là thực hiện câu lệnh SQL.
1.4. Dấu chấm phảy sau câu lệnh SQL có ý nghĩa gì?
Ở một vài hệ thống cơ sở dữ liệu đòi hỏi dấu chấm phảy ở cuối câu lệnh SQL. Dấu chấm phảy là cách tiêu chuẩn để phân chia các câu lệnh SQL trong hệ thống cơ sở dữ liệu mà cho phép nhiều hơn 1 câu lệnh SQL được thực hiện cùng một lúc đến server. Trong bài này, tôi sẽ sử dụng dấu chấm phảy ở cuối mỗi câu lệnh SQL.
II. Các câu lệnh SQL cơ bản
Giải thích một số thuật ngữ dùng trong bài viết:
Table_name: Tên bảng
Column_name: Tên cột
Bảng dữ liệu sử dụng:
Danh sách nhận học bổng năm học 2015-2016
Bảng1: Danh sách
1. Câu lệnh SELECT
1.1. Định nghĩa
Câu lệnh SELECT được dùng để lựa chọn dữ liệu từ một cơ sở dữ liệu. Kết quả được lưu trong một bảng kết quả và gọi là bộ kết quả.
1.2. Cú pháp
1.2.1. Lựa chọn tất cả
SELECT * FROM table_name;
Ví dụ: Chạy câu lệnh : SELECT * FROM Danhsach
;
Sẽ ra nguyên bảng đó như sau:
1.2.2. Lựa chọn từ các cột trong 1 bảng
SELECT column_name,column_name
FROM table_name;
Ví dụ: Lựa chọn chỉ cột “Ten” từ bảng trên thì sẽ chạy câu lệnh SELECT sau:
SELECT Ten
FROM * Danhsach
; (Trong đó, dấu ; để kết thúc câu lệnh).
Kết quả trả về sẽ là:
Ngoài ra, có thể lựa chọn từ 2 cột trở lên cùng 1 lúc. Ví dụ, lựa chọn cột Tên sinh viên và Lớp thì sẽ chạy câu lệnh SELECT như sau:
SELECT Ten, Lop (Trong đó, dấu “, “ để ngăn cách giữa các tên cột)
FROM * Danhsach
;
Thay đổi thứ tự cột trong câu lệnh SELECT trên chúng ta sẽ được kết quả sau khi chạy như sau:
2. Câu lệnh SELECT DISTINCT
2.1. Định nghĩa
Câu lệnh SELECT DISTINCT được dùng để trả về chỉ các giá trị khác nhau.
Trong một bảng, một cột có thể bao gồm nhiều giá trị trùng nhau, và đôi khi bạn chỉ muốn liệt kê các giá trị khác nhau thôi.
Từ khóa DISTINCT có thể được dùng để trả về các giá trị khác nhau.
2.2. Cú pháp
SELECT DISTINCT column_name,column_name
FROM table_name;
Ví dụ: Trong cột “Lop” ở bảng trên, có lớp trùng nhau. Giờ muốn liệt kê các lớp khác nhau, chúng ta chạy câu lệnh SELECT DISTINCT và kết quả như sau:
3. Mệnh đề SQL WHERE
3.1. Định nghĩa
Mệnh đề WHERE được dùng để lọc các bản ghi.
Mệnh đề WHERE được dùng để trích xuất ra chỉ các bản ghi thỏa mãn tiêu chí chỉ định.
3.2. Cú pháp
SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;
Ví dụ: Từ Bảng 1, chọn tất cả các sinh viên có quê là Hà Nội, chúng ta sẽ viết câu lệnh để chạy và kết quả như sau:
3.3. Một số điểm lưu ý
3.3.1. Trường text và trường số
SQL đòi hỏi dấu nháy đơn bao quanh giá trị text. (Rất nhiều hệ thống cho phép dấu nháy kép). Tuy nhiên, trường số thì không cần được bao quanh bởi dấu nháy.
3.3.2. Toán tử trong mệnh đề WHERE
Toán tử | Mô tả |
---|---|
= | Bằng nhau |
<> | Không bằng nhau. Ở một vài bản SQL, toán tử này được viết là != |
> | Lớn hơn |
< | Nhỏ hơn |
>= | Lớn hơn hoặc bằng |
<= | Nhỏ hơn hoặc bằng |
BETWEEN | Trong một khoảng, giới hạn nào đó |
LIKE | Tìm kiếm theo 1 mẫu nào đó |
IN | Chỉ định nhiều giá trị có nghĩa cho 1 cột |
4. Toán tử SQL AND & OR
4.1. Định nghĩa
Toán tử AND & OR được dùng để lọc các bản ghi dựa vào 2 điều kiện trở lên.
Toán tử AND thể hiện một bản ghi nếu cả điều kiện thứ nhất và điều kiện thứ 2 đều đúng.
Toán tử OR thể hiện một bản ghi nếu điều kiện thứ nhất hoặc điều kiện thứ 2 đúng.
4.2. Cú pháp
4.2.1. Toán tử AND
SELECT * FROM table_name
WHERE column_name 1 operator value
AND column_name 2 operator value;
Ví dụ: Tìm kiếm các sinh viên học kiểm toán của khóa K53 từ Bảng Danh sách ở trên như sau:
4.2.2. Toán tử OR
SELECT * FROM table_name
WHERE column_name operator value1
OR column_name operator value2;
Ví dụ: Tìm kiếm các sinh viên học kiểm toán hoặc học kế toán từ Bảng Danh sách ở trên như sau:
4.2.3. Kết hợp toán tử AND & OR
Bạn có thể kết hợp AND và OR (sử dụng ngoặc đơn để thể hiện biểu thức phức tạp).
Ví dụ: Tìm kiếm các sinh viên Hà nội thuộc K51 và K52 từ Bảng Danh sách ở trên như sau:
5.Câu lệnh SQL ORDER BY bằng từ khóa
5.1. Định nghĩa
ORDER BY bằng từ khóa được dùng để sắp xếp bộ kết quả theo một hoặc nhiều cột. ORDER BY bằng từ khóa sẽ sắp xếp các bản ghi theo trình tự mặc định là tăng dần. Để sắp xếp theo trình tự giảm dần thì chúng ta sử dụng từ khóa DESC.
5.2.Cú pháp
SELECT column_name, column_name
FROM table_name
ORDER BY column_name ASC|DESC, column_name ASC|DESC;
Ví dụ 1: Sắp xếp cột quê quán theo trình tự tăng dần như sau:
Ví dụ 2: Sắp xếp cột Khóa theo thứ tự giảm dần như sau:
Ví dụ 3: Sắp xếp cột Quê quán và Lớp như sau:
Ví dụ 4: Sắp xếp theo thứ tự tăng dần cột Quê quán, giảm dần cột Năm sinh như sau:
6. Câu lệnh INSERT INTO của SQL
6.1. Định nghĩa
Câu lệnh INSERT INTO của SQL dùng để cho bản ghi mới vào trong một bảng.
6.2. Cú pháp
Có thể viết câu lệnh INSERT INTO bằng 2 cách.
Cách 1: Chỉ chỉ định giá trị, không chỉ định tên cột sẽ insert.
INSERT INTO table_name
VALUES (value1,value2,value3,...);
Cách 2: Chỉ định cả tên cột và giá trị sẽ insert.
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
Ví dụ1: Insert thêm dòng sau vào Bảng Danh sách ở trên như sau:
Dòng:
12 | Nguyễn Minh Châu | Hòa Bình | 1992 | Tài chính - Ngân hàng | K52 |
---|
Khi đó, nội dung trong bảng sẽ như sau:
Ví dụ 2: Insert thêm Tên Trần Thế Hùng, quê Quảng Ninh, lớp Tài năng vào các cột tương ứng của bảng Danh sách như sau:
7. Câu lệnh UPDATE
7.1. Định nghĩa
Câu lệnh UPDATE được dùng để cập nhật bản ghi đã có trong một bảng.
7.2.Cú pháp
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
Ví dụ: Cập nhật Quê của bạn Trần Thế Hùng ở trên thành Quảng Bình, Lớp thành Công nghệ thông tin như sau:
Lưu ý: Hãy cẩn thận khi cập nhật bản ghi. Nếu bạn quên mệnh đề WHERE thì khi chạy câu lệnh UPDATE, sẽ thực hiên cập nhật toàn bộ bảng.
8. Câu lệnh DELETE
8.1. Định nghĩa
Câu lệnh DELETE dùng để xóa một dòng trong một bảng.
8.2. Cú pháp
DELETE FROM table_name
WHERE some_column=some_value;
Ví dụ: Thực hiện xóa dữ liệu của sinh viên Trần Thế Hùng khỏi Bảng Danh sách như sau:
Nếu muốn xóa tất cả dữ liệu, bạn thực hiện câu lệnh DELETE ALL với cú pháp: DELETE FROM table_name;
hoặc
DELETE * FROM table_name;
Khi đó, chỉ có dữ liệu bị xóa. Còn cấu trúc, các thuộc tính và chỉ mục không bị thay đổi.
9. Mệnh đề SELECT TOP
9.1. Định nghĩa
Mệnh đề SQL SELECT TOP được dùng để chỉ ra số lượng bản ghi trả về. Mệnh đề SELECT TOP rất hữu ích với những bảng lớn có hàng nghìn bản ghi. Việc trả về một số lượng lớn bản ghi có thể ảnh hưởng đến hiệu suất. Không phải tất cả mọi hệ thống cơ sở dữ liệu đều hỗ trợ mệnh đề SELECT TOP
10. Toán tử LIKE của SQL
10.1. Định nghĩa
Toán tử LIKE được dùng trong một mệnh đề WHERE để tìm kiếm theo một mẫu chỉ định trong một cột.
10.2. Cú pháp
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;
Ví dụ1: Lựa chọn tất cả sinh viên có Quê quán bắt đầu bằng chữ “H” trong Bảng Danh sách:
Ký hiệu “%” để định nghĩa ký tự đại diện trước và sau mẫu chỉ định. Ví dụ2: Lựa chọn tất cả sinh viên có Tên là “Châu” trong Bảng Danh sách:
Ví dụ3: Lựa chọn tất cả sinh viên có Tên và Tên đệm là “Ngọc” trong Bảng Danh sách:
11. Ký tự đại diện trong SQL
11.1. Định nghĩa
Ký tự đại diện được dùng để thay thế cho bất kỳ ký tự nào trong một chuỗi ký tự (string).
Trong SQL, ký tự đại diện được dùng cùng với toán tử LIKE.
Ký tự đại diện SQL được dùng để tìm kiếm bản ghi trong 1 bảng.
11.2. Các loại ký tự đại diện
Ký tự đại diện | Mô tả |
---|---|
% | Thay thế cho 0 hoặc từ 1 ký tự trở lên |
_ | Thay thế cho 1 ký tự đơn |
[Danh sách ký tự] | Nhóm các ký tự cần khớp |
[^Danh sách ký tự] hoặc [!Danh sách ký tự] | Không khớp dù chỉ 1 ký tự được chỉ định trong dấu ngoặc |
Về ví dụ cho % đã nói ở phần trước nên không đề cập ở phần này nữa. Ví dụ 1: Chọn tất cả sinh viên có Lớp bắt đầu bằng chữ “C” rồi đến 1 chữ khác, rồi đến chữ “n” từ Bảng Danh sách như sau:
Vì các ví dụ minh họa lần này dùng MySQl và MySQL không hỗ trợ tìm kiếm với [] và [^], [!] nên người viết sẽ minh họa ví dụ cho kiểu này vào dịp khác.
12. Toán tử IN trong SQL
12.1. Định nghĩa
Toán tử IN cho phép bạn chỉ định nhiều giá trị trong mệnh đề WHERE.
12.2. Cú pháp
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);
Ví dụ: Lựa chọn tất cả các sinh viên có Quê ở Nam Định, Hòa Bình và Yên Bái trong bảng Danh sách như sau:
13. Toán tử BETWEEN trong SQL
13.1. Định nghĩa
Toán tử BETWEEN dùng để lựa chọn các giá trị trong một phạm vi. Giá trị có thể là số, ký tự hoặc ngày.
13.2. Cú pháp
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
Ví dụ: Thêm cột Điểm vào Bảng Danh sách ở trên, chúng ta sẽ có bảng như sau:
Lựa chọn tất cả các bạn sinh viên có điểm từ 8.0 đến 9.0 từ bảng trên như sau:
Ví dụ 2: Lựa chọn tất cả các bạn sinh viên có điểm KHÁC từ 8.0 đến 9.0 từ bảng trên như sau:
III. Lời kết
Bài viết trên đây là sự tìm hiểu bước đầu của người viết về khái niệm SQL và 1 vài câu lệnh cơ bản. Chắc còn nhiều thiếu sót nên người viết sẽ tiếp tục bổ sung ở các biết viết sau. Link tham khảo: http://www.w3schools.com/
All rights reserved