<< Chapter < Page | Chapter >> Page > |
SQL-92 cho phép định nghĩa miền với cú pháp:
CREATE DOMAIN<tên miền><Type>
Ví dụ: CREATE DOMAIN hoten char(30);
Sau khi đã định nghĩa miền với tên hoten ta có thể sử dụng nó để định nghĩa kiểu của các thuộc tính
Lệnh CREATE TABLE với cú pháp
CREATE TABLE<tên bảng>(
<Thuộc tính 1><miền giá trị thuộc tính 1>,
...
<Thuộc tính n><miền giá trị thuộc tính n>,
<ràng buộc toàn vẹn 1>,
...
<ràng buộc toàn vẹn k>)
Các ràng buộc toàn vẹn cho phép bao gồm:
primary key ( )
và
check(P)
Đặc tả primary key chỉ ra rằng các thuộc tính tạo nên khoá chính của quan hệ. Mệnh đề check xác định một vị từ P mà mỗi bộ trong quan hệ phải thoả mãn.
Ví dụ:
CREATE TABLE customer (
customer_nameCHAR(20) not null,
customer_streetCHAR(30),
customer_cityCHAR(30),
PRIMARY KEY(customer_name));
CREATE TABLE branch (
branch_nameCHAR(15) not null,
branch_cityCHAR(30),
assetsINTEGER,
PRIMARY KEY (branch_name),
CHECK (assets>= 0));
CREATE TABLE account (
account_numberCHAR(10) not null,
branch_nameCHAR(15),
balanceINTEGER,
PRIMARY KEY (account_number),
CHECK(balance>= 0));
CREATE TABLE depositor (
customer_nameCHAR(20) not null,
account_numberCHAR(10) not null,
PRIMARY KEY (customer_name, account_namber));
Giá trị null là giá trị hợp lệ cho mọi kiểu trong SQL. Các thuộc tính được khai báo là primary key đòi hỏi phải là not null và duy nhất. do vậy các khai báo not null trong ví dụ trên là dư (trong SQL-92).
CREATE TABLE student (
nameCHAR(15) not null,
student_IDCHAR(10) not null,
degree_levelCHAR(15) not null,
PRIMARY KEY (student_ID),
CHECK (degree_level IN (‘Bachelors’, ‘Masters’, ‘Doctorats’));
DROP TABLE<tên bảng>
ALTER TABLE<tên bảng>ADD<thuộc tính><miền giá trị>
ALTER TABLE<Tên bảng>DROP<tên thuộc tính>
Một ngôn ngữ trong đó các vấn tin SQL được nhúng gọi là ngôn ngữ chủ (host language), cấu trúc SQL cho phép trong ngôn ngữ chủ tạo nên SQL nhúng. Chương trình được viết trong ngôn ngữ chủ có thể sử dụng cú pháp SQL nhúng để truy xuất và cập nhật dữ liệu được lưu trữ trong CSDL.
BÀI TẬP CHƯƠNG II
person(ss#, name, address): Số bảo hiểm ss# sở hữu bởi người tên name ở địa chỉ address
car(license, year, model): Xe hơi số dăng ký license, sản xuất năm year, nhãn hiệu Model
accident(date, driver, damage_amount): tai nạn xảy ra ngày date, do người lái driver, mức hư hại damage_amount
owns(ss#, license): người mang số bảo hiểm ss# sở hữu chiếc xe mang số đăng ký license
log(license, date, driver): ghi sổ chiếc xe mang số đăng ký license, bị tai nạn ngày do người lái driver
các thuộc tính được gạch dưới là các primary key. Viết trong SQL các câu vấn tin sau:
employee (E_name, street, city): Nhân viên có tên E_name, cư trú tại phố street, trong thành phố city
works (E_name, C_name, salary): Nhân viên tên E_name làm việc cho công ty C_name với mức lương salary
copany (C_name, city): Công ty tên C_name đóng tại thành phố city
manages(E_name, M_name): Nhân viên E_name dưới sự quản lý của nhân viên M_name
Viết trong SQL các câu vấn tin sau:
Notification Switch
Would you like to follow the 'Hệ quản trị cơ sở dữ liệu' conversation and receive update notifications?