Bài giảng SQL Server 2005 - Chương III: Tables - Phạm Mạnh Cương

1. Exact Numerics: Số Chính Xác

2. Approximate Numerics: Số gần đúng

3. Date and Time - Ngày giờ

4. Character strings - Chuỗi ký tự ASCII

5. Unicode character strings - Chuổi ký tự Unicode

6. Binary Strings - Chuỗi số nhị phân

7. Other Data Types

 

ppt 43 trang yennguyen 2800
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng SQL Server 2005 - Chương III: Tables - Phạm Mạnh Cương", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng SQL Server 2005 - Chương III: Tables - Phạm Mạnh Cương

Bài giảng SQL Server 2005 - Chương III: Tables - Phạm Mạnh Cương
Chương III 
TABLES 
Giảng viên: Phạm Mạnh Cương 
1 
NỘI DUNG 
I. Các kiểu dữ liệu 
II. Các phép toán 
III. Tạo Table trong một CSDL 
IV. Thay đổi cấu trúc và ràng buộc 
V. Xóa Table 
VI. Đổi tên Table 
VII.Mô hình quan hệ dữ liệu 
2 
I- CÁC KiỂU DỮ LiỆU 
1. Exact Numerics : Số Chính Xác 
2. Approximate Numerics : Số gần đúng 
3. Date and Time - Ngày giờ 
4. Character strings - Chuỗi ký tự ASCII 
5. Unicode character strings - Chuổi ký tự Unicode 
6. Binary Strings - Chuỗi số nhị phân 
7. Other Data Types 
3 
1- Số Chính Xác - Exact Numerics 
• Bigint (8 bytes) giá trị từ - 2 63 đến 2 63 -1 
• Int :(4 bytes) giá trị từ - 2 31 đến 2 31 - 1. 
• SmallInt : (2 bytes) giá trị từ - 2 15 đến 2 15 - 1. 
• Tinyint : (1 byte) giá trị từ 0 đến 255. 
• Bit : có giá trị 0, 1 hoặc NULL. 
• Decimal [ ( p [, s ]) ] 
– P (precision) có giá trị từ 1 đến 38, là tổng số chữ số tối đa bên phải và bên trái dấu chấm thập phân. Mặc định là 18. 
– S (Scale) có giá trị từ 0 đến P, là số chữ số lẻ bên phải dấu chấm thập phân. Mặc định bằng 0 
• Numeric [ ( p [, s ] ) ]: tương tự Decimal 
• Money , SmallMoney 
4 
2- Số gần đúng - Approximate Numerics 
a) Float [( n )] : 
• Miền giá trị tuy ệ t đối từ 2.23E- 308 đến 1.79E +308 
• n là số bít dùng lưu phần định trị, có giá trị từ 1 – 53, mặc định là 53. 
• Số byte lưu trữ phụ thuộc vào giá trị của n. 
– Với n [1, 24]: 4 byte, với độ chính xác là 7 chữ số thập phân. 
– Với n [25, 53]: 8 byte, với độ chính xác là 15 chữ số thập phân. 
b) Real : 4 byte, Miền giá trị tuyệt đối 1.18E- 38 đến 3.40E +38. 
5 
3- Ngày giờ - Date And Time 
a) DateTime : 
• Miền giá trị : từ 1-1- 1753 đến 31-12- 9999 
b) SmallDateTime : 
• Miền giá trị: 1-1- 1900 đến 6-6- 2079 
Chú .: Hằng ngày giờ bao trong dấu nháy đơn 
Ví dụ: ‘1998-01-20 23:59:59.997’ 
6 
4- Chuỗi ký tự - Character Strings 
• Char [(n)] : độ dài cố định, tối đa là 8000 byte. 
• Varchar [( n )]: độ dài không cố định, tối đa là 8000 byte. 
• Varchar ( max ) | Text: độ dài không cố định, tối đa là 2 31 -1 byte. 
7 
5- Chuổi ký tự Unicode- Unicode Character Strings 
• nChar [( n )] : độ dài cố định, tối đa là 4000 k ý tự. 
• nVarchar[( n )] : độ dài không cố định, tối đa là 4000 k ý tự. 
• nVarchar(max) | nText : độ dài không cố định, tối đa là 2^31–1 byte. 
Chú .: Hằng chuỗi Unicode bao trong dấu nháy đơn và phải 
bắt đầu bằng chữ N: N’sssss’ 
8 
6- Dữ liệu nhị phân - Binary Strings 
• Binary [( n )] : độ dài cố định, n có tối đa 8000 bytes. 
• Varbinary [( n )] : độ dài thay đổi, n có tối đa 8000 bytes. 
• Varbinary( max ) | Image : độ dài thay đổi, lưu trong 2^31 – 1 bytes. 
9 
7- Other Data Types 
• Sql_Variant : dùng lưu giá trị của các kiểu dữ liệu khác 
trong SQL Server ngoại trừ các kiểu text, ntext, Image, timestamp, và sql_variant. 
• Timestamp : kiểu số (binary(8) hay varbinary(8)). Cột khai báo kiểu này sẽ được tự động cập nhật với giá trị phân biệt mỗi khi thêm mẫu tin mới.. 
• UniqueIdentifier : 16 bytes GUID (Globally Unique Identifier). Nhận giá trị này bằng hàm NewID(). 
• XML : dùng lưu dữ liệu XML 
10 
II- CÁC PHÉP TOÁN 
1. Các phép toán số học: 
* ( nhân ), / ( chia nguyên hay thực ), % ( phần dư ); 
+ ( cộng ), - ( trừ ) 
2. Phép nối chuỗi : + 
3. Các phép toán so sánh: 
, >=, !>, =, hay != 
4. Các phép toán lôgic: 
NOT, AND (conjunction), OR (disjunction). 
11 
II- CÁC PHÉP TOÁN (TT) 
5. Các phép toán phạm vi: 
a) IS [NOT] NULL 
b) [NOT] IN ( ) 
c) [NOT] BETWEEN AND 
d) [NOT] LIKE ‘ Mẫu văn bản’ 
12 
III- TẠO TABLE 
1. Bằng Lệnh CREATE TABLE 
2. Sử dụng Object Explorer 
- Khai báo các cột 
- Khai báo ràng buộc dữ liệu 
13 
1- Bằng Lệnh CREATE TABLE: 
Cú pháp : 
CREATE TABLE TableName 
( 
c olumn_name d ata_type [] 
| computer_column_name AS [PERSISTED] 
| [ , ...n] 
) 
[ON { file_group | PRIMARY } ] 
14 
1.1 Khai báo cột dữ liệu 
• CREATE TABLE SanPham 
( 
MaSP Smallint , 
TenSP varchar(30) , 
DonGia Money , 
SoTon Real 
) 
• CREATE TABLE DDH 
( 
 MaDH Int , 
MaNCC Int , 
NgayLap DateTime , 
NgayYCGiao DateTime 
) 
15 
1.2 Khai báo cột biểu thức 
computer_column_name AS e xpression 
• Cột tính toán, là cột chỉ đọc, chứa dữ liệu tính toán từ những cột 
khác. Mặc định không lưu giá trị cột tính toán trong table. 
CREATE TABLE CTDH 
( 
MaDH SmallInt , 
MaSP SmallInt , 
SL float , 
DGBan Money , 
ThanhTien As SL * DGBan 
) 
16 
1.3 Khai báo ràng buộc dữ liệu (Constraint) 
Có 2 cách khai báo ràng buộc trên table phụ thuộc vào số cột tham gia điều kiện của ràng buộc: 
a) Ràng buộc dữ liệu trên một cột (Column Constraint) 
b) Ràng buộc dữ liệu trên nhiều cột của Table (Table Constraint) 
17 
a) Các loại ràng buộc trên một cột 
18 
Ví dụ: Khai báo ràng buộc trên 1 cột 
CREATE TABLE SanPham 
( 
MaSP Smallint Primary Key , 
TenSP varchar(30) Not Null Unique, 
DonGia Money Default 0 Check (DonGia >=0), 
SoTon Real Default 0 Check (SoTon >=0), 
MaLoaiSP Smallint Not Null References LoaiSP(MaLoaiSP) 
On Delete No Action 
On Update Cascade 
) 
19 
CREATE TABLE LoaiSP 
( 
	MaLoaiSP Smallint primary key, 
	TenLoaiSanPham nvarchar(100) 
) 
Ví dụ: Đặt tên ràng buộc trên một cột 
CREATE TABLE SanPham 
( 
MaSP SmallInt Constrain t pkMaSP Primary Key , 
TenSP varchar(30) Constraint uniTenSP Unique , 
DonGia Money Constraint chkDonGia Check (DonGia >=0) , 
SoTon Real Constraint dfSoTon Default 0 , 
MaLoaiSP SmallInt Constraint nnMaLoaiSP Not Null 
Constraint fkMaLSP References LoaiSP (MaLoaiSP) 
On Delete No Action 
On Update Cascade 
) 
20 
b- Các loại ràng buộc trên nhiều cột 
21 
Ví dụ - Khai báo khóa chính gồm nhiều cột 
CREATE TABLE CTDH 
( 
MaDH SmallInt Not Null References DDH, 
MaSP SmallInt Not Null References SanPham, 
SoLuong float Default 0 Check (SoLuong > 0), 
DGBan Money Default 0 Check ( DGBan > 0), 
ThanhTien As SoLuong * DGBan, 
Constraint pk_CTHD Primary Key (MaDH, MaSP) 
) 
22 
Ví dụ - Khai báo ràng buộc liên thuộc tính 
CREATE TABLE DDH 
( 
MADH SmallInt Constraint pkDDH Primary Key , 
NgayDH DateTime Default GetDate( ) Not Null , 
NgayYCGiao DateTime DEFAULT GetDate( ) Not Null , 
Constraint chkNgayYCGiao Check (NgayDH <= NgayYCGiao) , 
MaNCC SmallInt Not Null Constraint fk_DHH_NCC References NHACC(MaNCC) 
) 
23 
1.4- Khai báo cột tự động điền giá trị phân biệt 
• Dùng thuộc tính IDENTITY [(seed, increment )] : 
- Điền tự động một số nguyên cho mẫu tin mới. 
- Người dùng không thể nhập dữ liệu cho cột có thuộc tính này. Mỗi table chỉ có một cột khai báo thuộc tính Identity. 
24 
create table NHACC 
( 
MaNCC smallint IDENTITY(1,1) primary key , 
TenNCC nvarchar(30) unique 
) 
2- Sử dụng Object Explorer 
25 
26 
IV- THAY ĐỔI CẤU TRÚC - RÀNG BUỘC 
• Hiệu chỉnh, thêm, xóa cột và ràng buộc 
• Kiểm tra hay ngưng kiểm tra ràng buộc 
1. Bằng Lệnh ALTER TABLE 
2. Sử dụng Object Explorer 
27 
1- Sử dụng lệnh ALTER TABLE 
Cú pháp chung: 
ALTER TABLE table_name 
ALTER COLUMN col_name data_type[(p [, s])] 
[NULL | NOT NULL ] 
| ADD 
| DROP CONSTRAINT constraint_name 
| DROP COLUMN col_name [,...n] 
| {CHECK | NOCHECK} 
CONSTRAINT { ALL | constraint_name[,...n] } 
28 
1.1- Đổi kiểu dữ liệu hoặc kích thước của cột 
Ví dụ : 
ALTER TABLE KhachHang 
ALTER COLUMN TenKH CHAR (40) NULL 
29 
1.2- Thêm cột mới 
ALTER TABLE 
ADD [,...] 
30 
CREATE TABLE NhanVien ( 
MaNV Int CONSTRAINT pk_NV Primary Key, 
TenNV VarChar(40) NOT NULL) 
GO 
ALTER TABLE NhanVien 
ADD NoiSinh Varchar(20) DEFAULT 'Đồng Nai', 
MaNVQL Int NULL Constraint fk_MaNV References NhanVien(MaNV) 
Chú ý: khi thêm cột NOT NULL 
Trong trường hợp Table đ ã có dữ liệu , nếu bạn cần thêm cột với 
ràng buộc NOT NULL thì có thể thực hiện một trong 2 cách sau: 
• Cách 1: thực hiện qua 3 bước: 
( i ) thêm cột với thuộc tính NULL, 
( ii ) Điền đầy đủ các giá trị cho cột, 
( iii ) Đổi lại thuộc tính của cột thành NOT NULL. 
• Cách 2: Thêm cột mới có ràng buộc Default và thuộc tính WITH 
VALUES để điền tự động giá trị cho các d ò ng đang tồn tại trong 
bảng. 
31 
ALTER TABLE SanPham 
ADD SoTon Float NOT NULL 
CONSTRAINT df_ST DEFAULT 0 WITH VALUES 
3- Xóa cột : 
32 
ALTER TABLE 
DROP COLUMN ColName [,...n] 
Ví dụ: 
ALTER TABLE SanPham 
DROP COLUMN SoTon 
Chú ý: Không thể xóa những cột có ràng buộc CHECK , 
DEFAULT , FOREIGN KEY , UNIQUE , PRIMARY KEY 
5- Hủy bỏ RB khỏi bảng: 
33 
ALTER TABLE table_name 
DROP CONSTRAINT 
Ví dụ: 
ALTER TABLE SanPham 
DROP CONSTRAINT df_ST 
6- Kích hoạt hay tạm ngưng kiểm tra ràng buộc Foreign key và Check 
34 
ALTER TABLE table_name 
{CHECK | NOCHECK} CONSTRAINT {ALL | tênRB [,...n]} 
Ví dụ : 
-- Tạm ngưng kiểm tra ràng buộc. 
ALTER TABLE SanPham NOCHECK 
CONSTRAINT chk_DonGia 
-- Kích hoạt kiểm tra constraint. 
ALTER TABLE SanPham CHECK 
CONSTRAINT chk_DonGia 
7- Đổi tên cột : 
35 
SP_RENAME 'TableName.OldName', 'NewName', 'COLUMN' 
Ví dụ: 
SP_RENAME 'SanPham.DonGia', 'DonGiaSP', 'COLUMN' 
2- Sử dụng Object Explorer 
36 
V- XÓA TABLE : 
37 
DROP TABLE [, n] 
Chú ý: 
Không thể xóa Table cha được tham chiếu bởi Table khác. 
VI- ĐỔI TÊN BẢNG: 
38 
EXEC SP_RENAME 'OldName', 'NewName' 
Ví dụ: Đổi tên table NCC thành NhaCungCap . 
EXEC sp_rename ‘NCC', ‘NhaCungCap' 
VII- MÔ HÌNH QUAN HỆ 
• Biểu diễn mối quan hệ dữ liệu giữa các bảng 
• Khai báo, hiệu chỉnh các ràng buộc khóa ngoại 
• Tạo, sửa và xóa cấu trúc bảng 
39 
1- Tạo mới mô hình quan hệ 
40 
B1: Click phải vào Database Diagram và chọn New Database->Diagram 
B2: Chọn bảng cho mô hình 
B3: Click nút Close kết thúc quá trình tạo mô hình 
41 
BÀI TẬP 
THỰC HÀNH BÀI TẬP 1 
42 
CẢM ƠN 
43 

File đính kèm:

  • pptbai_giang_sql_server_2005_chuong_iii_tables_pham_manh_cuong.ppt