Ngôn ngữ định nghĩa dữ liệu (DDL– Data Definition Language)

Một phần của tài liệu Tìm hiểu về Oracle và hướng dẫn thuật toán (Trang 30)

II. Ngôn ngữ SQL

a.Ngôn ngữ định nghĩa dữ liệu (DDL– Data Definition Language)

Bao gồm:

 Lệnh tạo table, tạo view (CREATE...)

 Lệnh sửa cấu trúc table, thêm, xóa ràng buộc toàn vẹn trên table

(ALTER...)

 Lệnh xóa table, xóa view (DROP...)

31  Cú pháp tạo Table:

CREATE [GLOBAL TEMPORARY] TABLE [tên_schema.]tên_table ( tên_cột kiểu_cột [DEFAULT biểu_thức_mặc_định][Các_ràng_buộc_trên_cột] [,tên_cột kiểu_cột [,...]] [, Các_ràng_buộc_trên_bảng] ) ;

Các ràng buộc (RB) trên cột có thể bao gồm một hoặc nhiều loại sau: [CONSTRAINT tên_ràng_buộc] {UNIQUE|PRIMARY KEY}

[CONSTRAINT tên_ràng_buộc] CHECK(điều_kiện_kiểm_tra) [CONSTRAINT tên_ràng_buộc] [NOT] NULL [CONSTRAINT tên_ràng_buộc] REFERENCES tên_bảng [(các_cột_khóa_tham_chiếu)] [ON DELETE {CASCADE|SET

NULL}]

Các ràng buộc trên bảng có thể bao gồm một hoặc nhiều loại sau CONSTRAINT tên_ràng_buộc {UNIQUE|PRIMARY KEY}(tên_cột

[,tên_cột...]) CONSTRAINT tên_ràng_buộc CHECK(điều_kiện_kiểm_tra) CONSTRAINT tên_ràng_buộc FOREIGN KEY (danh_sách_cột)

