Tải bản đầy đủ (.pdf) (32 trang)

bài giảng cơ sở dữ liệu quan hệ và sql chương 3: hàm SQL - cđ cntt hữu nghị việt hàn

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (275.54 KB, 32 trang )

Chương 3 HÀM SQL
- Lý thuyết: 3 tiết
- Thực hành: 2 tiết

Chương 3. Hàm SQL

3- 1


Hàm SQL
3.1 Tổng quan về hàm SQL


chương trình con thực hiện một chức năng nào đó



trả về chỉ một giá trị

Chương 3. Hàm SQL

3- 2


Hàm SQL
3.1 Tổng quan về hàm SQL


Phân loại



từng dòng dữ liệu: trả về một giá trị trên một dịng

nhóm các dòng dữ liệu: trả về một giá trị trên một nhóm
dịng


Chương 3. Hàm SQL

3- 3


Hàm SQL
3.2 Các hàm trên hàng đơn


kiểu dữ liệu số



kiểu dữ liệu ký tự



kiểu dữ liệu thời gian



Các hàm chuyển đổi kiểu

Chương 3. Hàm SQL


3- 4


Hàm SQL
3.2.1 Các hàm trên kiểu số
 Hàm ROUND(n[,m])



làm tròn n đến m chư˜ số thập phân (mặc định m=0)
m<0 thì làm trịn sớ bên trái dấu thập phân

Ví dụ
ROUND(4.923,1), kết quả là 4.9
ROUND(4.923,-1), kết quả là 0
ROUND(6.923,-1), kết quả là 10

Chương 3. Hàm SQL

3- 5


Hàm SQL
3.2.1 Các hàm trên kiểu số
 Hàm TRUNC(n[,m])


lấy m chữ số tính từ chấm thập phân (m=0).




m<0 thì cắt bỏ m chư˜ sớ bên trái dấu thập phân.

Ví dụ
TRUNC (4.923,1), kết quả là 4.9.
TRUNC(4.923), kết quả là 4.
TRUNC(4.923,-1), kết quả là 0

Chương 3. Hàm SQL

3- 6


Hàm SQL
3.2.1 Các hàm trên kiểu số
 Hàm CEIL(n)


trả về số nguyên nhỏ nhất lớn hơn hoặc bằng n

Ví dụ
CEIL(4.923), kết quả là 5


Hàm FLOOR(n)


trả về số nguyên lớn nhất nhỏ hơn hoặc bằng n


Ví dụ
FLOOR(4.923), kết quả là 4
Chương 3. Hàm SQL

3- 7


Hàm SQL
3.2.1 Các hàm trên kiểu số
 Hàm SQRT(n)


trả về căn bậc 2 của n, với n>=0

Ví dụ
SQRT(16), kết quả là 4


Hàm POWER(m,n)


trả về lũy thừa bậc n của m

Ví dụ
POWER(2,3), kết quả là 8
Chương 3. Hàm SQL

3- 8



Hàm SQL
3.2.1 Các hàm trên kiểu số
 Hàm SIGN(n)


Nếu n<0 thì SIGN(n)= -1



Nếu n=0 thì SIGN(n)= 0



Nếu n>0 thì SIGN(n)= 1

Ví dụ
SIGN(1724)=1.
SIGN(0)=0.
SIGN(-1724)=-1.
Chương 3. Hàm SQL

3- 9


Hàm SQL
3.2.1 Các hàm trên kiểu số
 Hàm ABS(n)

ABS(127)=127.
ABS(-127)=127.



Hàm MOD(m,n)


trả về phần dư của phép chia m cho n.

Ví dụ
MOD(5,3)=2.
MOD(4,3)=1.
Chương 3. Hàm SQL

3- 10


Hàm SQL
3.2.1 Các hàm trên kiểu số


Một số hàm khác
Hàm SQL
LOG(m,n)
SIN(n)
COS(n)
TAN(n)

Diễn giải
Cho logarit cơ số m của n.
Trả về sin của n (n tính bằng radian).
Cho cosin của n (n tính bằng radian).

Trả về tang của n (n tính bằng radian).

Chương 3. Hàm SQL

3- 11


Hàm SQL
3.2.2 Các hàm trên kiểu ký tự


Hàm CONCAT(char1, char2)


kết hợp của 2 chuỗi ký tự char1 và char2

Ví dụ
CONCAT(‘SQL’, ‘ORACLE’), kết quả là SQLORACLE.


Hàm INITCAP(char)


chuỗi với ký tự đầu các từ là ký tự hoa.

Ví dụ
INITCAP(oracle), kết quả là Oracle
Chương 3. Hàm SQL

3- 12



Hàm SQL
3.2.3 Các hàm trên kiểu ký tự


Hàm LOWER(char)


chuỗi ký tự viết thường

Ví dụ
LOWER(‘ORACLE’), kết quả là oracle.


Hàm UPPER(char)


chuỗi ký tự viết hoa.

Ví dụ
UPPER(oracle), kết quả là ORACLE
Chương 3. Hàm SQL

3- 13


Hàm SQL
3.2.3 Các hàm trên kiểu ký tự



Hàm REPLACE(char, search [,replace])


Thay chuỗi search có trong char bằng chuỗi replace

Ví dụ
REPLACE(‘SALESMAN’, ‘MAN’, ’ ’);
Kết quả là SALES


Hàm ASCII(char)


ký tự ASCII của byte đầu tiên của chuỗi char.

Ví dụ
ASCII(‘TOI’); kết quả là 84
Chương 3. Hàm SQL

3- 14


Hàm SQL
3.2.3 Các hàm trên kiểu ký tự


Hàm SUBSTR(char, m [,n])



chuỗi con lấy từ vị trí m về bên phải n ký tự,



