1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Microsoft SQL server: Chương 3 - Phạm Mạnh Cương

43 11 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tables
Tác giả Phạm Mạnh Cương
Trường học Trường Đại Học
Thể loại Bài giảng
Định dạng
Số trang 43
Dung lượng 0,91 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chương 3 - Tables. Chương này gồm có những nội dung chính sau: Các kiểu dữ liệu, các phép toán, tạo Table trong một CSDL, thay đổi cấu trúc và ràng buộc, xóa Table, đổi tên Table, mô hình quan hệ dữ liệu. Mời các bạn cùng tham khảo.

Trang 1

Chương III TABLES Giảng viên: Phạm Mạnh Cương

Chương III TABLES

Giảng viên: Phạm Mạnh Cương

Trang 2

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

Trang 3

I- CÁC KiỂU DỮ LiỆU

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

Trang 4

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.

Trang 5

• 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. [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. [1, 24]: 4 byte, với độ chính xác là 7 chữ số thập phân

b) Real : 4 byte, Miền giá trị tuyệt đối 1.18E- 38 đến 3.40E +38.

Trang 6

3- Ngày giờ - Date And Time

Trang 7

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à 231-1 byte

Trang 8

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’

Trang 9

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.

Trang 10

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

Trang 12

II- CÁC PHÉP TOÁN (TT)

5 Các phép toán phạm vi:

a) <BT> IS [NOT] NULL

b) <BT> [NOT] IN (<danh sách giá trị>)

c) <BT> [NOT] BETWEEN <Min> AND <Max>

d) <BT> [NOT] LIKE ‘Mẫu văn bản’

Trang 13

III- TẠO TABLE

Trang 14

1- Bằng Lệnh CREATE TABLE:

Cú pháp :

CREATE TABLE TableName

(

column_name data_type [<column_constraint>]

| computer_column_name AS <expression> [PERSISTED]

| <table_constraint> [ , n]

)

[ON { file_group | PRIMARY } ]

Trang 15

1.1 Khai báo cột dữ liệu

• CREATE TABLE SanPham

Trang 16

1.2 Khai báo cột biểu thức

computer_column_name AS expression

• 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

Trang 17

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)

Trang 18

a) Các loại ràng buộc trên một cột

Trang 19

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)

Trang 20

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

Trang 21

b- Các loại ràng buộc trên

nhiều cột

Trang 22

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)

Trang 23

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)

)

Trang 24

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.

create table NHACC(

MaNCC smallint IDENTITY(1,1) primary key ,

TenNCC nvarchar(30) unique

)

Trang 25

2- Sử dụng Object Explorer

Trang 27

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

Trang 28

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 <Thông tin cột / ràng buộc mới>

| DROP CONSTRAINT constraint_name

| DROP COLUMN col_name [, n]

| {CHECK | NOCHECK}

Trang 29

1.1- Đổi kiểu dữ liệu hoặc kích thước

của cột

Ví dụ:

Trang 30

1.2- Thêm cột mới

ALTER TABLE <table_name>

ADD <Thông tin cột mới> [, ]

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)

Trang 31

Chú ý: khi thêm cột NOT

NULLTrong 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

ALTER TABLE SanPham

ADD SoTon Float NOT NULL

Trang 32

3- Xóa cột :

ALTER TABLE <tablename>

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

Trang 33

5- Hủy bỏ RB khỏi bảng:

ALTER TABLE table_name

DROP CONSTRAINT <Tên RBTV>

Ví dụ:

ALTER TABLE SanPham DROP CONSTRAINT df_ST

Trang 34

6- Kích hoạt hay tạm ngưng

kiểm tra ràng buộc Foreign key

và Check

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.

Trang 35

7- Đổi tên cột :

SP_RENAME 'TableName.OldName', 'NewName', 'COLUMN'

Ví dụ:

SP_RENAME 'SanPham.DonGia', 'DonGiaSP', 'COLUMN'

Trang 36

2- Sử dụng Object Explorer

Trang 37

V- XÓA TABLE :

DROP TABLE <tên bảng> [, …n]

Chú ý:

Không thể xóa Table cha được tham

chiếu bởi Table khác.

Trang 38

VI- ĐỔI TÊN BẢNG:

EXEC SP_RENAME 'OldName', 'NewName'

Ví dụ: Đổi tên table NCC thành NhaCungCap

EXEC sp_rename ‘NCC', ‘NhaCungCap'

Trang 39

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

Trang 40

1- Tạo mới mô hình quan hệ

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

Trang 42

BÀI TẬP

 THỰC HÀNH BÀI TẬP 1

Trang 43

CẢM ƠN

Ngày đăng: 11/05/2021, 02:49