SELECT QUERY được sử dụng để lấy 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 khớp với một tiêu chí nhất định. Truy vấn chọn có thể được sử dụng trong 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 như sau
SELECT [DISTINCT|ALL ] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition][GROUP BY fieldName[s]] [HAVING condition] ORDER BY fieldName[s]
ĐÂY
- CHỌN là từ khóa SQL cho phép cơ sở dữ liệu biết rằng bạn muốn lấy dữ liệu
- [RIÊNG BIỆT. 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, “*” đã chọn tất cả các trường từ tên bảng đã chỉ định, fieldExpression thực hiện một số tính toán trên các trường đã chỉ định, chẳng hạn như cộng số hoặc ghép hai trường chuỗi thành một
- TỪ tên bảng 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 nối bằng từ khóa THAM GIA
- Đ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ả được 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. Một ví dụ về câu lệnh SELECT đơn giản trông giống như câu lệnh được hiển thị 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à 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 câu nói của bạn như thế
Ví dụ thực tế
Nhấp để tải xuống myflix DB được sử dụng cho các ví dụ thực tế
Bạn có thể học cách nhậ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
thành viên_ sốđầy đủ_têngiới tínhngày_của_sinhthể chất_địa chỉbưu chính_địa chỉ liên hệ_sốemail1Janet JonesNữ21-07-1980Số 1 Phố Số 4Private Bag0759 253 542janetjones@yagoo. cm2 Janet Smith Jones Nữ 23-06-1980 Melrose 123NULLNULLjj@fstreet. com3Robert PhilMale12-07-19893Đường 34NULL12345rm@tstreet. com4Gloria WilliamsNữ14-02-19842nd Street 23NULLNULLNULLban 2. bàn phim
moad_idtitledirectoryear_releveScategory_id1Pirates của Caribean 4ROB Marshall201112forgetting Sarah Marshalnicholas Stoller200823x-Mennull200Lấy 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`;
Thực thi đoạn script trên trong bàn làm việc của MySQL sẽ tạo ra các kết quả sau
thành viên_ sốđầy đủ_têngiới tínhngày_của_sinhthể chất_địa chỉbưu chính_địa chỉ liên hệ_sốemail1Janet JonesNữ21-07-1980Số 1 Phố Số 4Private Bag0759 253 542janetjones@yagoo. cm2 Janet Smith Jones Nữ 23-06-1980 Melrose 123NULLNULLjj@fstreet. com3Robert PhilMale12-07-19893Đường 34NULL12345rm@tstreet. com4Gloria WilliamsNữ14-02-19842nd Street 23NULLNULLNULLTruy 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 ta chỉ quan tâm đến việc chỉ nhận các trường full_names,giới tính, địa chỉ vật lý và email. Kịch bản sau đây sẽ giúp chúng tôi đạt được điều này
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
Thực thi đoạn script trên trong bàn làm việc của MySQL sẽ tạo ra các kết quả sau
full_namesgenderphysical_addressemailJanet Jones FemaleFirst Street Plot No 4 janet jones@yagoo. cmJanet Smith JonesNữMelrose 123jj@fstreet. comRobert PhilMan 3rd Street 34rm@tstreet. com Gloria Williams Nữ 2 Đường 23 NULLLấy danh sách phim
Hãy nhớ rằng trong cuộc thảo luận ở trên của chúng tôi rằng chúng tôi đề cập đến các biểu thức đã được sử dụng trong câu lệnh CHỌN. Giả sử chúng ta 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ó tiêu đề 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 nên để trong ngoặc. Chúng tôi cũng muốn có được năm mà bộ phim được phát hành. Đoạn script sau giúp chúng ta làm đ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[]
Thực thi tập lệnh trên trong bàn làm việc của MySQL sẽ tạo ra tập kết quả sau
Concat[`title`, ‘ [‘, `director`, ‘]']year_releasedCướp biển Caribean 4 [ Rob Marshall]2011Forgetting Sarah Marshal [Nicholas Stoller]2008NULL2008Code Name Black [Edgar Jimz]2010NULL2007NULL2007NULL2007Honey mooners [John Schultz]2005NULL2012Tên trường bí danh
Ví dụ trên đã trả về mã Nối làm tên trường cho kết quả của chúng tôi. Giả sử chúng tôi muốn sử dụng tên trường mang tính mô tả hơn trong tập hợp kết quả của mình. Chúng tôi sẽ sử dụng tên bí danh 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
- “CHỌN ` tên_cột. giá trị. biểu thức `” là câu lệnh CHỌN 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 tôi muốn trả về trong tập kết quả của chúng tôi 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`;
Ta được kết quả sau
Concatyear_releasedCướp biển vùng Caribean 4 [ Rob Marshall]2011Quên Sarah Marshal [Nicholas Stoller]2008NULL2008Mã tên Đen [Edgar Jimz]2010NULL2007NULL2007NULL2007Honey mooners [John Schultz]2005NULL2012Lấy danh sách thành viên hiển thị năm sinh
Giả sử chúng ta muốn lấy danh sách tất cả các thành viên hiển thị mã 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. Kịch bản hiển thị bên dưới giúp chúng tôi làm điều đó
SELECT `membership_number`,`full_names`,LEFT[`date_of_birth`,4] AS `year_of_birth` FROM members;
ĐÂY
- “LEFT[`date_of_birth`,4]” hàm chuỗi LEFT nhận tham số là ngày sinh và chỉ trả về 4 ký tự tính 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
Thực hiện truy vấn trên trong bàn làm việc của MySQL đối với myflixdb cho chúng tôi kết quả hiển thị bên dưới
Member_numberfull_namesyear_of_birth1Janet Jones19802Janet Smith Jones19803Robert Phil19894Gloria Williams1984SQL sử dụng MySQL Workbench
Bây giờ chúng tôi sẽ sử dụng bàn làm việc của MySQL để 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 tôi
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. Bàn làm việc của MySQL sẽ tự động tạo truy vấn SQL và dán vào trình chỉnh sửa
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. Bàn làm việc của MySQL đã tạo ra nó cho chúng tôi
Tại sao lại sử dụng lệnh SELECT SQL khi chúng ta có MySQL Workbench?
Bây giờ, bạn có thể 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 của MySQL để nhận được kết quả tương tự mà không cần biết về ngôn ngữ SQL. Tất nhiên 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 tốt hơn các câu lệnh SQL SELECT của mình
Bàn làm việc của MySQL nằm trong danh mục các công cụ QBE “Truy vấn bằng ví dụ”. Nó nhằm mục đích 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 không thể tạo dễ dàng bằng cách sử dụng các tiện ích Truy vấn bằng ví dụ như MySQL workbench
Để cải thiện năng suất, bạn có thể tạo mã bằng bàn làm việc của MySQL, 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 thức hoạt động của các câu lệnh SQL