Bài giảng Cơ sở dữ liệu nâng cao: Chương 3 Cơ bản về Oracle cung cấp cho người học những kiến thức như: Các kiểu dữ liệu trong Oracle; Các hàm thông dụng; Thiết kế, xoá, sửa bảng; Bài tập thực hành. Mời các bạn cùng tham khảo!
Trang 1Bà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
Trang 2NỘI DUNG MÔN HỌC
7 Chương 7: Truy vấn trong CSDL HĐT (4)
Chương 3: Cơ bản về Oracle
Trang 3Chươ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
Trang 4I Các kiểu dữ liệu
VARCHAR2 Dùng để khai báo chuỗi ký tự với
chiều dài thay đổi (2000 byte)
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
4 Chương 3: Cơ bản về Oracle
Trang 5Các kiểu dữ liệu (tt)
CHAR Dùng để khai báo chuỗi ký tự với
chiều dài cố định (255 byte)
LONG 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
Trang 66
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
Chương 3: Cơ bản về Oracle
Trang 7Cá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 Tin') Substring
Toan-From Dual Lop DHCNTT Khoa SP Toan-Tin
Trang 8Cá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
8 Chương 3: Cơ bản về Oracle
Trang 9Cá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
Trang 10Cá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
Trang 12Cá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')
Trang 13Cá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
Trang 15Cá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>
WHEN extract(day from sysdate)>15
THEN ‘Cuoi thang’
ELSE ‘Dau thang’ END From Dual;
Trang 16III Thiết kế, xoá, sửa bảng
Trang 17– 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
Trang 18Tạ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
)
18 Chương 3: Cơ bản về Oracle
Trang 19Tạ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
CONSTRAINT SVDT_DT FOREIGN KEY
)
Trang 20Thiế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
PRIMARY KEY Ràng buộc khóa chính cho cột
REFERENCES
<Table_name1>
(Column_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
Mô tả:
CONSTRAINT <constraint_name>[<constraint_type>]
20 Chương 3: Cơ bản về Oracle
Trang 21Thao tác CSDL (tt)
2 Sửa bảng
Thêm cột: ALTER TABLE <Tên_bảng> ADD
<Tên_cột> <Kiểu_dữ_liệu> [<RBTV>]
Xóa cột: ALTER TABLE <Tên_bảng>
DROP COLUMN <Tên_cột>
Thay đổi kiểu dữ liệu cột:
ALTER TABLE <Tên_bảng> MODIFY
<Tên_cột> <Kiểu_dữ_liệu_mới>
Trang 22Sửa bảng (tt)
Thêm RBTV: ALTER TABLE <Tên_bảng> ADD
CONSTRAINT <Tên_RBTV> <RBTV>, CONSTRAINT <Tên_RBTV> <RBTV>,
)
22 Chương 3: Cơ bản về Oracle
Trang 23Sửa bảng (tt)
Mở rộng kiểu dữ liệu cho thuộc tính bảng:
ALTER TABLE HANGHOA
MODIFY DONGIA LONG
Trang 24Sửa bảng (tt)
ALTER TABLE SINHVIEN ADD
CONSTRAINT fk_sv FOREIGN KEY ( MAKHOA )
REFERENCES KHOA(MAKHOA)
ALTER TABLE HANGHOA ADD CONSTRAINT fk_HH
PRIMIRY KEY ( MAHG )
ALTER TABLE SINHVIEN DROP CONSTRAINT fk_sv
24 Chương 3: Cơ bản về Oracle
Trang 25Thiết kế, xoá, sửa bảng (tt)
Trang 26IV Bài tập Cho CSDL như sau:
DONVI (MADV, TENDV)
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:
DONVI MADV TENDV
DV0001 Phong giam doc DV0002 Phong to chuc
Trang 27Bài tập (tt)
CHUCVU MACV TENCV HESO
CV0001 Giam doc 3.5 CV0002 Truong phong 3.0 CV0003 Pho phong 2.7 CV0004 Ke toan truong 2.7
CANBO MACB HOTENCB MADV
CB0001 Nguyen Van A DV0001 CB0002 Le Thi B DV0001 CB0003 Tran Van C DV0001 CB0004 Bach Tuan Kiet DV0002 CB0005 Thai Binh An DV0001
Trang 28Bài tập (tt)
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ụ
GIUCHUCVU MACB MACV NGAYBD NGAYKT
CB0001 CV0001 01-JAN-15 CB0003 CV0002 01-JAN-15 01-DEC-15 CB0004 CV0002 01-JAN-16
Trang 29Tổng kết chương
- 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ảng