Dựa vào hình 4, cho biết câu lệnh tương ứng hiển thị học viên có tên gồm 4 ký tự:?

Mục Lục

  • 1. Làm quen với câu lệnh SELECT
  • 2. Các mệnh đề và Toán tử phổ biến với SELECT
  • 3. Các phép toán số học và hàm thường kết hợp với SELECT
  • Tổng kết


Như các bạn đã biết INSERT, UPDATE, DELETE trong DML làm thay đổi dữ liệu bảng. Nhưng trong một số trường hợp chúng ta chỉ cần truy vấn dữ liệu thì không thể dùng 3 lệnh trên được.


Vậy ta phải làm sao? Nghe có vẻ bế tắc – nhưng trong nhóm DML còn có một lệnh có tính chất khác hoàn toàn với phần còn lại, đó chính là câu lệnhSELECT- Truy vấn và hiển thị dữ liệu.



[Một số bảng, thuộc tính, dữ liệu trong các ví dụ không có sẵn. Bạn hãy thêm vào để kiểm tra nhé.]

1. Làm quen với câu lệnh SELECT


Lệnh SELECTtrong SQL cho phép truy vấn và hiện thị dữ liệu theo ý muốn người dùng từ một hoặc nhiều bảng có liên kết với nhau.


Cú pháp câu lệnh SELECT:



SELECT [ ,…]
[ FROM [ ,…] ]
[ WHERE ]
[GROUP BY ]
[HAVING ]
[ ORDER BY ]



Ví dụ: Liệt kê họ tên và địa chỉ của tất các các phi công từ bảng PHICONG [xem lại CSDL mẫu của phần trước]



SELECThoten,dchi

FROMPHICONG;



Thứ tự các thuộc tính theo sau SELECT xác định thứ tự hiển thị của các cột trong bảng kết quả.


Và với câu lệnh SELECT chúng ta có thể đặt lại tên của các thuộc tính – Việc đặt lại tên này không ảnh hưởng gì đến bảng đượcc truy vấn, vì kết quả ta nhận được là một bảng mới dựa trên bảng được truy vấn này.



1.1. SELECT ... AS



AS được dùng để đặt lại tên thuộc tính hoặc bí danh cho bảng - ta kết hợp SELECT với từ khoá AS như sau:


  • #1: Đặt lại thuộc tính [tên cột] cho bảng kết quả:



SELECThotenAShoten_phicong,dchiASdiachi_phicong

FROMPHICONG;




  • #2: Đặt bí danh tạm thời để rút ngắn câu lệnh truy vấn:



SELECTp.hotenAShoten_phicong,p.dchiASdiachi_phicong

FROMPHICONGASp;




  • #3: AS là tuỳ chọn có thể bỏ qua, có nghĩa là ta có thể rút ngắn câu lệnh hơn nữa:



SELECTp.hotenhoten_phicong,p.dchidiachi_phicong

FROMPHICONGp;



Nhưng mình khuyên bạn nên viết rõ ràng AS để câu lệnh SQL dễ đọc hơn.


Nếu cùng thực thi trong MS – SQL Server thì cả #1, #2 và #3 đều cho ra kết quả như nhau.


1.2. SELECT *



Dùng để thể hiện thị tất cả dữ liệu của một bảng bất kỳ


Cú pháp: SELECT * FROM


Ví dụ: Hiện thị tất cả dữ liệu của bảng PHICONG




SELECT*FROMPHICONG;



1.3. SELECT DISTINCT



Giả sử trong trường hợp có nhiều dòng dữ liệu trùng nhau gây khó khăn cho việc kiểm tra. Ta có thể dùng SELECT DISTINCT để loại bỏ các dòng bị trùng và chỉ giữ lại một.


Cú pháp: SELECT DISTINCT FROM


Ví dụ: Hiện thị họ tên phi công, loại bỏ các dòng trùng nhau.




