Bài giảng CƠ SỞ DỮ LIỆU NÂNG CAO
Chương 3: Cơ bản về Oracle
1
Số tc: 2; LT: 20; Btập: 10 GV: Nguyễn Thị Mỹ Dung Khối lớp: Đại học L2
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)
4
Chương 4: Lập trình PL/SQL (4)
5
Chương 5: Procedure, Function (4)
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
Chương 3: Cơ bản về Oracle
3
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
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
NUMBER
INTEGER
DATE
Chương 3: Cơ bản về Oracle
4
nên dùng Varchar2) 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 Dùng để khai báo kiểu chuỗi ký tự với độ dài biến đổi, (2Gb) Dùng để chứa dữ liệu ngày, thời gian
Các kiểu dữ liệu (tt)
Kiểu
CHAR
FLOAT LONG
Chương 3: Cơ bản về Oracle
5
Diễn giải Dùng để khai báo chuỗi ký tự với chiều dài cố định (255 byte) 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.
II. Các hàm thông dụng
1. LENGTH (
Select LENGTH ('lop DHCNTT') LEN
From Dual -- len = 10
2. INSTR(, ,
,)
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
Chương 3: Cơ bản về Oracle
6
Các hàm xử lý dữ liệu (tt)
3. SUBSTR ()
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 (
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 (
tự đầu các từ viết hoa.
6. LTRIM/RTRIM(, )
Loại bỏ chuỗi b ở bên trái/ phải chuỗi a
Chương 3: Cơ bản về Oracle
8
Select LTRIM(‘khoa su pham toan - tin’, ’khoa’) From Dual; -- su pham toan - tin Select RTRIM(‘LAST WORDx’, ’xy’) FROM Dual; -- LAST WORD
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
‘SALESPERSON’)
SELECT JOB, REPLACE (JOB, ‘SALESMAN’, 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 ngày>) Tách lấy năm|tháng|ngày của Select EXTRACT(Month FROM DATE ‘2001-05-07’) Chương 3: Cơ bản về Oracle 10 Chương 3: Cơ bản về Oracle 11 10. MONTHS_BETWEEN( 12. NEXT_DAY( Chương 3: Cơ bản về Oracle 12 14. TO_CHAR( Chương 3: Cơ bản về Oracle 13 Select TO_NUMBER('123')+TO_NUMBER('34')
=> 157
FROM Dual; 17. TO_DATE( định dạng>) Select TO_DATE(’10-04-2015’,’DD-MM-YYYY’)
FROM Dual; Chương 3: Cơ bản về Oracle 14 [WHEN < biểuthứcđk2> THEN hợp WHEN extract(day from sysdate)>15
THEN ‘Cuoi thang’
ELSE ‘Dau thang’ END Select CASE
From Dual; Chương 3: Cơ bản về Oracle 15 1. Tạo bảng
CREATE [GLOBAL TEMPORARY] TABLE Chương 3: Cơ bản về Oracle 16 – Global Temporary: nếu có từ khóa này – Table_name: tên bảng do người dùng – Column_name: tên cột trong bảng
– Datatype: kiểu dữ liệu của cột
– Constraint: từ khóa cho phép tạo ràng – Contraint_def: ràng buộc của cột
– Default: từ khóa cho phép xác định giá – Table_constraint: ràng buộc của toàn Chương 3: Cơ bản về Oracle 17 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 (MASV) REFERENCES SINHVIEN (MASV), Chương 3: Cơ bản về Oracle 19 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
CONSTRAINT SVDT_DT FOREIGN KEY
) NULL/NOT NULL CHECK (Criteria) Cho phép/không cho phép cột chứa giá
trị rỗng
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 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. REFERENCES
Chương 3: Cơ bản về Oracle 20 Mô tả:
CONSTRAINT 2. Sửa bảng Thay đổi kiểu dữ liệu cột:
ALTER TABLE Chương 3: Cơ bản về Oracle 21 Thêm RBTV: ALTER TABLE CONSTRAINT MAHG CHAR(10),
TENHANG CHAR(50),
DVT CHAR(5) Ví dụ:
) CREATE TABLE HANGHOA( Chương 3: Cơ bản về Oracle 22 ALTER TABLE HANGHOA ADD Mở rộng kiểu dữ liệu cho thuộc tính bảng: MODIFY DONGIA LONG Chương 3: Cơ bản về Oracle 23 ALTER TABLE HANGHOA
DROP COLUMN DVT REFERENCES KHOA(MAKHOA) ALTER TABLE HANGHOA ADD CONSTRAINT fk_HH PRIMIRY KEY (MAHG) Xóa ràng buộc toàn vẹn trong bảng ALTER TABLE SINHVIEN DROP CONSTRAINT fk_sv Chương 3: Cơ bản về Oracle 24 Thay đổi RBTV:
ALTER TABLE SINHVIEN ADD
CONSTRAINT fk_sv FOREIGN KEY (MAKHOA) 3. Xoá bảng
DROP TABLE ràng buộc toàn vẹn liên quan đến bảng cần xóa. Chương 3: Cơ bản về Oracle 25 DROP TABLE HANGHOA Cho CSDL như sau:
DONVI (MADV, TENDV)
CANBO (MACB, HOTENCB, MADV)
CHUCVU (MACV, TENCV, HESO)
GIUCHUCVU (MACB, MACV, NGAYBD, NGAYKT) Yêu cầu:
1. Tạo bảng và tạo RBTV cho các bảng.
2. Nhập dữ liệu cho bảng như sau:
TENDV DV0001 Phong giam doc
DV0002 Phong to chuc Chương 3: Cơ bản về Oracle 26 CV0001 Giam doc
CV0002 Truong phong CV0003 Pho phong
CV0004 Ke toan truong 2.7
2.7 CB0001 Nguyen Van A CB0002 Le Thi B
DV0001
DV0001
CB0003 Tran Van C
CB0004 Bach Tuan Kiet DV0002 CB0005 Thai Binh An
DV0001
CB0006 Dang Van Khang DV0002 Chương 3: Cơ bản về Oracle 27 CB0001 CV0001 01-JAN-15
CB0003 CV0002 01-JAN-15 01-DEC-15 CB0004 CV0002 01-JAN-16 Chương 3: Cơ bản về Oracle 28 Chương 3: Cơ bản về Oracle 29 - Giới thiệu Oracle
- Các kiểu dữ liệu trong Oracle
- Cách thiết kế bảng, sửa, xoá bảng
- Nhập và xem dữ liệu bảngFROM Dual;
-- 5
Select EXTRACT(DAY FROM Sysdate)
FROM Dual;
Các hàm xử lý dữ liệu (tt)
(DATE ‘1981-01-02’, DATE ‘1980-01-02’)
Các hàm xử lý dữ liệu (tt)
)
Cho biết sau FROM Dual; --30-04-2015
Các hàm xử lý dữ liệu (tt)
): Chuyển số sang chuỗi
TO_CHAR(ngày sang chuỗi theo định dạng
Select TO_CHAR(DATE'2011-09-20',
'DD-MM-YYYY')
-- ‘20-09-2011’
FROM Dual;
16. TO_NUMBER(
ký số sang dạng số
Các hàm xử lý dữ liệu (tt)
Chuyển chuỗi ngày sang dạng ngày theo định
dạng
-- 10-04-2015
Các hàm xử lý dữ liệu (tt)
18. Lựa chọn Case
CASE
WHEN
III. Thiết kế, xoá, sửa bảng
Table_name
( Column_name Datatype [CONSTRAINT constraint_def
DEFAULT default_exp]
[, column_name type [CONSTRAINT constraint_def
DEFAULT default_exp]...]
[,table_constraint [,…]]
)
Tạo bảng (tt)
Trong đó:
bảng được tạo sẽ là bảng tạm
đặt
buộc trên cột
CREATE
[GLOBAL TEMPORARY]
TABLE
( column_name datatype
[CONSTRAINT
constraint_def
DEFAULT default_exp]
[, column_name type
[CONSTRAINT
constraint_def
DEFAULT default_exp]...]
[,table_constraint [,…]]
)
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
bảng dữ liệu
Tạo bảng (tt)
Tạo bảng (tt)
(MADT) REFERENCES DETAI(MADT)
Thiết kế, xoá, sửa bảng (tt)
Kiểu ràng buộc
Diễn giải
Thao tác CSDL (tt)
Thêm cột: ALTER TABLE
Xóa cột: ALTER TABLE
DROP COLUMN
Sửa bảng (tt)
ALTER TABLE
Sửa bảng (tt)
Thêm thuộc tính bảng:
DONGIA FLOAT
ALTER TABLE HANGHOA
Xóa thuộc tính bảng:
Sửa bảng (tt)
Thiết kế, xoá, sửa bảng (tt)
[CASCADE CONSTRAINT]
CASCADE CONSTRAINT
IV. Bài tập
DONVI MADV
Bài tập (tt)
CHUCVU MACV
TENCV
HESO
3.5
3.0
CANBO MACB HOTENCB
MADV
DV0001
Bài tập (tt)
GIUCHUCVU MACB MACV NGAYBD NGAYKT
3. Tìm thông tin CB giữ chức vụ từ năm 2015
4. Tìm thông tin CB giữ chức vụ dưới 1 năm
5. Tìm thông tin CB vẫn còn giữ chức vụ.
Tổng kết chương
Tài liệu liên quan
Tài liêu mới