nếu khơng chỉ định n thì lấy cho đến cuối chuỗi

Ví dụ
SUBSTR(‘ORACLE’,2,4); kết quả là RACL.
SUBSTR(‘ORACLE’,2); kết quả là RACLE.

Chương 3. Hàm SQL

3- 15


Hàm SQL
3.2.3 Các hàm trên kiểu ký tự


Hàm INSTR(char1, char2 [,n[,m]])


Tìm vị trí char2 trong char1 từ vị trí n, lần xuất hiện thứ m

Ví dụ
INSTR(‘ACCOUNTING’,'A'); kết quả là 1.


Hàm LENGTH(char)



chiều dài của chuỗi char

Ví dụ
LENGTH(‘SQL COURSE’), kết quả là 10.
Chương 3. Hàm SQL

3- 16


Hàm SQL
3.2.3 Các hàm trên kiểu thời gian


Hàm MONTHS_BETWEEN(d1, d2)


số tháng giữa ngày d1 và d2

Ví dụ
MONTHS_BETWEEN('01-01-2000','01-05-2000');
quả 5.


kết

Hàm ADD_MONTHS(d, n)


ngày d sau khi thêm n tháng


Ví dụ
ADD_MONTHS('01-05-2000’, 3); kết quả là 01-08-2000
Chương 3. Hàm SQL

3- 17


Hàm SQL
3.2.3 Các hàm trên kiểu thời gian


Hàm NEXT_DAY(d, char)


ngày tiếp theo ngày d có thứ chỉ bởi char

Ví dụ
NEXT_DAY(‘17-11-2000’,’Friday’); kết quả là 24-112000.


Hàm LAST_DAY(d)


ngày cuối cùng trong tháng chỉ bởi d.

Ví dụ
LAST_DAY(‘17-11-2000’); kết quả là 30
Chương 3. Hàm SQL


3- 18


Hàm SQL
3.2.3 Các hàm trên kiểu thời gian
Hàm SQL

Diễn giải

ROUND(date1)

Trả về ngày date1 tại thời điểm giữa trưa
12:00 AM

ROUND(date1,’Month’)

Nếu date1 nằm trong nửa tháng đầu trả về
ngày đầu tiên của tháng, ngược lại sẽ trả về
ngày đầu tiên của tháng sau.

ROUND(date1,’Year’)

Nếu date1 nằm trong nửa năm đầu trả về
ngày đầu tiên của tháng, ngược lại sẽ trả về
ngày đầu tiên của năm sau.

TRUNC(date1, ’Month’)

Trả về ngày đầu tiên của tháng chứa date1


TRUNC(date1, ’Year’)

Trả về ngày đầu tiên của năm chứa date1
Chương 3. Hàm SQL

3- 19


Hàm SQL
3.2.4 Các hàm chuyển đổi kiểu


Hàm TO_CHAR(number|date, ‘fmt’)


Chuyển kiểu số và ngày về kiểu ký tự theo định dạng fmt

Ví dụ
TO_CHAR(‘17-11-2000’,’DD/MM’); kết quả là 17/11.
TO_CHAR(‘17-11-2005’,’MM/YY’); kết quả là 11/05.


Hàm TO_NUMBER(char)


Chuyển chuỗi ký tự có nội dung số sang số
TO_NUMBER(‘12345’); kết quả là 12345.
Chương 3. Hàm SQL

3- 20



Hàm SQL
3.2.4 Các hàm chuyển đổi kiểu


Hàm TO_DATE(‘char’,’fmt’)


Chuyển ký tự sang kiểu ngày với định dạng fmt.

Ví dụ
TO_DATE(‘17-11-2005’,’dd-mm-yy’); kết quả 17-11-05


Hàm GREATEST(value1, value2,…)


giá trị lớn nhất trong dãy giá trị

Ví dụ
GREATEST(12, 45, 6, 78); kết quả là 78.
Chương 3. Hàm SQL

3- 21


Hàm SQL
3.2.4 Các hàm chuyển đổi kiểu



Hàm DECODE(Expr, Search1, Result1, Default)


trả về giá trị result1nếu expr = search1



trả về giá trị default nếu expr <> search1

Ví dụ
DECODE(‘SALE’, ‘SALE’, 500,0); kết quả là 500.
DECODE(‘SALE’, ‘MANAGE’, 500,0); kết quả là 0.

Chương 3. Hàm SQL

3- 22


Hàm SQL
3.3 Một số hàm bổ sung


Hàm NULLIF
NULLIF(expr1, expr2)


trả về giá trị NULL nếu expr1= expr2.




trả về giá trị của expr1 nếu ngược lại

Ví dụ
NULLIF(Length(‘ORA’), Length(‘ORA’)); kết quả là NULL
NULLIF(Length(‘SQL’), Length(‘ORAC’)); kết quả 3

Chương 3. Hàm SQL

3- 23


Hàm SQL
3.3 Một số hàm bổ sung


Hàm COALESCE
COALESCE(expr1, expr2, …exprn)


trả về giá trị của tham số đầu tiên khác NULL

Ví dụ
Giả sử v1=null; v2=null, v3=1, v4=2.
COALESCE(v1, v2, v3)=1;
COALESCE(v1, v2, v4, v3)=2;

Chương 3. Hàm SQL

3- 24



Hàm SQL
3.3 Một số hàm bổ sung


Câu lệnh CASE
CASE expr
WHEN comparison_expr1 THEN return_expr1
[WHEN comparison_expr2 THEN return_expr2
WHEN comparison_exprn THEN return_exprn
ELSE else_expr]
END


so sánh expr lần lượt với các comparison_exprx



trả về return_expr tương ứng
Chương 3. Hàm SQL

3- 25


×