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 namescũ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, WHEREbạ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 BYHAVINGchú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ử.