SELECTDISTINCThotenFROMPHICONG;


2. Các mệnh đề và Toán tử phổ biến với SELECT


Chúng ta có rất nhiều cách sử dụng SELECT để lấy ra đúng các bản ghi mong muốn bằng cách sử dụng thêm các mệnh đềtoán tử.


2.1. Mệnh đề WHERE



WHERE là một mệnh đề tuỳ chọn, được dùng để chỉ ra một tập các điều kiện chọn -> những bộ nào thỏa mãn các điều kiện sẽ là các bộ trong bảng kết quả.


Điều kiện chọn:



  • Các điều kiện chọn chỉ có thể đặt sau WHERE hoặc HAVING [xem phần GROUP BY]
  • Các điều kiện chọn là một biểu thức logic


Trong biểu thức logic thì ta còn sử dụng được các toán tử:

  • Các phép toán số học
  • Các phép toán so sánh với các toán tử: , >=, != []
  • Các toán tử AND, OR và NOT với thứ tự ưu tiên NOT, AND, OR
  • Các toán tử IN, LIKE, BETWEEN, IS NULL ,...


Ví dụ: Tìm họ tên phi công sống ở Paris



SELECThoten

FROMPHICONG

WHEREdchi='Paris';



2.2. Toán tử IN



Mệnh đề IN cho phép chỉ ra nhiều giá trị trong mệnh đề WHERE


Cú pháp:



SELECT [ ,…]
FROM
WHERE IN [giá trị 1, giá trị 2, …, giá trị n];



Ví dụ: Tìm họ tên các phi công ở các nước Anh, Pháp hoặc Úc.



SELECThoten

FROMPHICONG

WHEREnuocIN['Phap','Anh','Uc'];



2.3. Toán tử BETWEEN



Toán tử BETWEEN cho phép chọn một giá trị trong một giới hạn. Giá trị có thể là số, chuỗi hoặc ngày


Cú pháp:



SELECT [ ,…]
FROM
WHERE BETWEEN AND ;



Ví dụ: Tìm thông tin tất cả các chuyến bay từ 10000 km đến 15000 km



SELECT*

FROMCHUYENBAY

WHEREkhoangcachBETWEEN10000AND15000;



2.4. Toán tử LIKE



Toán tử LIKE được sử dụng trong mệnh đề WHERE để tìm một mẫu cụ thể trong một cột.


SELECT [ ,…]
FROM
WHERE LIKE ;



Các dạng của mẫu:


  • %: Không hoặc nhiều ký tự
  • -: Một ký tự duy nhất
  • [ Danh sách các ký tự ]: Tập hợp các ký tự cùng so khớp
  • [^ Danh sách các ký tự ]: Chỉ khớp với một ký tự nằm trong [ ]


Ví dụ: Tìm họ tên phi công bắt đầu bằng chữ D.



SELECThoten

FROMPHICONG

WHEREhotenLIKE'D%';




Ví dụ: Tìm họ tên phi công kết thúc bằng chữ s



SELECThoten

FROMPHICONG

WHEREhotenLIKE'%s';



Ví dụ: Tìm họ tên phi công có chứa ký tự ot



SELECThoten

FROMPHICONG

WHEREhotenLIKE'%ot%';



Và chúng ta có thể kết hợp mẫu lại


Ví dụ: Tìm tên phi công có ký tự m ở vị trí thứ 2




SELECThoten

FROMPHICONG

WHEREhotenLIKE'_m%';



Ví dụ: Tìm tên phi công bắt đầu bằng chữ S và có ít nhất 2 ký tự



SELECThoten

FROMPHICONG

WHEREhotenLIKE'S_%';



Ví dụ: Tìm tên phi công bắt đầu bằng chữ S và có ít nhất 3 ký tự



SELECThoten

FROMPHICONG

WHEREhotenLIKE'S__%';



Ví dụ: Tìm tên phi công bắt đầu bằng chữ S và kết thúc bằng chữ t



