0978359287
-
0383180086
niithanoi.education@gmail.com
Trang chủ
Giới thiệu
KHÓA HỌC
LẬP TRÌNH WEB FRONT END
LẬP TRÌNH WEB BACK END
LẬP TRÌNH WEB FULL STACK
LẬP TRÌNH MOBILE
LẬP TRÌNH GAME
ĐÀO TẠO DOANH NGHIỆP
KHÓA HỌC KHÁC
Tutorials
JAVA in 7 DAY
PHP in 7 DAY
PYTHON BASIC
JAVASCRIPT
THUẬT TOÁN
Tin tức
NIIT - ICT HÀ NỘI
CÔNG NGHỆ
SỰ KIỆN NỔI BẬT ICT
THỦ THUẬT CÔNG NGHỆ
TUYỂN DỤNG
Cảm nhận
Thư viện
Liên hệ
Đăng ký học
Trang chủ
Tutorials
SQL
CÂU LỆNH SELECT
Ngày đăng: 14/11/2020 -
Cập nhật: 14/11/2020
Cỡ chữ
Chia sẻ
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ệnh
SELECT
- 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
SELECT
trong 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
<tên cột | biểu thức> [ ,…]
[
FROM
<tên bảng> [ ,…] ]
[
WHERE
<điều kiện logic trên dòng / bộ> ]
[
GROUP BY
<các thuộc tính gom nhóm> ]
[
HAVING
<điều kiện logic gom nhóm> ]
[
ORDER BY
<các thuộc tính sắp xếp> ]
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)
SELECT
hoten, dchi
FROM
PHICONG ;
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ả:
SELECT
hoten
AS
hoten_phicong, dchi
AS
diachi_phicong
FROM
PHICONG ;
#2: Đặt bí danh tạm thời để rút ngắn câu lệnh truy vấn:
SELECT
p.hoten
AS
hoten_phicong, p.dchi
AS
diachi_phicong
FROM
PHICONG
AS
p;
#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:
SELECT
p.hoten hoten_phicong, p.dchi diachi_phicong
FROM
PHICONG p;
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 <tên bảng>
Ví dụ: Hiện thị tất cả dữ liệu của bảng PHICONG
SELECT
*
FROM
PHICONG;
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 <tên cột> FROM <tên bảng>
Ví dụ: Hiện thị họ tên phi công, loại bỏ các dòng trùng nhau.
SELECT DISTINCT
hoten
FROM
PHICONG;
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 đề
và
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
SELECT
hoten
FROM
PHICONG
WHERE
dchi =
'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 <tên cột> [ ,…]
FROM <tên bảng>
WHERE <tên cột> 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.
SELECT
hoten
FROM
PHICONG
WHERE
nuoc
IN
(
'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
<tên cột> [ ,…]
FROM
<tên bảng>
WHERE
<tên cột>
BETWEEN
<giá trị 1>
AND
<giá trị 2>;
Ví dụ: Tìm thông tin tất cả các chuyến bay từ 10000 km đến 15000 km
SELECT
*
FROM
CHUYENBAY
WHERE
khoangcach
BETWEEN
10000
AND
15000
;
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
<tên cột> [ ,…]
FROM
<tên bảng>
WHERE
<tên cột>
LIKE
<mẫu>;
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.
SELECT
hoten
FROM
PHICONG
WHERE
hoten
LIKE
'D%'
;
Ví dụ: Tìm họ tên phi công kết thúc bằng chữ s
SELECT
hoten
FROM
PHICONG
WHERE
hoten
LIKE
'%s'
;
Ví dụ: Tìm họ tên phi công có chứa ký tự ot
SELECT
hoten
FROM
PHICONG
WHERE
hoten
LIKE
'%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
SELECT
hoten
FROM
PHICONG
WHERE
hoten
LIKE
'_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ự
SELECT
hoten
FROM
PHICONG
WHERE
hoten
LIKE
'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ự
SELECT
hoten
FROM
PHICONG
WHERE
hoten
LIKE
'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
SELECT
hoten
FROM
PHICONG
WHERE
hoten
LIKE
'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
SELECT
hoten
FROM
PHICONG
WHERE
hoten
NOT
LIKE
'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ỉ.
SELECT
hoten
FROM
PHICONG
WHERE
dchi
IS
NULL
;
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.
SELECT
COUNT
(*)
AS
SOCT_ANH
FROM
CONGTY
WHERE
nuoc =
'Anh'
;
Ví dụ: Tính tuổi trung bình của các phi công sống tại Pháp
SELECT
AVG
(AGE)
AS
TUOI_TB
FROM
PHICONG
WHERE
DCHI =
'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Ệ
và
ĐẠ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: hello@niithanoi.edu.vn
Website:
https://niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
#niit #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python
Về trang trước
Bài tiếp theo
Gửi email
in trang
Chia sẻ
Bình luận Facebook
Cùng danh mục
1
MÔ HÌNH QUAN HỆ LÀ GÌ?
2
RÀNG BUỘC TRÊN CSDL QUAN HỆ
3
ĐẠI SỐ QUAN HỆ
4
[NEW] HƯỚNG DẪN CÀI ĐẶT MICROSOFT SQL SERVER
5
TRUY VẤN SQL: CREATE TABLE
6
NGÔN NGỮ THAO TÁC DỮ LIỆU (DML)
7
CÂU LỆNH SELECT
8
TRUY VẤN SQL NÂNG CAO (PHẦN 1)
9
TRUY VẤN SQL NÂNG CAO (PHẦN 2)
10
QUẢN TRỊ CSDL CƠ BẢN
11
HÀM - THỦ TỤC - TRINGGER
Tutorial
Học PHP trong 7 ngày
Học Lập Trình Python
Học Java trong 7 ngày
JavaScript
HTML
Thuật toán
CSS
JAVA OOP
SQL
Master Bigdata
Đăng ký tư vấn
Nhân viên gọi điện tư vấn miễn phí sau khi đăng ký
Được cập nhật các ưu đãi sớm nhất
Hotline: 0383180086
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Gửi yêu cầu tư vấn thành công!
Tư vấn cho tôi ngay !
Hãy đăng ký để nhận những thông tin mới nhất về học bổng mới nhất tại NIIT - ICT Hà Nội
Gửi cho tôi
Đóng lại
Đăng ký học tại NIIT - ICT Hà Nội
6260+ học viên đã theo học tại NIIT - ICT Hà Nội và có việc làm tốt trong ngành lập trình. Nắm lấy cơ hội ngay hôm nay!
0978 359 287
-
0383 180 086
hello@niithanoi.edu.vn
Chọn khóa học
KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS
KHÓA HỌC LẬP TRÌNH PHP WEB
Khóa học PHP Full stack [2023] cho người mới bắt đầu
Khóa học BIG DATA với Hadoop và Spark
Khóa học Lập trình Android tại Hà Nội
[Tuyển sinh 2023] Lập trình viên Quốc tế DigiNxt
Khóa học Tiền lương & Phúc lợi (C&B Excel) tại Hà Nội
LẬP TRÌNH GAME
Khóa học Lập trình Game Unity
LẬP TRÌNH WEB FRONT END
KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG
KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)
LẬP TRÌNH WEB BACK END
LẬP TRÌNH JAVA WEB VỚI FRAME WORK
Lập trình Web với Django
Lập trình PHP với Laravel Framework
CHƯƠNG TRÌNH ĐÀO TẠO ỨNG DỤNG CÔNG NGHỆ
Khóa học Tiền lương & Phúc lợi (C&B Excel) tại TP HCM
LẬP TRÌNH WEB FULL STACK
Khóa học Java Full stack (IJFD)
LẬP TRÌNH MOBILE
FRONT-END VỚI REACTJS VÀ REACT NATIVE
Lập trình Android Nâng cao
ĐÀO TẠO CHO DOANH NGHIỆP
KHÓA HỌC BUSINESS ANALYSIC TỪ CƠ BẢN ĐẾN NÂNG CAO 2023
Khóa học Magento: Làm chủ CMS TMĐT lớn nhất
Khóa học IOT: Xây dựng Sản phẩm IOT với Raspberry Pi
Khóa học Automation Testing Chuyên nghiệp
KHÓA HỌC DỰ ÁN
Học sử dụng bộ Office: Word, Excel, Power Point, Mail chuyên nghiệp
KHÓA HỌC KHÁC
VBA Excel Toàn Tập (Cơ Bản - Nâng Cao)
VBA Excel Nâng cao
Khóa học JMeter: Performance Testing
Khóa học Tester đạt chuẩn Quốc tế ISTQB Foundation Level
Khoá Học Tester đạt chuẩn quốc tế ISTQB Advanced Level
Bạn chưa chọn khóa học cần đăng ký
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Đăng ký ngay
Đăng ký học thành công!
Cảm ơn bạn đã đăng ký học tại NIIT - ICT HÀ NỘI!