2.1 Giới thiệu về SQL
Nếu bạn có một cơ sở dữ liệu (DB) và trong đó có một bảng chứa một số dữ liệu, thì nhiệm vụ phổ biến nhất là tìm một số dữ liệu nhất định trong bảng này. Đó là những gì SQL đã được phát minh ra cách đây 40 năm.
SQL là viết tắt của Ngôn ngữ truy vấn có cấu trúc .
Truy vấn SQL đơn giản nhất trông như thế này:
SELECT column1, column2, … columnN FROM table
Giả sử bạn có một bảng nhân viên với danh sách các nhân viên khởi nghiệp của bạn:
nhận dạng | tên | nghề nghiệp | lương | tuổi | ngày tham gia |
---|---|---|---|---|---|
1 | Ivanov Ivan | lập trình viên | 100.000 | 25 | 30-06-2012 |
2 | Petrov Petr | lập trình viên | 80.000 | 23 | 2013-08-12 |
3 | Ivanov Serge | Kiểm thử | 40.000 | ba mươi | 2014-01-01 |
4 | Rabinovich Moisha | Giám đốc | 200.000 | 35 | 2015-05-12 |
5 | kirienko anastasia | Quản lý văn phòng | 40.000 | 25 | 2015-10-10 |
6 | Vaska | con mèo | 1.000 | 3 | 2018-01-01 |
Bạn muốn viết một truy vấn employee names
cũng sẽ hiển thị chúng salaries
, thì bạn cần viết một truy vấn:
SELECT name, salary FROM employee
Bạn sẽ nhận được kết quả truy vấn:
tên | lương |
---|---|
Ivanov Ivan | 100.000 |
Petrov Petr | 80.000 |
Ivanov Serge | 40.000 |
Rabinovich Moisha | 200.000 |
kirienko anastasia | 40.000 |
Vaska | 1.000 |
Nếu bạn muốn hiển thị tất cả các cột trong bảng của mình thì thay vì liệt kê tên của tất cả các cột, bạn chỉ cần viết một dấu hoa thị. Ví dụ:
SELECT * FROM employee
Bạn sẽ nhận được kết quả truy vấn:
nhận dạng | tên | nghề nghiệp | lương | tuổi | ngày tham gia |
---|---|---|---|---|---|
1 | Ivanov Ivan | lập trình viên | 100.000 | 25 | 30-06-2012 |
2 | Petrov Petr | lập trình viên | 80.000 | 23 | 2013-08-12 |
3 | Ivanov Serge | Kiểm thử | 40.000 | ba mươi | 2014-01-01 |
4 | Rabinovich Moisha | Giám đốc | 200.000 | 35 | 2015-05-12 |
5 | kirienko anastasia | Quản lý văn phòng | 40.000 | 25 | 2015-10-10 |
6 | Vaska | con mèo | 1.000 | 3 | 2018-01-01 |
2.2 Chế độ xem nâng cao của truy vấn SQL
Ngôn ngữ SQL được thiết kế thân thiện với người dùng nhất có thể.
Đầu tiên, trường hợp của văn bản yêu cầu không quan trọng . Bạn có thể viết CHỌN, Chọn hoặc chọn và mọi thứ sẽ hoạt động. Thứ hai, ngắt dòng không được tính đến theo bất kỳ cách nào . DBMS vẫn sẽ biến truy vấn thành một chuỗi dài, vì vậy bạn có thể viết nó theo bất kỳ cách nào bạn muốn.
Như bạn có thể đã đoán, các từ khóa CHỌN và TỪ không bị giới hạn. Nếu không thì sẽ không có quá nhiều cuộc nói chuyện xung quanh SQL. Dạng xem mở rộng của truy vấn SQL trông giống như sau:
SELECT columns
FROM table
WHERE condition
GROUP BY columns
HAVING columns
ORDER BY sorting
Với sự trợ giúp của từ khóa, WHERE
bạn có thể đặt điều kiện / bộ lọc cho các hàng đã chọn.
Ví dụ 1 . Hãy viết một truy vấn sẽ chọn nhân viên có nghề "Lập trình viên":
SELECT * FROM employee WHERE occupation = 'Programmer'
Và chúng tôi nhận được kết quả truy vấn sau:
nhận dạng | tên | nghề nghiệp | lương | tuổi | ngày tham gia |
---|---|---|---|---|---|
1 | Ivanov Ivan | lập trình viên | 100.000 | 25 | 30-06-2012 |
2 | Petrov Petr | lập trình viên | 80.000 | 23 | 2013-08-12 |
Như bạn có thể thấy, do thực hiện truy vấn, chỉ các hàng có nghề nghiệp của nhân viên được gọi là "Lập trình viên" mới được hiển thị.
Các từ khóa GROUP BY
, ORDER BY
và HAVING
chúng tôi sẽ đề cập trong các bài giảng tiếp theo. Và trong phần này, chúng tôi sẽ phân tích thêm một vài ví dụ với từ WHERE.
Ví dụ 2 . Bây giờ, hãy viết một truy vấn sẽ hiển thị cho chúng ta tất cả nhân viên có mức lương lớn hơn 100K. Đây là những gì nó sẽ trông giống như:
SELECT * FROM employee WHERE salary > 100000
Chúng tôi nhận được kết quả truy vấn sau:
nhận dạng | tên | nghề nghiệp | lương | tuổi | ngày tham gia |
---|---|---|---|---|---|
4 | Rabinovich Moisha | Giám đốc | 200.000 | 35 | 2015-05-12 |
Ví dụ 3 . Bây giờ hãy thử một cái gì đó khó khăn hơn. Làm cách nào để hiển thị tất cả nhân viên đã được thuê vào năm 2015? Và như thế này:
SELECT * FROM employee WHERE YEAR(join_date) = 2015
Chúng tôi nhận được kết quả truy vấn sau:
nhận dạng | tên | nghề nghiệp | lương | tuổi | ngày tham gia |
---|---|---|---|---|---|
4 | Rabinovich Moisha | Giám đốc | 200.000 | 35 | 2015-05-12 |
5 | kirienko anastasia | Quản lý văn phòng | 40.000 | 25 | 2015-10-10 |
Trong truy vấn này, chúng tôi sử dụng một hàm đặc biệt YEAR()
cho phép chúng tôi lấy năm từ một ngày và sau đó so sánh năm của ngày đó với số 2015.
2.3 Chú thích trong truy vấn SQL
Và một điểm quan trọng nữa là comment trong câu truy vấn SQL. Nhận xét là một điều rất hữu ích. Thứ nhất, bạn có thể viết giải thích và / hoặc ý tưởng của bạn trong đó. Thứ hai, với sự trợ giúp của các nhận xét, bạn có thể vô hiệu hóa mã bị hỏng. Hoặc nhận xét phiên bản cũ của mã.
SQL, giống như Java, có nhận xét một dòng và nhiều dòng. Hơn nữa, một bình luận nhiều dòng trông giống như trong Java. sự xuất hiện của nó:
/*
comment text
comment text
comment text
*/
Tất nhiên, nó cũng có thể được sử dụng trong một dòng. Ví dụ:
/*comment text*/
Ngoài ra còn có kiểu chú thích "từ đầu đến cuối dòng", tương tự như "//" trong Java. Chỉ trong SQL, bạn mới cần viết hai ký tự trừ và một dấu cách . Quan điểm chung về một nhận xét như vậy:
-- comment text
Ví dụ:
SELECT * FROM employee -- WHERE YEAR(join_date) = 2015
Trong ví dụ trên, chúng tôi đã nhận xét điều kiện truy vấn, vì vậy MySQL sẽ chỉ thực hiện truy vấn:
SELECT * FROM employee
2.4 Phát âm SQL
Nếu bạn giao tiếp với khách hàng nước ngoài hoặc vượt qua cuộc phỏng vấn trực tuyến cho một công ty Mỹ, thì bạn có thể được hỏi về trải nghiệm của mình với ngôn ngữ tiếp theo . Bạn sẽ thành thật nói rằng bạn không làm việc với anh ta và ngay lập tức trượt cuộc phỏng vấn.
Và vấn đề là ngôn ngữ SQL ban đầu được gọi là SEQUEL, được phát âm giống như phần tiếp theo (ˈsēkwəl), vì vậy rất thường xuyên ở Hoa Kỳ và các nguồn tiếng Anh khác, bạn sẽ không nghe thấy "escuel" mà là "phần tiếp theo". SQL được viết và phần tiếp theo được đọc. Đây là một nghịch lý lịch sử.
GO TO FULL VERSION