REFERENCES tên_table [(các_cột_khóa_tham_chiếu)] [ON DELETE {CASCADE|SET NULL

Kiểu dữ liệu:

Loại dữ liệu Mô tả

VARCHAR2(n) Dữ liệu kiểu ký tự, n<=4000

CHAR(n) Dữ liệu kiểu ký tự, kích thước cố đinh, n<=2000

NUMBER Kiểu số nguyên, số ký số tối đa là 38 ký số

NUMBER(p) Kiểu số nguyên, với số ký số tối đa là p

NUMBER(p,s) Kiểu số thực, tối đa p ký số, s số thập phân. p≤38,

-84 ≤ s ≤ 127.Ví dụ: số 7456123, khai báo kiểu number (7, -2) = 7456100

DATE Kiểu ngày, lưu ngày từ 1/1/4712 BC ->

32

LONG Kiểu số nguyên

RAW Chuỗi nhị phân dài tối đa 2000 bytes

LONG RAW Chuỗi nhị phân dài tối đa 2GB

BLOB (Bynary Large Object) có độ dài ≤ 4GB

CLOB (Character Large Object) có độ dài ≤ 4GB

BFILE Chứa con trỏ chỉ đến một tập tin nhị phân ở ngoài

DB (adsbygoogle = window.adsbygoogle || []).push({});

Ví dụ: Cho lược đồ CSDL “quản lý đề án cty” như sau:

NHANVIEN (MaNV, HoNV, TenLot, TenNV, Phai, Luong, Phong, NgaySinh, DiaChi, Ma_NQL)

PHONGBAN (MaPHG, TenPHG, TrPHG, NG_NhanChuc)

 Câu lệnh để tạo một table nhân viên:

CREATE TABLE NHANVIEN( MANV VARCHAR(10) NOT NULL, HONV VARCHAR(20), TENLOT VARCHAR(20), TENNV NVARCHAR2(30), PHAI VARCHAR(20), LUONG NUMBER, PHONG VARCHAR(20), NGAYSINH VARCHAR(30), DIACHI VARCHAR(20), MA_NQL VARCHAR(10),

PRIMARY KEY(MANV),

FOREIGN KEY(PHONG) REFERENCES PHONGBAN(MAPHG) ) ;

33

Kết quả:

Cú pháp tạo View:

CREATE [OR REPLACE] [FORCE] VIEW <tên_view> [tên-cột1, cột2,…] AS SELECT … [Điều kiện] [Ràng buộc]

Ví dụ: câu lệnh để tạo một view chứa họ tên nhân viên phòng số 5 và tên phòng ban họ trực thuộc.

CREATE VIEW TrucThuoc

AS SELECT MANV, HONV, TENNV, TENPHG FROM NhanVien, PhongBan

WHERE PHONG = MAPHG AND PHONG = 5

34

Ghi chú: tùy chọn Replace sẽ xóa view và tạo view mới nếu view đã tồn tại rồi.

Update view:

CREATE OR REPLACE VIEW view_name AS

SELECT columns FROM table

WHERE conditions;

Sửa cấu trúc bảng – Alter

Thêm thuộc tính:

ALTER TABLE tên_table ADD tên_cột kiểu_dữ_liệu

Ví dụ: thêm cột Ghi_chú vào table nhân viên ALTER TABLE NHANVIEN ADD GHI_CHU varchar2(20)

35  Sửa kiểu dữ liệu thuộc tính:

ALTER TABLE tên_table ALTER COLUMN tên_cột kiểu_dữ_liệu_mới

Ví dụ: Sửa kiểu dữ liệu của cột Ghi chú

ALTER TABLE NHANVIEN ALTER COLUMN GHI_CHU varchar2(30)

Xóa thuộc tính: (adsbygoogle = window.adsbygoogle || []).push({});

ALTER TABLE tên_bảng DROP COLUMN tên_cột

Ví dụ: Xóa cột Ghi_chú từ bảng nhân viên ALTER TABLE NHANVIEN DROP COLUMN GHI_CHU

Xóa ràng buộc toàn vẹn:

36

Ví dụ:

ALTER TABLE NHANVIEN1 DROP CONSTRAINT FK_NV_PB

Xóa Bảng, View:

Cú pháp xóa Table

DROP TABLE tên_table

Ví dụ: Xóa bảng NHANVIEN

DROP TABLE NHANVIEN

Lệnh xóa bảng dữ liệu ràng buộc giữa các bảng.

DROP TABLE tên_bảng [,tên_bảng] ... [CASCADE CONSTRAINTS]

CASCADE CONSTRAINTS: xóa các ràng buộc toàn vẹn liên quan đến các khóa chính trong bảng. Nếu bỏ qua từ khóa này và trong bảng có tồn tại các ràng buộc toàn vẹn liên quan đến các bảng khác, Oracle báo lỗi và không thực thi câu lệnh này.

37

Ví dụ:

DROP TABLE NHANVIEN CASCADE CONSTRAINTS ;

Cú pháp xóa view:

DROP VIEW tên_view

Ví dụ: Xóa View Trực thuộc DROP VIEW TrucThuoc

38  Thêm dữ liệu vào bảng

Cú pháp:

INSERT INTO tên_bảng VALUES (giá_trị_1, giá_trị_2,…, giá_trị_n) INSERT INTO tên_bảng (cột1, cột2) VALUES (giá_trị_1, giá_trị_2);

Ví dụ:

INSERT INTO NHANVIEN

VALUES ( 1, 'NGUYEN', 'THI', 'BICH', 'NU','3500000', 'PH01', '1993', 'THU DUC', 'NQL1') ;

39  Sửa dữ liệu của bảng:

UPDATE tên_bảng SET cột_i = biểu_thức_i, . . . , cột_j = biểu_thức_j> [WHERE điều_kiện>];

Ví dụ: Sửa họ nhân viên có mã số ‘1’ thành ‘Le’ (adsbygoogle = window.adsbygoogle || []).push({});

40  Xóa dữ liệu trong bảng:

DELETE FROM tên_bảng [WHERE điều_kiện];

Ví dụ: Xóa nhân viên có mã số ‘1’

DELETE FROM NHANVIEN WHERE MANV=‘1’

41  Các câu query cơ bản trên table

Select:

Select column from table where condition

Ví dụ:

Update

Cú pháp: UPDATE table SET

column1 = expression1, column2 = expression2, ... column_n = expression_n, WHERE conditions; Ví dụ:

update sinhvien set svname = 'vuhung' where svid = 3;

42  Delete:

DELETE FROM table WHERE conditions;

Ví dụ: delete from sinhvien where svid = 2;

Insert:

INSERT INTO table (column1, column2, ... column_n ) VALUES (expression1, expression2, ... expression_n );

Ví dụ:

insert into sinhvien(SVID, SVNAME, LHID) values (20,'tran van c',2);

Function cũng gần tương tự với procedure nhưng function có trả về giá trị.

Create funciton:

CREATE [OR REPLACE] FUNCTION function_name [ (parameter [,parameter]) ] RETURN return_datatype IS | AS [declaration_section] BEGIN executable_section [EXCEPTION exception_section] END;

43

create or replace function getTenSinhvien(masv in int) return nvarchar2

is

tensv nvarchar2(30); begin

select svname into tensv from sinhvien

where svid = masv; return tensv; end;

 Kết quả: (adsbygoogle = window.adsbygoogle || []).push({});

 Drop function:

DROP PROCEDURE procedure_name

Một phần của tài liệu Tìm hiểu về Oracle và hướng dẫn thuật toán (Trang 30)