12/08/2018, 15:06

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 email
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 email
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 email
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.

  1. Nhấn chuột phải vào bảng Categories. Nhấp vào "Select Rows - Limit 1000"

  2. MySQL workbench sẽ tự động tạo một truy vấn SQL và dán vào trình soạn thảo.

  3. 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ổ.
0