Lecture 09 - Read SQL Tables - For Student
Lecture 09 - Read SQL Tables - For Student
CƠ SỞ DỮ LIỆU
Cơ sở dữ liệu
Bài 09: Thực hành với câu lệnh SELECT
Học liệu sử dụng
Bộ dữ liệu
AdventureworksDW2019
6
Câu lệnh SQL
• Kiểu dữ liệu
• Giá trị NULL
• Sắp xếp kết quả trả ra
• Lọc có điều kiện
• Kết hợp bảng bằng phép UNION
• Kết hợp bảng bằng phép JOIN
• Truy vấn con & Biểu thức bảng chung (CTE)
• Tổng hợp dữ liệu và hàm Cửa sổ
7
SELECT và FROM
• Truy vấn SELECT cơ bản nhất tuân theo mẫu SELECT... FROM
<tên_bảng>.
• Truy vấn này là cách để lấy dữ liệu từ một bảng duy nhất.
• Nếu bạn muốn lấy tất cả dữ liệu từ bảng sản phẩm trong cơ sở dữ liệu
mẫu, chỉ cần sử dụng truy vấn sau:
SELECT * FROM DimProduct
• Nếu bạn muốn lấy lấy ra các cột cụ thể bảng sản phẩm trong cơ sở
dữ liệu mẫu, chỉ cần sử dụng truy vấn sau:
SELECT ProductKey
, EnglishProductName FROM DimProduct
8
WHERE
9
ORDER BY
10
GROUP BY
GROUP N Aggregate N
11
HAVING
SELECT Key
, Aggfunc(Col_1)
FROM Table_1
GROUP BY Key
HAVING Other_aggfunc(Col_2)_condition
12
Câu lệnh SELECT
Thành phần Biểu thức Vai trò
5 SELECT <Chọn danh sách> Xác định cột nào sẽ trả về
1 FROM <Nguồn bảng> Xác định (các) bảng để truy vấn
2 WHERE <Điều kiện tìm kiếm> Lọc các hàng bằng điều kiện
3 GROUP BY <Nhóm theo danh sách> Sắp xếp các hàng theo nhóm
4 HAVING <Điều kiện tìm kiếm> Lọc nhóm bằng điều kiện
6 ORDER BY <Sắp xếp theo danh sách> Sắp xếp đầu ra
Tên tạm thời trong (Alias) SQL được sử dụng để cung cấp cho một bảng
hoặc một cột trong bảng, một tên tạm thời (Chỉ tồn tại trong khoảng
thời gian của truy vấn)
Ví dụ:
SELECT calendar_year
, calendar_month
FROM
(
SELECT DISTINCT
YEAR(FullDateAlternateKey) as calendar_year
, MONTH(FullDateAlternateKey) as calendar_month
FROM DimDate
) as calendar
Truy vấn con (Subquery)
Viết truy vấn hiển thị các cột Product key, EnglishProductNameName và Color từ các hàng
trong dbo. Bảng DimProduct. Chỉ hiển thị những hàng trong đó Số tiền bán hàng vượt quá
1.000 đô la và ngày đặt hàng trong năm 2010
Ví dụ:
SELECT Productkey
, EnglishProductNameName
, Color
FROM DimProduct
WHERE Productkey in
(
SELECT Productkey
FROM FactInternetSales
WHERE SalesAmount > 1000
)
Bảng tạm (Temporary table)
Trong SQL, bảng tạm là các bảng tồn tại tạm thời
Ví dụ:
SELECT DISTINCT
YEAR(FullDateAlternateKey) as calendar_year
, MONTH(FullDateAlternateKey) as calendar_month
INTO #calendar
FROM DimDate
SELECT
calendar_year
, calendar_month
FROM #calendar
CTEs
Biểu thức Bảng Chung (Common Table Expression - CTE) là tập kết quả của một truy
vấn tồn tại tạm thời và chỉ để sử dụng trong ngữ cảnh của một truy vấn lớn hơn
SELECT
calendar_year
,calendar_month
FROM calendar
Truy vấn con so với CTE - Bài tập
Truy vấn Product key, Salesamount, OrderDate, Shipdate từ bảng FactResellerSales. Với điều
kiện, chỉ truy vấn những hàng trong đó màu không phải là màu xanh lam.
Truy vấn Product key, Salesamount, OrderDate, Shipdate từ bảng FactResellerSales. Với điều kiện, những
hàng trong EnglishProductCategory chứa “Bike”.
Tài liệu tham khảo