Làm thế nào để sử dụng câu lệnh Select trong Database
1. Cú pháp câu lệnh SQL select Đây là lệnh SQL được sử dụng thường xuyên nhất và có cú pháp tổng quát sau SELECT [DISTINCT|ALL ] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition][GROUP BY fieldName(s)] [HAVING condition] ORDER BY fieldName(s) SELECT là một ...
1. Cú pháp câu lệnh SQL select
- Đây là lệnh SQL được sử dụng thường xuyên nhất và có cú pháp tổng quát sau
SELECT [DISTINCT|ALL ] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition][GROUP BY fieldName(s)] [HAVING condition] ORDER BY fieldName(s)
- SELECT là một từ khóa trong Database để khi bạn muốn lấy dữ liệu
- [DISTINCT | ALL] là các từ khóa tùy chọn có thể được sử dụng để điều chỉnh các kết quả được trả về từ câu lệnh SQL SELECT.
- FROM tableName là bắt buộc và phải chứa ít nhất một bảng, nhiều bảng phải được phân tách bằng cách sử dụng dấu phẩy hoặc từ khoá JOIN.
- WHERE điều kiện là tùy chọn, nó có thể được sử dụng để xác định kết quả được trả về từ câu truy vấn.
- GROUP BY được sử dụng để kết hợp các bản ghi có cùng giá trị trường.
- Điều kiện HAVING được sử dụng để xác định tiêu chuẩn khi làm việc bằng cách sử dụng với từ khóa GROUP BY.
- ORDER BY được sử dụng để sắp xếp của kết quả.
- [ * ] Này để chọn tất cả các cột trong bảng.
SELECT * FROM members;
2. Ví dụ thực tế
Table 1 : Member table
number | full_names | gender | date_ of_ birth | address | number | |
---|---|---|---|---|---|---|
1 | Janet Jones | Male | 07/21/1990 | 10 Le Dinh Duong | 01678783415 | jones@gmail.com |
2 | Gloria Anna | Female | 08/01/1988 | 01 Vung Tau | 01215859065 | anna@gmail.com |
3 | Gloria Alex | Male | 09/02/1998 | 20 Phan Chau Trinh | 01645755644 | alex@gmail.com |
4 | Janet Marry | Female | 12/12/1999 | 01 Bach Dang | 01874565432 | marry@gmail.com |
Table 2: Movies table
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
1 | X-Men | NULL | 2008 | 1 |
2 | Code Name Black | Edgar JimzL | 2010 | 2 |
3 | Honey mooners | John Schultz | 2005 | 8 |
4 | Davinci Code | NULL | 2007 | NULL |
Bắt đầu với table member
- Lấy tất cả các cột trong table member
SELECT DISTINCT "column_name" FROM "table_name";
- Kết quả sẽ là :
number | full_names | gender | date_ of_ birth | address | number | |
---|---|---|---|---|---|---|
1 | Janet Jones | Male | 07/21/1990 | 10 Le Dinh Duong | 01678783415 | jones@gmail.com |
2 | Gloria Anna | Female | 08/01/1988 | 01 Vung Tau | 01215859065 | anna@gmail.com |
3 | Gloria Alex | Male | 09/02/1998 | 20 Phan Chau Trinh | 01645755644 | alex@gmail.com |
4 | Janet Marry | Female | 12/12/1999 | 01 Bach Dang | 01874565432 | marry@gmail.com |
- Giả sử chúng ta chỉ muốn lấy các trường Full Names, Gender , Address, Email thì thực hiện câu lệnh sau:
SELECT `full_names`,`gender`,`address`, `email` FROM `members`;
full_names | gender | address | |
---|---|---|---|
Janet Jones | Male | 10 Le Dinh Duong | jones@gmail.com |
Gloria Anna | Female | 01 Vung Tau | anna@gmail.com |
Gloria Alex | Male | 20 Phan Chau Trinh | alex@gmail.com |
Janet Marry | Female | 01 Bach Dang | marry@gmail.com |
Bắt đầu với table movies, lấy danh sách các bộ phim
Hãy nhớ rằng như chúng ta đã quyết định từ đầu thì ta sẽ tập trung vào việc sử dụng câu lệnh SELECT. Bây giờ ta muốn lấy danh sách các bộ phim từ cơ sở dữ liệu. Chúng ta muốn lấy được tiêu đề của phim và tên của đạo diễn trong cùng một trường. Tên đạo diễn được đặt trong dấu ngoặc. Chúng ta cũng cần lấy năm phát hành của bộ phim. Đoạn lệnh sau sẽ giúp ta làm việc đó:
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
- Concat() là hàm MySQL dùng để nối dữ liệu các cột
- Dòng “Concat (title,’(’,director,’)’)” lấy tiêu đề, thêm một dấu mở và dấu đóng bao tên dạo diễn lại.
- Các tham số được chia nhau bởi dấu ‘,’ trong hàm Concat()
- Thực thi đoạn mã trên trong MySQL workbench sẽ được kết quả như sau
Concat(title, ' (', director, ')') | year_released |
---|---|
Pirates of the Caribean 4 ( Rob Marshall) | 2011 |
Forgetting Sarah Marshal (Nicholas Stoller) | 2008 |
NULL | 2008 |
Code Name Black (Edgar Jimz) | 2010 |
NULL | 2007 |
NULL | 2007 |
NULL | 2007 |
Honey mooners (John Schultz) | 2005 |
NULL | 2012 |
3. Định danh cho trường
Ví dụ sau trả về đoạn mã kết nối tên trường trong kết quả của chúng ta. Chúng ta muốn mô tả nhiều hơn về tên trường trong kết quả trả về. Chúng ta sử dụng định danh cột để làm điều đó. Cú pháp sau sẽ giúp định danh một cột
SELECT `column_name|value|expression` [AS] `alias_name`;
- SELECT column_name|value|expression là câu lệnh SELECT thông thường có thể là một tên cột, giá trị hoặc biểu thức
- "[AS]" là từ khóa để đặt tên định danh của biểu thức, giá trị hoặc tên trường sẽ được trả về.
- Alias_name là tên định danh mà chúng ta muốn trả lại trong tập kết quả của chúng ta làm tên trường. Câu truy vấn trên sẽ thực hiện như sau:
SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;
Concat | year_released |
---|---|
Pirates of the Caribean 4 ( Rob Marshall) | 2011 |
Forgetting Sarah Marshal (Nicholas Stoller) | 2008 |
NULL | 2008 |
Code Name Black (Edgar Jimz) | 2010 |
NULL | 2007 |
NULL | 2007 |
NULL | 2007 |
Honey mooners (John Schultz) | 2005 |
NULL | 2012 |
Lấy danh sách thành viên hiển thị theo năm sinh
Giả sử chúng ta muốn có một danh sách tất cả các thành viên thể hiện số thành viên, tên đầy đủ và năm sinh, chúng ta có thể sử dụng chức năng chuỗi LEFT để trích xuất năm sinh từ ngày sinh. Đoạn mã được hiển thị bên dưới giúp chúng ta làm điều đó.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
- LEFT (date_of_birth, 4) hàm LEFT chấp nhận ngày sinh là tham số và chỉ trả về 4 ký tự từ bên trái.
- AS year_of_birth là định danh cột sẽ được trả lại trong kết quả của chúng ta. Lưu ý từ khoá AS là tùy chọn, bạn có thể bỏ nó ra và truy vấn sẽ vẫn làm việc.
Kết quả sẽ được như thế này
membership_number | full_names | year_of_birth |
---|---|---|
1 | Janet Jones | 1980 |
2 | Janet Smith Jones | 1980 |
3 | Robert Phil | 1989 |
4 | Gloria Williams | 1984 |
4. Sử dụng MySQL workbench
Bây giờ chúng ta sẽ sử dụng MySQL workbench để tạo ra mã hiển thị tất cả các tên trường từ bảng categories của chúng ta.
-
Nhấn chuột phải vào bảng Categories. Nhấp vào "Select Rows - Limit 1000"
-
MySQL workbench sẽ tự động tạo một truy vấn SQL và dán vào trình soạn thảo.
-
Kết quả truy vấn sẽ được hiển thị
Lưu ý rằng chúng ta không tự viết câu lệnh SELECT. MySQL workbench sẽ tạo ra nó cho chúng ta.
Tại sao dùng SELECT SQL trong khi chúng ta đã có MySQL Workbench?
Bây giờ, bạn có thể suy nghĩ tại sao học SQL SELECT để truy vấn dữ liệu từ cơ sở dữ liệu trong khi bạn chỉ đơn giản có thể sử dụng một công cụ như MySQL workbench để có được kết quả tương tự mà không có kiến thức về ngôn ngữ SQL. Tất nhiên điều đó có thể đúng, nhưng học cách sử dụng lệnh SELECT cho phép bạn linh hoạt hơn và kiểm soát các câu lệnh SQL SELECT của bạn. MySQL workbench nằm trong danh mục công cụ QBE "Query by Example". Nó nhằm giúp tạo các câu lệnh SQL nhanh hơn để tăng năng suất người dùng. Học lệnh SQL SELECT có thể cho phép bạn tạo các truy vấn phức tạp mà không thể dễ dàng tạo ra bằng cách sử dụng QBE như MySQL Workbench. Để nâng cao hiệu suất, bạn có thể tạo mã bằng MySQL Workbench sau đó tùy chỉnh nó để đáp ứng yêu cầu của bạn. Điều này chỉ có thể xảy ra nếu bạn hiểu các lệnh SQL hoạt động như thế nào!
5. Tổng kết
- SQL SELECT được sử dụng để truy vấn dữ liệu từ cơ sở dữ liệu và nó là lệnh được sử dụng phổ biến nhất.
- Cú pháp đơn giản nhất có cú pháp "SELECT * FROM tableName;"
- Các biểu thức cũng có thể được sử dụng trong câu lệnh select. Ví dụ "SELECT quantity + price FROM Sales" Lệnh SQL SELECT cũng có thể có các tham số tùy chọn khác như WHERE, GROUP BY, HAVING, ORDER BY. Chúng sẽ được nghiên cứu ở kỳ sau.
- MySQL workbench có thể giúp tạo ra các câu lệnh SQL, thực thi chúng và tạo ra kết quả đầu ra trong cùng một cửa sổ.