0
Tải bản đầy đủ (.doc) (93 trang)

Ngôn ngữ định nghĩa dữ liệu

Một phần của tài liệu NHẬP MÔN CƠ SỞ DỮ LIỆU PHẠM THỊ THANH (Trang 32 -35 )

2. Ngôn ngữ hỏi có cấu trúc – SQL (Structured Query Language)

2.1. Ngôn ngữ định nghĩa dữ liệu

Trong SQL có một số phép tính được sử dụng để có thể tạo ra các quan hệ (bảng), các khung nhìn của người sử dụng (View), các tệp chỉ số (Index).

2.1.1. Tạo bảng

Cú pháp: CREATE TABLE <tên bảng>

(<tên trường1> <kiểu trường1>([<độ rộng1>[,<độ chính xác1>])] [NULL / NOT NULL] [CHECK <btđk> [ERROR <thông báo>]] [DEFAULT <giá trị>] [PRIMARY KEY / UNIQUE] [REFERENCES <tên bảng 2> [TAG <tên trường ở bảng 2>]]

[, <tên trường2> <kiểu trường2>([<độ rộng2>[,<độ chính xác2>])] [NULL / NOT NULL] [CHECK <btđk> [ERROR <thông báo>] [DEFAULT <giá trị>] ….)

Trong đó: Tên bảng là xâu ký tự không chứa ký tự trống, không trùng từ khoá

Tên trường là xâu ký tự không chứa ký tự trống. trong một bảng không

có 2 tên trường trùng nhau

Kiểu trường: là một trong các kiểu sau:

Char(n) Xâu ký tự độ dài cố định

Varchar[(n)] Xâu ký tự độ dài thay đổi, độ dài tối đa n

int Số nguyên.

Smallint Số nguyên nhỏ.

Numeric (p,d) Số dấu chấm thập phân cố định, gồm p chữ số và 1 dấu chấm, trong đó d chữ số bên phải dấu chấm.

Real, Double Precision Số dấu phẩy động và số dấu phẩy động độ chính xác gấp đôi

Float (n) Số dấu phẩy động độ chính xác n chữ số sau dấu phẩy

Date Ngày tháng năm

Time Giờ phút giây

NULL: Cho phép bỏ trống giá trị nếu cần thiết NOT NULL: Bắt buộc cột phải có giá trị cụ thể Check (btđk): Kiểm tra điều kiện trường

Error <thông báo>:Lời thông báo nếu nhập sai điều kiện trên Default: giá trị mặc định cho trường

Primary key:Lựa chọn trường này làm khoá chính Unique:Xác định tính duy nhất của trường

References: Tham chiếu đến bảng khác

Tag: Tên trường khoá chính ở bảng tham chiếu

VD1: Tạo bảng Khoa gồm mã khoa gồm 2ký tự không chấp nhận giá trị rỗng, tên khoa gồm 20 ký tự, số điện thoại gồm 7 số

CREATE TABLE khoa (MaKhoa char(2) NOT NULL, TenKh varchar(20), Đthoai int)

VD2: CREATE TABLE Lop (lopID char(5) PRIMARY KEY, tenlop varchar(20), nganh varchar(20), khoahoc varchar(10), MaKhoa char(2) REFERENCES khoa TAG MaKhoa)

VD3: CREATE TABLE sinhvien(svid varchar(10) PRIMARY KEY, hodem varchar(20), ten varchar(10), ngaysinh date CHECK ngaysinh<date()+356*16 ERROR 'nhap sai ngay sinh' DEFAULT date(), noisinh varchar(30), lopid char(5) REFERENCES lop TAG lopid)

2.1.3. Xoá bảng

Cú pháp:DROP TABLE tênbảng

Ví dụ: DROP TABLE khoa

2.1.4. Tạo khung nhìn

Cú pháp:CREATE VIEW tênview (danh sách tên cột) AS mệnh đề SELECT VD: Tạo view HOCBONG gồm các cột tên sinh viên, tên lớp, học bổng

CREATE VIEW hocbong (TenSV, TenLop, Hocbong) AS SELECT (TenSV, TenLop, Hocbong) FROM danhsach WHERE hocbong > 0

2.1.5. Thêm cột mới

Cú pháp:ALTER TABLE tên_bảng ADD tên_cột kiểu

VD1: Thêm cột Trưởng khoa cho bảng KHOA với kiểu là xâu ký tự ALTER TABLE khoa ADD TruongKhoa varchar(25)

VD2: Thêm cột ngày thành lập khoa cho bảng KHOA ALTER TABLE khoa ADD NgayTL date

2.1.6. Xoá cột:

Cú pháp:: ALTER TABLE tên_bảng DROP tên_cột Ví dụ: xoá cột trưởng khoa trong bảng khoa

2.1.7. Tạo lập các chỉ mục:

Tạo chỉ mục là tạo ra một bảng lưu trữ vị trí các bản ghi dựa trên giá trị tăng dần của một hay một số cột nào đó. Điều này có ý nghĩa làm tăng tốc độ tìm kiếm thông tin trong CSDL. Tạo chỉ mục không làm thay đổi thứ tự vật lý của các bản ghi trong bảng

Cú pháp:CREATE INDEX <tên bảng chỉ mục> ON <tên bảng>(<tên cột 1>[,<tên cột 2>,…])

Ví dụ: CREATE INDEX nv_index ON nhanvien(ten)

2.1.7. Loại bỏ bảng chỉ mục:

DROP INDEX <tên bảng chỉ mục>

Ví dụ: Tạo CSDL gồm 5 bảng như sau:

Bảng SINHVIEN

Tên trường Kiểu độ rộng Chú thích / Ràng buộc

Svid C 10 Mã sinh viên

Hodem C 20 họ đệm

Tên C 10 Tên

Ngaysinh D 8 Ngày sinh < ngày hiện tại+365*16

Noisinh C 30 Nơi sinh

Lopid C 5 Mã lớp

Ghichu M Thông tin thêm về sinh viên

Bảng LOP

Tên trường Kiểu độ rộng Chú thích / Ràng buộc

Lopid C 5 Mã lớp

Tenlop C 20 Tên lớp

Nganh C 20 Ngành học

Khoahoc C 10 Khoá học

Bảng RENLUYEN

Tên trường Kiểu độ rộng Chú thích / Ràng buộc

Svid C 10 Mã sinh viên

Hocky I 4 0< học kỳ <= 10 Nd1 I 4 0<= nội dung 1 <=10 Nd2 I 4 0<= nội dung 1 <=10 Nd3 I 4 0<= nội dung 1 <=10 Nd4 I 4 0<= nội dung 1 <=10 Nd5 I 4 0<= nội dung 1 <=10 Kq I 4 Kết quả Xeploai C 5 Xếp loại Bảng MONHOC

Tên trường Kiểu độ rộng Chú thích / Ràng buộc

Monid I 4 Mã môn học

Tenmon C 35 Tên môn

Dvht I 4 Đơn vị học trình

Hocky I 4 0< học kỳ <= 10

Lopid C 5 Mã lớp

Bảng HOCTAP

Tên trường Kiểu độ rộng Chú thích / Ràng buộc

Htid B 8 Mã cho mỗi bản ghi trong bảng

Svid C 10 Mã sinh viên

Hocky I 4 0< học kỳ <= 10 Monid I 4 Mã môn học Dhs1 F 20 0<= dhs1 <= 10 Dhs2 F 20 0<= dhs2 <= 10 Dtlan1 F 20 0<= dtlan1 <= 10 Dtlan2 F 20 0<= dtlan2 <= 10 Dtlan3 F 20 0<= dtlan3 <= 10

Thiết lập mối quan hệ giữa các bảng.

Một phần của tài liệu NHẬP MÔN CƠ SỞ DỮ LIỆU PHẠM THỊ THANH (Trang 32 -35 )

×