MySQL: SELECT

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

Tổng quan

Câu lệnh SELECT được xem là câu lệnh nền tảng dùng để truy cập dữ liệu trong SQL. Đầu ra của câu lệnh SELECT là một tập kết quả được thể hiện dưới dạng một bảng ảo.

Câu lệnh SELECT trong một truy vấn sẽ hiển thị thông tin cần thiết trong bảng, nó sẽ lấy dữ liệu trên các hàng và cột từ một hoặc nhiều bảng.

SELECT còn nối hai bảng hoặc lấy một tập hợp con các cột từ một hoặc nhiều bảng. Nó cũng cho phép định nghĩa các cột được sử dụng cho một truy vấn. Cú pháp của SELECT có thể bao gồm một loạt các biểu thức cách nhau bằng dấu phẩy. Mỗi biểu thức trong câu lệnh sẽ là một cột trong tập kết quả. Các cột sẽ xuất hiện trong tập kết quả theo cùng một trình tự giống như thứ tự của biểu thức tương ứng trong câu lệnh truy vấn.

SELECT lấy các hàng từ cơ sở dữ liệu và cho phép lựa chọn một hoặc nhiều hàng hoặc cột từ một bảng. Dưới đây ta sẽ tìm hiểu các cú pháp khác nhau của câu lệnh SELECT.

SELECT không có FROM

Kể từ phiên bản SQL Server 2005 trở đi thì bạn có thể sử dụng SELECT mà không cần phải sử dụng mệnh đề FROM. Dưới đây là một số ví dụ thể hiện:

SELECT LEFT(N'MySQL',4); --Lấy 4 ký tự đầu tiên của chuỗi
SELECT RIGHT(N'Việt Nam',3); --Lấy 3 ký tự cuối của chuỗi
SELECT N'Môn học SQL', GETDATE(); --Hiển thị chuỗi có dấu và ngày tháng hiện thời

Giải thích:

Hàm LEFT() có tác dụng lấy 4 ký tự bên trái của chuỗi tương ứng, hàm RIGHT() lấy 3 ký tự bên phải chuỗi, hàm GETDATE() dùng để lấy ngày tháng và thời gian hiện tại, trong đó phần thời gian là giây được lấy với độ chính xác 3 con số.

Hiển thị tất cả các cột

Nếu bạn muốn hiển thị tất cả các cột của bảng thì bạn dùng dấu (*). Dấu này được dùng như một cách viết tắt để liệt kê toàn bộ các cột của bảng tương ứng trong mệnh đề FROM.

Cú pháp:

SELECT * FROM Tên_bảng;
Hoặc:
SELECT Tên_bảng.* FROM Tên_bảng;

, trong đó, Tên_bảng là tên của bảng mà bạn muốn lấy thông tin. Bạn có thể đưa vào số lượng bảng tuỳ ý, khi đó ta dùng dấu (,) để phân cách giữa các bảng. Có lưu ý là khi hai hoặc nhiều bảng được sử dụng thì hàng của môi bảng sẽ được ánh xạ với hàng của các bảng khác, và hoạt động này sẽ dân đến tốn rất nhiều thời gian truy xuất. Lời khuyên ở đây là bạn nên sử dụng cú pháp này kèm theo một điều kiện (sử dụng mệnh đề WHERE).

Ví dụ: Giả sử bạn muốn lấy thông tin của toàn bộ bảng Customer thì bạn làm như sau:

SELECT * FROM Costomer; --hoặc SELECT Costomer.* FROM Costomer;

Hiển thị các cột mong muốn

Nếu bạn chỉ muốn hiện thị những cột mà bạn muốn của bảng thôi thì bạn sử dụng cú pháp sau đây để thực hiện.

Cú pháp:

SELECT Các_cột FROM Tên bảng;

Ví dụ: Bạn chỉ muốn hiển thị cột Name (tên) và cột Gender (giới tính) của bảng Customer thôi thì bạn làm như sau:

SELECT name,gender FROM Customer;

Nối chuỗi trong tập kết quả

Trong tập kết quả bạn có thể nối các chuỗi để có được kết quả hiển thị thân thiện hoặc dễ hiểu hơn. Bạn sử dụng phép toán '+' để ghép nối chuỗi.

Lưu ý là khi ghép chuỗi với cột có kiểu không phải chuỗi thì bạn cần chuyển sang kiểu chuỗi đối với cột đó bằng cách dùng hàm sau: STR(Tên_cột).

Ví dụ:

select N'Mã khách hàng:' + STR(Customerid) + N', Họ và tên: ' + Name from Customer;

Tính giá trị trong tập kết quả

Trong tập kết quả hiển thị bạn cũng có thể tính giá trị của các cột (có kiểu số) bằng các phép toán như +, -, *, /, ... Ví dụ:

SELECT Mark,Mark*0.12 AS N'Điểm thưởng' FROM Marks;

Sử dụng mệnh đề DISTINCT

DISTINCT dùng để lấy một bản ghi trong những bản ghi giống nhau trong tập kết quả. Trong tập kết quả nếu có nhiều bản ghi (hàng dữ liệu) giống hệt nhau thì DISTINCT sẽ chỉ lấy lại một bản ghi trong những bản ghi giống nhau đó. Hay nói cách khác là DISTINCT sẽ ngăn chặn việc lấy ra các bản ghi trùng lặp.

Cú pháp:

SELECT DISTINCT <phần câu lệnh tiếp theo>;

Lưu ý rằng DISTINCT phải nằm ngay sau SELECT.

Ví dụ:

SELECT DISTINCT studentname FROM Student;

Kết quả của câu lệnh này là chỉ có một bản ghi sinh viên duy nhất được hiển thị, cho dùng bảng Student có thể có nhiều sinh viên trùng tên.

 

 

» Tiếp: SELECT với AS (Alias)
« Trước: INSERT với SELECT
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!