SELECThoten

FROMPHICONG

WHEREhotenLIKE'S%t';



Ngược lại, bạn có thể tìm kết quả ngược lại với LIKE bằng NOT LIKE


Ví dụ: Tìm tên phi công không bắt đầu bằng chữ S




SELECThoten

FROMPHICONG

WHEREhotenNOTLIKE'S%';



2.5. Giá trị NULL



Trong một dòng dữ liệu, một vài thuộc tính có thể nhận giá trị NULL. Giá trị NULL có thể là:


  • Giá trị không rõ
  • Giá trị không tồn tại


Các kết quả của bất kỳ biểu thức số học với giá trị NULL sẽ là NULL [Ví dụ: 5 + NULL -> NULL]. Để kiểm tra giá trị NULL dùng toán tử IS NULL hoặc IS NOT NULL.


Ví dụ: Tìm họ tên phi công không rõ địa chỉ.




SELECThoten

FROMPHICONG

WHEREdchiISNULL;


3. Các phép toán số học và hàm thường kết hợp với SELECT


Một số phép toán hoặc hàm thường không sử dụng đơn lẻ mà được tích hợp khi sử dụng mệnh đề SELECT, WHERE và HAVING.


Phần này chúng ta sẽ không đi sâu, khi thực hành bạn có thể tự tìm thêm theo các từ khóa ở bên dưới.


Các toán tử số học: +, -, *, /



  • Độ ưu tiên: * hoặc /, + hoặc –
  • Sử dụng dấu ngặc đơn [] để thay đổi độ ưu tiên này
  • Nếu một toán hạng là NULL, kết quả sẽ là NULL


Các hàm SQL Server thao tác với chuỗi, ngày:


  • Các hàm chuỗi: LEN, UPPER, LOWER, LEFT, RIGHT, LTRIM, RTRIM, …
  • Các hàm ngày: GETDATE, DAY, MONTH, YEAR, DATEDIFF, ISDATE, ...


Các hàm SQL Server hỗ trợ tính toán toán học:


  • Hàm AVG [Tính giá trị trung bình] = tổng các giá trị không NULL / số các giá trị không NULL
  • Các hàm MIN, MAX, COUNT có thể sử dụng cho CHAR, VARCHAR, DATE và các kiểu dữ liệu số
  • Hàm SUM, AVG chỉ sử dụng duy nhất cho kiểu số


Ví dụ:Đếm số công ty có trụ sở tại Anh.



SELECTCOUNT[*]ASSOCT_ANH

FROMCONGTY

WHEREnuoc='Anh';



Ví dụ: Tính tuổi trung bình của các phi công sống tại Pháp



SELECTAVG[AGE]ASTUOI_TB

FROMPHICONG

WHEREDCHI='Pháp';


Tổng kết


Sau khi tìm hiểu xong phần câu lệnh SELECT trong SQL, mình nghĩ bạn đã có thể tự mìnhh vọc vạch những điều thú vị của SQL.


Và đừng quên là vận dụng các kiến thức lý thuyết của phần MÔ HÌNH QUAN HỆĐẠI SỐ QUAN HỆ để hiểu và học lập trình SQL nhanh hơn.


Các câu lệnh SELECT luôn được lựa chọn sử dụng trong các phần mềm bởi những ưu thế của nó mà bạn cũng đã biết rồi. Hãy luyện tập và tự đào sâu thêm thật nhiều điều vi diệu trong phần lập trình SQL – nó sẽ mở ra cho bạn nhiều hướng đi cơ sở mới sau này.



---

HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI

Học Lập trình chất lượng cao [Since 2002]. Học làm Lập trình viên. Hành động ngay!

Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội

SĐT: 02435574074 - 0914939543

Email:

Website://niithanoi.edu.vn

Fanpage: //facebook.com/NIIT.ICT/

#niit #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python

Video liên quan

Chủ Đề