Truy vấn SELECT trong MySQL là gì?
SELECT QUERY được sử dụng để tìm nạp dữ liệu từ cơ sở dữ liệu MySQL. Cơ sở dữ liệu lưu trữ dữ liệu để truy xuất sau này. Mục đích của MySQL Select là trả về từ các bảng cơ sở dữ liệu, một hoặc nhiều hàng phù hợp với một tiêu chí nhất định. Truy vấn chọn có thể được sử dụng bằng ngôn ngữ kịch bản như PHP, Ruby hoặc bạn có thể thực thi nó thông qua dấu nhắc lệnh.
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 chung sau đây
SELECT [DISTINCT|ALL ] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition][GROUP BY fieldName(s)] [HAVING condition] ORDER BY fieldName(s)ĐÂY
- SELECT là từ khóa SQL cho phép cơ sở dữ liệu biết rằng bạn muốn truy xuất dữ liệu.
- [DISTINCT | ALL] là các từ khóa tùy chọn có thể được sử dụng để tinh chỉnh kết quả trả về từ câu lệnh SQL SELECT. Nếu không có gì được chỉ định thì TẤT CẢ được coi là mặc định.
- {* | [fieldExpression [AS newName]} phải chỉ định ít nhất một phần, "*" được chọn tất cả các trường từ tên bảng được chỉ định, fieldExpression thực hiện một số tính toán trên các trường được chỉ định như thêm số hoặc gộp hai trường chuỗi thành một.
- 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 dấu phẩy hoặc được nối bằng từ khóa JOIN.
- Điều kiện WHERE là tùy chọn, nó có thể được sử dụng để chỉ định tiêu chí trong tập kết quả trả về từ truy vấn.
- GROUP BY được sử dụng để tập hợp các bản ghi có cùng giá trị trường.
- Điều kiện HAVING được sử dụng để chỉ định tiêu chí khi làm việc bằng từ khóa GROUP BY.
- ORDER BY được sử dụng để chỉ định thứ tự sắp xếp của tập kết quả.
*
Biểu tượng Ngôi sao được sử dụng để chọn tất cả các cột trong bảng. Ví dụ về câu lệnh SELECT đơn giản trông giống như hình bên dưới.
SELECT * FROM `members`;
Câu lệnh trên chọn tất cả các trường từ bảng thành viên. Dấu chấm phẩy là một câu lệnh kết thúc. Nó không bắt buộc nhưng được coi là một thông lệ tốt để kết thúc những tuyên bố của bạn như vậy.
Ví dụ thực tế
Nhấp để tải xuống Cơ sở dữ liệu myflix được sử dụng cho các ví dụ thực tế.
Bạn có thể học cách nhập tệp .sql vào MySQL WorkBench
Các ví dụ được thực hiện trên hai bảng sau
Bảng 1: bảng thành viên
số_thành viên | tên đầy đủ | giới tính | ngày sinh | địa chỉ vật lý | địa chỉ bưu điện | số contct_ | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Giống cái | 21-07-1980 | Khu phố đầu tiên số 4 | Túi riêng | 0759 253 542 | Địa chỉ email này đã được bảo vệ từ spam bots. Bạn cần bật Javascript để xem nó. |
2 | Janet Smith Jones | Giống cái | 23-06-1980 | Melrose 123 | VÔ GIÁ TRỊ | VÔ GIÁ TRỊ | Địa chỉ email này đã được bảo vệ từ spam bots. Bạn cần bật Javascript để xem nó. |
3 | Robert Phil | Nam giới | 12-07-1989 | 3 đường 34 | VÔ GIÁ TRỊ | 12345 | Địa chỉ email này đã được bảo vệ từ spam bots. Bạn cần bật Javascript để xem nó. |
4 | Gloria Williams | Giống cái | 14-02-1984 | 2 Đường 23 | VÔ GIÁ TRỊ | VÔ GIÁ TRỊ | VÔ GIÁ TRỊ |
Bảng 2: bảng phim
movie_id | tiêu đề | giám đốc | year_released | Thể loại ID |
---|---|---|---|---|
1 | Cướp biển vùng Caribean 4 | Rob Marshall | 2011 | 1 |
2 | Quên Sarah Marshal | Xe đẩy Nicholas | 2008 | 2 |
3 | X Men | VÔ GIÁ TRỊ | 2008 | VÔ GIÁ TRỊ |
4 | Tên mã Màu đen | Edgar Jimz | 2010 | VÔ GIÁ TRỊ |
5 | Những cô gái nhỏ của bố | VÔ GIÁ TRỊ | 2007 | số 8 |
6 | Thiên thần và ác quỷ | VÔ GIÁ TRỊ | 2007 | 6 |
7 | Mật mã Da Vinci | VÔ GIÁ TRỊ | 2007 | 6 |
9 | Honey mooners | John Schultz | 2005 | số 8 |
16 | 67% có tội | VÔ GIÁ TRỊ | 2012 | VÔ GIÁ TRỊ |
Nhận danh sách thành viên
Giả sử rằng chúng tôi muốn lấy danh sách tất cả các thành viên thư viện đã đăng ký từ cơ sở dữ liệu của mình, chúng tôi sẽ sử dụng tập lệnh hiển thị bên dưới để thực hiện điều đó.
SELECT * FROM `members`;
Việc thực thi tập lệnh trên trong MySQL workbench sẽ tạo ra các kết quả sau.
số_thành viên | tên đầy đủ | giới tính | ngày sinh | địa chỉ vật lý | địa chỉ bưu điện | số contct_ | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Giống cái | 21-07-1980 | Khu phố đầu tiên số 4 | Túi riêng | 0759 253 542 | Địa chỉ email này đã được bảo vệ từ spam bots. Bạn cần bật Javascript để xem nó. |
2 | Janet Smith Jones | Giống cái | 23-06-1980 | Melrose 123 | VÔ GIÁ TRỊ | VÔ GIÁ TRỊ | Địa chỉ email này đã được bảo vệ từ spam bots. Bạn cần bật Javascript để xem nó. |
3 | Robert Phil | Nam giới | 12-07-1989 | 3 đường 34 | VÔ GIÁ TRỊ | 12345 | Địa chỉ email này đã được bảo vệ từ spam bots. Bạn cần bật Javascript để xem nó. |
4 | Gloria Williams | Giống cái | 14-02-1984 | 2 Đường 23 | VÔ GIÁ TRỊ | VÔ GIÁ TRỊ | VÔ GIÁ TRỊ |
Truy vấn ở trên của chúng tôi đã trả về tất cả các hàng và cột từ bảng thành viên.
Giả sử chúng tôi chỉ quan tâm đến việc chỉ nhận được đầy đủ các trường tên đầy đủ, giới tính, địa chỉ_thông tin_cấp và chỉ email. Tập lệnh sau đây sẽ giúp chúng tôi đạt được điều này.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
Việc thực thi tập lệnh trên trong MySQL workbench sẽ tạo ra các kết quả sau.
tên đầy đủ | giới tính | địa chỉ vật lý | |
---|---|---|---|
Janet Jones | Giống cái | Khu phố đầu tiên số 4 | Địa chỉ email này đã được bảo vệ từ spam bots. Bạn cần bật Javascript để xem nó. |
Janet Smith Jones | Giống cái | Melrose 123 | Địa chỉ email này đã được bảo vệ từ spam bots. Bạn cần bật Javascript để xem nó. |
Robert Phil | Nam giới | 3 đường 34 | Địa chỉ email này đã được bảo vệ từ spam bots. Bạn cần bật Javascript để xem nó. |
Gloria Williams | Giống cái | 2 Đường 23 | VÔ GIÁ TRỊ |
Nhận danh sách phim
Hãy nhớ rằng trong cuộc thảo luận ở trên của chúng ta rằng chúng ta đã đề cập đến các biểu thức được sử dụng trong các câu lệnh SELECT. Giả sử chúng tôi muốn lấy danh sách phim từ cơ sở dữ liệu của mình. Chúng tôi muốn có tên phim và tên của đạo diễn phim trong một lĩnh vực. Tên của đạo diễn phim phải được đặt trong ngoặc đơn. Chúng tôi cũng muốn lấy năm mà bộ phim được phát hành. Tập lệnh sau đây giúp chúng tôi thực hiện điều đó.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
ĐÂY
- Hàm Concat () MySQL được sử dụng để nối các giá trị cột lại với nhau.
- Dòng "Concat (` title`, '(', `director`, ')') lấy tiêu đề, thêm dấu ngoặc mở theo sau là tên của đạo diễn rồi thêm dấu ngoặc đóng.
Các phần chuỗi được phân tách bằng dấu phẩy trong hàm Concat ().
Việc thực thi tập lệnh trên trong MySQL workbench sẽ tạo ra tập kết quả sau.
Concat (`title`, '(', 'director`,') ') | year_released |
---|---|
Cướp biển vùng Caribean 4 (Rob Marshall) | 2011 |
Quên Sarah Marshal (Nicholas Stoller) | 2008 |
VÔ GIÁ TRỊ | 2008 |
Tên mã Black (Edgar Jimz) | 2010 |
VÔ GIÁ TRỊ | 2007 |
VÔ GIÁ TRỊ | 2007 |
VÔ GIÁ TRỊ | 2007 |
Honey mooners (John Schultz) | 2005 |
VÔ GIÁ TRỊ | 2012 |
Tên trường bí danh
Ví dụ trên trả về mã Kết nối làm tên trường cho kết quả của chúng tôi. Giả sử chúng ta muốn sử dụng tên trường mô tả hơn trong tập kết quả của chúng ta. Chúng tôi sẽ sử dụng tên bí danh của cột để đạt được điều đó. Sau đây là cú pháp cơ bản cho tên bí danh cột
SELECT `column_name|value|expression` [AS] `alias_name`;
ĐÂY
- "SELECT` column_name | value | expression `" là câu lệnh SELECT thông thường có thể là tên cột, giá trị hoặc biểu thức.
- "[AS]" là từ khóa tùy chọn trước tên bí danh biểu thị biểu thức, giá trị hoặc tên trường sẽ được trả về dưới dạng.
- "` alias_name` " là tên bí danh mà chúng ta muốn trả về trong tập kết quả làm tên trường.
Truy vấn ở trên với tên cột có ý nghĩa hơn
SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;
Chúng tôi nhận được kết quả sau
Concat | year_released |
---|---|
Cướp biển vùng Caribean 4 (Rob Marshall) | 2011 |
Quên Sarah Marshal (Nicholas Stoller) | 2008 |
VÔ GIÁ TRỊ | 2008 |
Tên mã Black (Edgar Jimz) | 2010 |
VÔ GIÁ TRỊ | 2007 |
VÔ GIÁ TRỊ | 2007 |
VÔ GIÁ TRỊ | 2007 |
Honey mooners (John Schultz) | 2005 |
VÔ GIÁ TRỊ | 2012 |
Bắt danh sách thành viên hiển thị năm sinh
Giả sử chúng ta muốn lấy một danh sách tất cả các thành viên hiển thị số thành viên, họ tên và năm sinh, chúng ta có thể sử dụng hàm LEFT string để trích xuất năm sinh từ trường ngày sinh. Tập lệnh hiển thị bên dưới giúp chúng tôi thực hiện điều đó.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
ĐÂY
- "LEFT (` date_of_birth`, 4)" các chuỗi chức năng LEFT chấp nhận ngày tháng năm sinh như các tham số và chỉ trả lại 4 ký tự từ bên trái.
- "AS` year_of_birth` " là tên bí danh cột sẽ được trả về trong kết quả của chúng tôi. Lưu ý từ khóa AS là tùy chọn , bạn có thể bỏ qua và truy vấn vẫn hoạt động.
Việc thực thi truy vấn trên trong MySQL workbench so với myflixdb cho chúng ta kết quả được hiển thị bên dưới.
số_thành viên | tên đầy đủ | năm sinh |
---|---|---|
1 | Janet Jones | 1980 |
2 | Janet Smith Jones | 1980 |
3 | Robert Phil | 1989 |
4 | Gloria Williams | 1984 |
SQL sử dụng MySQL Workbench
Bây giờ chúng ta sẽ sử dụng MySQL workbench để tạo tập lệnh sẽ hiển thị tất cả các tên trường từ bảng danh mục của chúng ta.
1. Nhấp chuột phải vào Bảng danh mục. Nhấp vào "Chọn hàng - Giới hạn 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 tôi đã không tự viết câu lệnh SELECT. MySQL workbench đã tạo ra nó cho chúng tôi.
Tại sao sử dụng lệnh SELECT SQL khi chúng ta có MySQL Workbench?
Bây giờ, bạn có thể đang nghĩ tại sao phải học lệnh SQL SELECT để truy vấn dữ liệu từ cơ sở dữ liệu khi bạn có thể chỉ cần sử dụng một công cụ như bàn làm việc MySQL để có được kết quả tương tự mà không cần kiến thức về ngôn ngữ SQL. Tất nhiên điều đó là có thể, nhưng học cách sử dụng lệnh SELECT giúp bạn linh hoạt hơn và kiểm soát được các câu lệnh SQL SELECT của mình .
MySQL workbench thuộc loại công cụ QBE " Truy vấn theo ví dụ ". Nó nhằm giúp tạo các câu lệnh SQL nhanh hơn để tăng năng suất của 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 các tiện ích Query by Ví dụ như MySQL workbench.
Để cải thiện năng 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ách hoạt động của các câu lệnh SQL!
Tóm lược
- Từ khóa SQL SELECT được sử dụng để truy vấn dữ liệu từ cơ sở dữ liệu và đây là lệnh được sử dụng phổ biến nhất.
- Dạng đơn giản nhất có cú pháp "SELECT * FROM tableName;"
- Biểu thức cũng có thể được sử dụng trong câu lệnh select. Ví dụ "CHỌN số lượng + giá TỪ Bán hàng"
- 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 thảo luận sau.
- MySQL workbench có thể giúp phát triển 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ổ.