Professional Documents
Culture Documents
3.402823466E-38 –
Float 4 bytes
1.175493451E+38
1.7976931348623157E-308 –
Double 8 bytes
2.2250738585072014E+308
Kiểu dữ liệu của trường
Kiểu dữ liệu ngày, giờ
Kiểu dữ liệu Miền giá trị Diễn giải
1000-01-01 đến Date trình bày dưới dạng yyyy-mm-
Date
9999-12-31 dd.
Date và time trình bày dưới dạng
1000-01-01, 00:00:00
Datetime đến yyyy-mm-dd, hh:mm:ss.
9999-12-31, 23:59:59
• Sử dụng Alias:
Vd: Select Hosv as ‘Họ’, Tensv as ‘Tên’ from Sinhvien
Kết quả:
Họ Tên
Alias Table
• Alias table tạo một đối tượng thể hiện cho
Table. Khi thao tác, nguời sử dụng chỉ cần thao
tác trên alias của đối tuợng đó.
• VD: In danh sách sinh viên theo từng lớp học.
• Select sv.Hosv,sv.Tensv, sv.Ngaysinh,lh.Tenlop
from Sinhvien sv, Lophoc lh where
lh.Malop=sv.Malop
Mệnh đề Group By (Nhóm bởi ...)
• Group By đuợc sử dụng để kết nhóm các dữ liệu trong cùng
1 nhóm lại.
• Trước hết chúng ta cần hiểu các hàm tổng hợp (Aggregate
Functions) là gì:
• Sum: Hàm tính tổng
• Avg: Hàm lấy trung bình
• Count: Hàm tính số lần
• Min: Hàm tìm giá trị nhỏ nhất
• Max: Hàm tìm giá trị lớn nhất
• Đó là một số hàm tổng hợp (Aggregate) thông dụng. Chúng
có thể tham gia vào câu lệnh nhóm (Group by).
Group by đuợc sử dụng để gom nhóm
• VD: Cho biết sỉ số sinh viên của từng lớp.
• Select lh.Tenlop, count(sv.masv) as ‘Si so’ from
Sinhvien sv, Lophoc lh where
lh.Malop=sv.Malop
Group by lh.Tenlop
Tenlop Si so
PHP 8
MySQL 7
C# 10
SQL Count
• Count là một hàm, đếm số dòng trong câu Query.
Thông thường nó thường được sử dụng cùng với
Group by.
Vd: Đếm số lượng sinh viên
Select count(masv) from sinhvien
Vd: Đếm số lượng sinh viên theo từng lớp
• Select lh.Tenlop, count(sv.masv) as ‘Si so’ from
Sinhvien sv, Lophoc lh where lh.Malop=sv.Malop
Group by lh.Tenlop
SQL Sum
• Sum là hàm dùng để tính tổng giá trị một cột
trong câu SQL.
• Cú pháp:
• SELECT SUM("column_name") FROM
"table_name";
• VD: Tổng tiền học bổng của sinh viên
Select sum(hocbong) from sinhvien
Chú ý: Sum chỉ làm việc với các trường có kiểu dữ
liệu là số.
Tương tự như Count, sum cũng thuờng làm
việc với Group by
• VD: Tính tiền học bổng của từng lớp
Select lh.TenLop, Sum( sv.hocbong) from
sinhvien sv, Lophoc lh where lh.malop=sv.malop
Group by lh.TenLop
SQL AVG
• AVG là hàm tính trung bình trên cột.
• Tương tự như count, sum. AVG cũng làm việc với
Group by
Vd: Tính điểm trung bình của tất cả sinh viên
Select AVG( diem) from KetQua
Vd: Tính điểm trung bình của từng lớp
Select lh.Tenlop, AVG(kq.diem) from LopHoc lh,
Ketqua kq where lh.malop=kq.malop
Group by lh.Tenlop
MIN, MAX
Min là hàm tìm giá trị nhỏ nhất trên cột.
Cú pháp MIN:
• SELECT MIN ("column_name") FROM
"table_name";
Max là hàm tìm giá trị lớn nhất trên cột.
Cú pháp MAX:
• SELECT MAX("column_name") FROM
"table_name";
Mệnh đề Having
• Having là một câu lệnh điều kiện của Group
by.
VD: Truy vấn những lớp học có sỉ số trên 15 sinh
viên
Select lh.Tenlop, count(sv.masv) from Sinhvien
sv, Lophoc lh where sv.malop=lh.malop
Group by lh.Tenlop
Having count(sv.masv) > 15
Phân biệt Where & Having
• Bạn cần phân biệt Where và Having trong
cùng một câu lệnh. Where là câu lệnh lọc bớt
dữ liệu trước khi gom nhóm (Group)
• Having là câu lệnh lọc bớt dữ liệu sau khi đã
gom nhóm (Group) .
Một số hàm sử dụng trong MySQL
• Hàm UPPER: hàm này chuyển đổi chuỗi sang
dạng kiểu chữ hoa
VD: Select Upper(TenSV) from SinhVien
Kết quả: TenSV
LONG
AN
LY
Tương tự
• Hàm LOWER : Hàm này chuyển đổi chuỗi sang dạng kiểu chữ
thường.
• Hàm Len: Hàm này trả về chiều dài của chuỗi
• Vd: len(‘abc’) -> 3
• Hàm LTRIM : hàm này loại bỏ khoảng trống bên trái của chuỗi
• Hàm RTRIM : hàm này loại bỏ khoảng trống bên phải của chuỗi.
• Hàm LEFT : hàm này trả về chuỗi bên trái tính từ đầu cho đến vị
trí thứ n
Cú pháp Left(chuỗi, n)
• Vd: LEFT (‘123ABC’,3) ->123
Hàm trong MySQL
• Hàm RIGHT : hàm này trả về chuỗi bên phải
tính từ cuối cho đến vị trí thứ n
• Cú pháp: RIGHT( CHUỖI, N).
• Hàm Instr: hàm trả về vị trí chuỗi bắt đầu của
chuỗi con trong chuỗi cần xét
Cú pháp: Instr(chuỗi con, chuỗi cần xét)
Vd: Instr(‘123’,’abc123’) -> 3
Các hàm xử lý thời gian trong MySQL
• Hàm NOW(): ngày hiện tại dạng yyyy-mm-dd h:m:s
ví dụ: SELECT NOW(); //kết quả: 2015-02-2 08:03:33
• CURDATE(): ngày hiện tại dạng yyyy-mm-dd
ví dụ: SELECT CURDATE(); //kết quả: 2015-02-2
• YEAR(): xác định năm từ 1 ngày cho trước
ví dụ: Truy vấn năm sinh của sinh viên
Select TenSV, Year(ngaysinh) as’ nam’ from Sinhvien
TenSV nam
An 1993
Lan 1992