01/22/14 1
Bài 3: Thao tác trên table
1. Tạo table bằng công cụ
2. Tạo table bằng lệnh T-SQL
3. Tạo mới dữ liệu bằng công cụ
4. Tạo mới dữ liệu bằng lệnh T-SQL
5. Sữa cấu trúc table
6. Xoá table
01/22/14 2
CREATE TABLE
[ database_name.[ owner ] . | owner. ]
table_name
( { < column_definition >
| column_name AS
computed_column_expression
| < table_constraint > ::= [ CONSTRAINT
constraint_name ] }
| [ { PRIMARY KEY | UNIQUE } [ , n ]
)
Tạo table
Định nghĩa cột
Cột tính toán
01/22/14 3
< column_definition > ::= { column_name
data_type }
[ [ DEFAULT constant_expression ]
| [ IDENTITY [ ( seed , increment )
]
[ < column_constraint > ] [ n ]
Định nghĩa các cột
01/22/14 4
Arguments
Table name: tên table
Column name: tên field
computed_column_expression : biểu thức tính toán
từ các field trong cùng table cho field tính toán
Default: giá trị mặc định cho cột
Identity: Giá trị của cột sẽ được tự động tăng theo
seed và inreament, chỉ dùng cho field kiểu số
ROWGUIDCOL : là row global unique identifier
column. Mỗi table chỉ có một cột có thuộc tính này.
01/22/14 5
Constraint
•
Cho phép định nghĩa các rule để bảo toàn
các ràng buộc dữ liệu trong database.
•
Có 2 loại constraints:
–
Column constraint: Được định nghĩa như một
thuộc tính của field và chỉ áp dụng và tham
chiếu trên field đó
–
Table constraint: được khai báo độc lập với
các field trong table và có thể tham chiếu đến
nhiều cột trong table đó.
01/22/14 6
< column_constraint > ::= [ CONSTRAINT
constraint_name ]
{ [ NULL | NOT NULL ]
| [ { PRIMARY KEY | UNIQUE }
[ CLUSTERED | NONCLUSTERED ]
[ WITH FILLFACTOR = fillfactor ]
[ON {filegroup | DEFAULT} ] ]
]
| [ [ FOREIGN KEY ]
REFERENCES ref_table [ ( ref_column ) ]
[ ON DELETE { CASCADE | NO ACTION } ]
[ ON UPDATE { CASCADE | NO ACTION } ]
[ NOT FOR REPLICATION ]
]
| CHECK [ NOT FOR REPLICATION ]
( logical_expression )
}
01/22/14 7
Table constrain
< table_constraint > ::= [ CONSTRAINT constraint_name ]
{ [ { PRIMARY KEY | UNIQUE }
[ CLUSTERED | NONCLUSTERED ]
{ ( column [ ASC | DESC ] [ , n ] ) }
[ WITH FILLFACTOR = fillfactor ]
[ ON { filegroup | DEFAULT } ]
]
| FOREIGN KEY
[ ( column [ , n ] ) ]
REFERENCES ref_table [ ( ref_column [ , n ] ) ]
[ ON DELETE { CASCADE | NO ACTION } ]
[ ON UPDATE { CASCADE | NO ACTION } ]
[ NOT FOR REPLICATION ]
| CHECK [ NOT FOR REPLICATION ]
( search_conditions )
}
01/22/14 8
Ví dụ tạo table Jobs
CREATE TABLE jobs ( job_id smallint
IDENTITY(1,1) PRIMARY KEY
CLUSTERED, job_desc varchar(50)
NOT NULL DEFAULT 'New Position -
title not formalized yet', min_lvl tinyint
NOT NULL CHECK (min_lvl >= 10),
max_lvl tinyint NOT NULL CHECK
(max_lvl <= 250) )
01/22/14 9
Ví dụ tạo table employee
CREATE TABLE employee (
emp_id empid CONSTRAINT PK_emp_id
PRIMARY KEY NONCLUSTERED
CONSTRAINT CK_emp_id
CHECK (emp_id LIKE '[A-Z][A-Z][A-Z][1-9]
[0-9][0-9][0-9][0-9][FM]'
or emp_id LIKE '[A-Z]-[A-Z][1-9][0-9][0-9][0-
9][0-9][FM]'),
fname varchar(20) NOT NULL,
minit char(1) NULL,
01/22/14 10
lname varchar(30) NOT NULL, job_id
smallint NOT NULL DEFAULT 1
REFERENCES jobs(job_id), job_lvl
tinyint DEFAULT 10, pub_id char(4)
NOT NULL DEFAULT ('9952')
REFERENCES publishers(pub_id),
hire_date datetime NOT NULL
DEFAULT (getdate()))
01/22/14 11
Ví dụ tạo table Publishers
CREATE TABLE publishers ( pub_id char(4)
NOT NULL CONSTRAINT UPKCL_pubind
PRIMARY KEY CLUSTERED CHECK
(pub_id IN ('1389', '0736', '0877', '1622',
'1756') OR pub_id LIKE '99[0-9][0-9]'),
pub_name varchar(40) NULL, city
varchar(20) NULL, state char(2) NULL,
country varchar(30) NULL
DEFAULT('USA') )
01/22/14 12
Xoá table
DROP TABLE table_name
Không thể xoá một table mà được tham
chiêú (referenced) bởi một ràng buộc
FOREIGN KEY constraint. Ràng buộc
FOREIGN KEY hoặc table tham chiếu
phải được xoá trước.
01/22/14 13
Ví dụ (tt)
Thêm field vào table:
alter table table1 add field3 nvarchar(50)
Xoá field
Alter table table1 drop column field2
Bỏ ràng buộc:
alter table table1 nocheck constraint
ch_f2
01/22/14 14
Tóm tắt bài học
Chúng ta có thể quản lý table bằng công cụ
Enterprise Manager hoặc bằng các lệnh
Transact-SQL
Để tạo table bằng T-SQL, ta dùng lệnh
create table
Để sữa cấu trúc table bằng T-SQL, ta dùng
lệnh alter table
Để xoá table bằng T-SQL, ta dùng lệnh drop
table
01/22/14 15
Table: KHACHHANG
Name Type Size
MAKH Nvarchar 5 (khoaự chớnh)
TENKH Nvarchar 30
DIACHI Nvarchar 50
DThoai Nvarchar 8
EMAIL Nvarchar 30
Raứng buoọc: TENKH not null, DThoai laứ 8 chửừ soỏ.
01/22/14 16
Tạo table MonHoc có 2 fields:
MaMH kiểu chuỗi 10 ký tự, khoá chính
TenMH kiểu chuỗi 50 ký tự, not null
Table HocKy có 2 fields:
MaHK, số tự động tăng từ 1, khoá chính
TenHK kiểu chuỗi 20 ký tự
Table MonHoc_HocKy
MaMH kiểu chuỗi 10 ký tự tham chiếu từ table MonHoc
MaHK, số tham chiếu từ table HocKy
Khoá chính là 2 field MaMH và MaHK
01/22/14 17
Thêm cột số tiết kiểu số vào table môn
học