Bài giảng Cơ sở dữ liệu nâng cao - Chương 3: Cơ bản về Oracle - Nguyễn Thị Mỹ Dung

Bài giảng  
CƠ SỞ DỮ LIỆU  
NÂNG CAO  
Số tc: 2; LT: 20; Btập: 10  
GV: Nguyễn Thị Mỹ Dung  
Khối lớp: Đại học L2  
Chương 3: Cơ bản về Oracle  
1
NỘI DUNG MÔN HỌC  
1
Chương 1. Tổng quan CSDL phân tán (4)  
Chương 2. Tổng quan CSDL hướng đối tượng  
2
3
Chương 3. Cơ bản về Oracle (4)  
Chương 4: Lập trình PL/SQL (4)  
Chương 5: Procedure, Function (4)  
4
5
6
Chương 6: Thiết kế đối tượng (6)  
7
Chương 7: Truy vấn trong CSDL HĐT (4)  
Chương 3: Cơ bản về Oracle  
2
Chương 3: Cơ bản về ORACLE  
I. Các kiểu dữ liệu trong Oracle  
II. Các hàm thông dụng  
III. Thiết kế, xoá, sửa bảng  
IV. Bài tập thực hành  
Chương 3: Cơ bản về Oracle  
3
I. Các kiểu dữ liệu  
Kiểu  
Diễn giải  
VARCHAR2 Dùng để khai báo chuỗi ký tự với  
chiều dài thay đổi (2000 byte)  
VARCHAR Tương tự VARCHAR2 (Oracle khuyên  
nên dùng Varchar2)  
NUMBER Dùng để chứa các mục tin dạng số  
dương, số âm, số với dấu chấm động.  
Number(p, s); Number(p), Number  
INTEGER Dùng để khai báo kiểu chuỗi ký tự với  
độ dài biến đổi, (2Gb)  
DATE  
Dùng để chứa dữ liệu ngày, thời gian  
Chương 3: Cơ bản về Oracle  
4
Các kiểu dữ liệu (tt)  
Kiểu  
CHAR  
Diễn giải  
Dùng để khai báo chuỗi ký tự với  
chiều dài cố định (255 byte)  
FLOAT  
LONG  
Dùng để khai báo kiểu dấu chấm động  
Dùng để khai báo kiểu chuỗi ký tự với  
độ dài biến đổi (2GB). Thường để  
chứa văn bản.  
Chương 3: Cơ bản về Oracle  
5
II. Các hàm thông dụng  
1. LENGTH (<chuỗi>): Trả về chiều dài chuỗi  
Select LENGTH ('lop DHCNTT') LEN  
From Dual -- len = 10  
2. INSTR(<chuỗi a>, <chuỗi con b>,  
<vị trí bắt đầu tìm n>,<số lần xuất hiện m>)  
Tìm vị trí chuỗi b trong chuỗi a bắt đầu từ vị trí n,  
lần xuất hiện thứ m.  
n<0: tìm từ phải sang trái  
Select INSTR ('CORORATE FLOOR','OR',3,2)  
From Dual -- vị trí 13  
6
Chương 3: Cơ bản về Oracle  
Các hàm xử lý dữ liệu (tt)  
3. SUBSTR (<chuỗi a>, <vị trí bắt đầu cắt lấy n>,  
<số ký tự cần cắt m>)  
Cắt lấy chuỗi con của chuỗi a, lấy từ vị trí n về  
phải m ký tự, nếu không chỉ m thì lấy cho đến  
cuối chuỗi .  
n<0: vị trí cắt đếm từ phải sang trái  
Select SUBSTR('ORACLE',1,3) Substring  
From Dual --ORA  
4. CONCAT (<chuỗia>,<chuỗib>): Nối 2 chuỗi a, b  
Select CONCAT ('Lop DHCNTT',' Khoa SP Toan-  
Tin') Substring  
From Dual -- Lop DHCNTT Khoa SP Toan-Tin  
Chương 3: Cơ bản về Oracle  
7
Các hàm xử lý dữ liệu (tt)  
5. SUBOWER/UPPER/INITCAPSTR (<chuỗi>)  
Chuyển chuỗi thành chuỗi viết thường /hoa /ký  
tự đầu các từ viết hoa.  
6. LTRIM/RTRIM(<chuỗi a>, <chuỗi b>)  
Loại bỏ chuỗi b ở bên trái/ phải chuỗi a  
Select LTRIM(‘khoa su pham toan - tin’, ’khoa’)  
From Dual; -- su pham toan - tin  
Select RTRIM(‘LAST WORDx’, ’xy’)  
FROM Dual; -- LAST WORD  
Chương 3: Cơ bản về Oracle  
8
Các hàm xử lý dữ liệu (tt)  
7. REPLACE (chuỗi a, chuỗi b [,chuỗi c])  
Thay tất cả các chuỗi b có trong chuỗi a bằng  
chuỗi c  
SELECT JOB, REPLACE (JOB, ‘SALESMAN’,  
‘SALESPERSON’)  
FROM EMP  
WHERE DEPTNO =30 OR DEPTNO =20;  
Chương 3: Cơ bản về Oracle  
9
Các hàm xử lý dữ liệu (tt)  
8. SYSDATE(chuỗi a, chuỗi b [,chuỗi c])  
Hàm lấy ngày tháng hiện hành của hệ thống  
SELECT SYSDATE FROM DUAL  
9. EXTRACT (YEAR|MONTH|DAY FROM <chuỗi  
ngày>) Tách lấy năm|tháng|ngày của <chuỗi ngày>  
Select EXTRACT(Month FROM DATE  
‘2001-05-07’)  
FROM Dual;  
-- 5  
Select EXTRACT(DAY FROM Sysdate)  
FROM Dual;  
Chương 3: Cơ bản về Oracle  
10  
Các hàm xử lý dữ liệu (tt)  
10. MONTHS_BETWEEN(<ngày 1>, <ngày 2>)  
Cho biết số tháng giữa <ngày1> và <ngày2>  
Select MONTHS_BETWEEN  
(DATE ‘1981-01-02’, DATE ‘1980-01-02’)  
FROM Dual --12  
11. ADD_MONTHS (<ngày>, n) Thêm n tháng  
vào <ngày>  
Select ADD_MONTHS (DATE ’1981-01-02’, 2)  
FROM Dual; --3  
Chương 3: Cơ bản về Oracle  
11  
Các hàm xử lý dữ liệu (tt)  
12. NEXT_DAY(<ngày>, <thứ>)  
Cho biết <thứ> sau <ngày> là ngày nào  
Select NEXT_DAY(DATE ‘2015-04-10’, 'friday')  
FROM Dual; --17-04-2015  
13. LAST_DAY (<ngày>) Cho biết ngày cuối  
cùng trong tháng chỉ bởi <ngày>  
Select LAST_DAY (DATE ‘2015-04-10’)  
FROM Dual; --30-04-2015  
Chương 3: Cơ bản về Oracle  
12  
Các hàm xử lý dữ liệu (tt)  
14. TO_CHAR(<số>): Chuyển số sang chuỗi  
TO_CHAR(<ngày>, <chuỗi định dạng>):Chuyển  
ngày sang chuỗi theo định dạng  
Select TO_CHAR(DATE'2011-09-20',  
'DD-MM-YYYY')  
FROM Dual;  
-- ‘20-09-2011’  
16. TO_NUMBER(<chuỗi ký số>): Chuyển chuỗi  
ký số sang dạng số  
Select TO_NUMBER('123')+TO_NUMBER('34')  
FROM Dual;  
=> 157  
Chương 3: Cơ bản về Oracle  
13  
Các hàm xử lý dữ liệu (tt)  
17. TO_DATE(<chuỗi dàng ngày tháng>, <chuỗi  
định dạng>)  
Chuyển chuỗi ngày sang dạng ngày theo định  
dạng  
Select TO_DATE(’10-04-2015’,’DD-MM-YYYY’)  
FROM Dual;  
-- 10-04-2015  
Chương 3: Cơ bản về Oracle  
14  
Các hàm xử lý dữ liệu (tt)  
18. Lựa chọn Case  
CASE  
WHEN <biểuthứcđk1> THEN <KQ1>  
[WHEN < biểuthứcđk2> THEN <KQ2>  
[ELSE <KQn>]  
END  
Đánh giá danh sách các điều kiện và trả về giá trị phù  
hợp  
Select CASE  
WHEN extract(day from sysdate)>15  
THEN ‘Cuoi thang’  
ELSE ‘Dau thang’ END  
From Dual;  
Chương 3: Cơ bản về Oracle  
15  
III. Thiết kế, xoá, sửa bảng  
1. Tạo bảng  
CREATE [GLOBAL TEMPORARY] TABLE  
Table_name  
( Column_name Datatype [CONSTRAINT constraint_def  
DEFAULT default_exp]  
[, column_name type [CONSTRAINT constraint_def  
DEFAULT default_exp]...]  
[,table_constraint [,…]]  
)
Chương 3: Cơ bản về Oracle  
16  
Tạo bảng (tt)  
Trong đó:  
CREATE  
[GLOBAL TEMPORARY]  
TABLE  
( column_name datatype  
[CONSTRAINT  
– Global Temporary: nếu có từ khóa này  
bảng được tạo sẽ là bảng tạm  
– Table_name: tên bảng do người dùng  
đặt  
constraint_def  
DEFAULT default_exp]  
[, column_name type  
[CONSTRAINT  
– Column_name: tên cột trong bảng  
– Datatype: kiểu dữ liệu của cột  
constraint_def  
– Constraint: từ khóa cho phép tạo ràng  
buộc trên cột  
DEFAULT default_exp]...]  
[,table_constraint [,…]]  
)
– Contraint_def: ràng buộc của cột  
– Default: từ khóa cho phép xác định giá  
trị mặc định cho cột  
– Default_exp: dữ liệu của cột nhận giá trị  
default_exp nếu người dùng không  
nhập dữ liệu vào cột  
– Table_constraint: ràng buộc của toàn  
bảng dữ liệu  
Chương 3: Cơ bản về Oracle  
17  
Tạo bảng (tt)  
CREATE TABLE SINHVIEN (  
MASV CHAR(10) PRIMARY KEY,  
HOTENSV VARCHAR2(40),  
NAMSINH INT,  
QUEQUAN VARCHAR2(40),  
HOCLUC FLOAT  
)
CREATE TABLE DETAI(  
MADT CHAR(10) PRIMARY KEY,  
TENDT VARCHAR2(40),  
CHUNHIEM VARCHAR2(40),  
KINHPHI NUMBER  
)
Chương 3: Cơ bản về Oracle  
18  
Tạo bảng (tt)  
CREATE TABLE SVDT (  
MASV CHAR(10) NOT NULL,  
MADT CHAR(10) NOT NULL,  
NOIA_D CHAR(40),  
KETQUA FLOAT,  
PRIMARY KEY (MASV, MADT),  
CONSTRAINT SVDT_SV FOREIGN KEY  
(MASV) REFERENCES SINHVIEN (MASV),  
CONSTRAINT SVDT_DT FOREIGN KEY  
(MADT) REFERENCES DETAI(MADT)  
)
Chương 3: Cơ bản về Oracle  
19  
Thiết kế, xoá, sửa bảng (tt)  
Kiểu ràng buộc  
Diễn giải  
NULL/NOT NULL Cho phép/không cho phép cột chứa giá  
trị rỗng  
CHECK (Criteria) Giá trị nhập vào cột phải thỏa Criteria  
UNIQUE  
Giá trị nhập vào cột phải là duy nhất  
Ràng buộc khóa chính cho cột  
PRIMARY KEY  
REFERENCES  
<Table_name1>  
Ràng buộc khóa ngoại cho cột sẽ tham  
chiếu tới Column_name đã tồn tại trong  
bảng Table_name.  
(Column_name1)  
Mô tả:  
CONSTRAINT <constraint_name>[<constraint_type>]  
Chương 3: Cơ bản về Oracle  
20  
Tải về để xem bản đầy đủ
pdf 29 trang yennguyen 13520 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Cơ sở dữ liệu nâng cao - Chương 3: Cơ bản về Oracle - Nguyễn Thị Mỹ Dung", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_co_so_du_lieu_nang_cao_chuong_3_co_ban_ve_oracle_n.pdf