1. Trang chủ
  2. » Giáo án - Bài giảng

Bài Giảng Hệ Quản Trị Cở Sở Dữ Liệu Csdl

98 3 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 đề Bài Giảng Hệ Quản Trị Cở Sở Dữ Liệu Csdl
Tác giả Nguyễn Thị Thúy Loan
Người hướng dẫn ThS. Nguyễn Thị Thúy Loan
Trường học Cao đẳng Phát thanh – Truyền hình II
Chuyên ngành Hệ quản trị cơ sở dữ liệu
Thể loại bài giảng
Năm xuất bản 2012
Định dạng
Số trang 98
Dung lượng 1,15 MB

Nội dung

Ngày 16/12/1987 HĐH OS/2phiên bản 1.0 đã được chính thức phát hành.Lịch sử phát triển Nhưng sau đó IBM đưa ra phiên bản mới củaOS/2 gọi là OS/2 mở rộng, HĐH này sẽ mạnhgọ ộ g, y ạhơn OS

Trang 1

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 2 2/12/2011

Tài liệu tham khảo

[1] Bài giảng: Lê Thị Minh Nguyện

[2] Nhập môn Hệ quản trị cơ sở dữ liệu DB2, Arvind

Krishna

[3] Microsoft SQL Server 2005 Express Edition For

Dummies, Robert Schneider, 2006

[4] Inside Microsoft SQL Server 2005: T-SQL

Programming (Pro-Developer), Itzik Ben-gan, Dejan

Sarka, and Roger Wolter,2006

[5] Trang web

http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/index.htm/

Nội dung

 Tổng quan về SQL Server

 Các đối tượng trong cơ sở dữ liệu

 Lập trình với cơ sở dữ liệu

 Store Procedure (thủ tục)

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 4 2/12/2011

 Trigger & Function

 Backup anh restore

Trang 2

TỔNG QUAN VỀ

Chương I

Q SQL SERVER

ThS Nguyễn Thị Thúy Loan

Cao đẳng Phát thanh – Truyền hình II

 Bảo đảm các RBTV trên CSDL

 Bảo vệ an toàn dữ liệu

 Truy vấn dữ liệu nhanh

Trang 3

SQL Server là gì?

 Hệ quản trị CSDL theo mô hình Client/ Server

có thể dễ dàng phát triển trên mô hình phân

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 10 2/12/2011

các khoảng thời gian chu trình.

o Alerts: đưa ra các sự kiện xảy ra như: lỗi hay khi một CSDL đạt tới một giới hạn vì bộ nhớ trống sẵn không còn đủ nữa.

Các dịch vụ của SQL Server

Coordinator: Điều phối các giao tác phân tán,

quản lý các giao tác, có trách nhiệm điều

phối các giao tác của CSDL trên nhiều

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 11 2/12/2011

Trang 4

Lịch sử phát triển

 1970 IBM đưa ra ngôn ngữ truy vấn SEQUEL

(Structured English Query Language)

 1975 IBM và Microsoft hợp tác xây dựng

HĐH OS/2 dựa theo hệ điều hành MS DOS

của Microsoft Ngày 16/12/1987 HĐH OS/2

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 13 2/12/2011

của Microsoft Ngày 16/12/1987 HĐH OS/2

phiên bản 1.0 đã được chính thức phát hành

Lịch sử phát triển

 Nhưng sau đó IBM đưa ra phiên bản mới của

hơn OS/2 phiên bản 1.0 bởi vì nó sẽ tích hợpthêm một phần CSDL SQL của IBM (ngày naychính là HQTCSDL DB2)

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 14 2/12/2011

 Microsoft hợp tác Sybase làm ra sản phẩmthuộc loại HQTCSDL Ashton-Tate vào năm

1988 phát triển trên môi trường OS/2

Lịch sử phát triển

 Sau đó Sybase đã phát triển sản phẩm trên môi

trường UNIX và đổi tên riêng là DataServer màg g

ngày nay có tên khác là Sybase Adaptive Server

 Microsoft quyết định không phát triển HĐH OS/2

mà thay vào đó cho ra đời một HĐH mạng máy

tính có tên là NT Server và thế là SQL Server chỉ

tính có tên là NT Server và thế là SQL Server chỉ

hoạt động độc lập trên môi trường Windows NT

Trang 5

 Mô hình Client/Sever: là kiến trúc gồm 2 thành

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 17 2/12/2011

Mô hình Client/Sever: là kiến trúc gồm 2 thành

phần máy Client và máy Server, 2 thành phần

này liên lạc với nhau thông qua hệ thống mạng

Mô hình Client/Server

Sử dụng giao tiếp lập trình ứng dụng để truy xuất dữ liệu (API Application liệu (API- Application Programming Interfece)

Thư viện mạng client sử dụng 1 phương thức liên lạc bên trong mạng để giao tiếp với thư viện mạng của server

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 18 2/12/2011

Thư viện mạng của server nhận gói dữ liệu

và trao chúng cho các dịch vụ mở dữ liệu

Mô hình Client/Server

Nhánh máy trạm (client)

 Đọc và hiển thị dữ liệu hiện có bên trong

ểCSDL, tính toán dữ liệu đang hiển thị trên màn

hình ứng dụng, in dữ liệu ra các kết xuất

 Các ngôn ngữ sử dụng bên máy khách thường

là: C++, C#, VB, Delphi…

 Các ứng dụng khi xây dựng bên nhánh máy

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 19 2/12/2011

 Các ứng dụng khi xây dựng bên nhánh máy

trạm nên tránh việc đọc tòan bộ dữ liệu của

bảng mà chỉ lấy đúng các thông tin cần thiết

 Các xử lý sao lưu dữ liệu (backup data) tự

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 20 2/12/2011

 Các xử lý sao lưu dữ liệu (backup data) tựđộng để đảm bảo các dữ liệu không bị mấttrong trường hợp có các sự cố xấu nhất tình cờxảy ra

Trang 6

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 21 2/12/2011

 Client network Utility:

Các thành phần SQL Server

công cụ dùng để thiết lập,tham khảo các cấu hìnhmạng: giao thức truyền

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 22 2/12/2011

cho client, các đường dẫntham khảo đến thư viện

 Enterprise Manager (EM): là màn hình dùng

để quản trị SQL Server EM cung cấp cho

Các thành phần SQL Server

người quản trị chức năng để quản lý SQL bằng

giao diện đồ hoạ

o Quản trị các database

T d t b à á thà h hầ bê t

o Tạo database và các thành phần bên trong

database

o Đăng ký làm việc với SQL Server khác

 Import and Export Data: công cụ hỗ trợ cho

phép dễ dàng thực hiện việc chuyển dữ liệu từ

Các thành phần SQL Server

phép dễ dàng thực hiện việc chuyển dữ liệu từngoài vào SQL Server và SQL Server ra

 Query Analyzer: là công cụ cung cấp bởi

SQL Server là trình soạn thảo và thực thi câuSQL Server, là trình soạn thảo và thực thi câulệnh SQL hay Stored Procedure

Trang 7

Các thành phần SQL Server

 Server Network Utility: công cụ dùng để thiết

lập các cấu hình cho server và hiển thị các

thông tin đường dẫn tham chiếu thư viện làm

việc

 Server Manager: dùng để khởi động tạm

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 25 2/12/2011

 Server Manager: dùng để khởi động, tạm

 Mô hình quan hệ dữ liệu

 Kiểu dữ liệu do người dùng định nghĩa

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 27 2/12/2011

Kiểu dữ liệu do người dùng định nghĩa

 Quy tắc kiểm tra miền giá trị dữ liệu (rule)

Trang 8

Cơ sở dữ liệu của SQL Server

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 29 2/12/2011

Cơ sở dữ liệu của SQL Server

Khi cài SQL Server xong, hệ thống sẽ tự động tạomột vài CSDL mặc định:

Các tập tin vật lý lưu trữ DL

 Hai tập tin vật lý để lưu trữ dữ liệu:

L t ữ dữ liệ (d t fil )

o Lưu trữ dữ liệu (data file)

o Lưu trữ các giao tác mà người dùng đã thực

hiện (transaction log file)

 Các tập tin CSDL trong SQL Server được chia

thành 3 loại tập tin

Các tập tin vật lý lưu trữ DL

Trang 9

Các tập tin vật lý lưu trữ DL

 Tập tin dữ liệu chính (Primary Data File) Phần

mở rộng của tập tin này là * mdf

 Tập tin thứ yếu (Secondary Data Files) (không

bắt buộc phải có khi tạo mới CSDL) Phần mở

rộng của tập tin này là * ndf

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 33 2/12/2011

rộng của tập tin này là *.ndf

 Tập tin lưu trữ (Log Files) Phần mở rộng là

*.ldf

Tạo mới cơ sở dữ liệu

Các thuộc tính CSDL trong SQL Server

 Tên CSDL (Database name): dài tối đa 128

ký tự, duy nhất trong SQL Server

 Vị trí tập tin (File location): Thông thường

tập tin này sẽ được lưu tại C:\ProgramFiles\Microsoft SQL Server\MSSQL\ Data

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 34 2/12/2011

 Tên tập tin (File name): là tên luận lý của mỗi

loại tập tin dữ liệu tương ứng mà hệ thốngSQL Server dùng để quản lý bên trong

Tạo mới cơ sở dữ liệu

 Kích thước ban đầu (Initial size): là kích

thước khởi tạo của tập tin dữ liệu khi CSDL

mới được tạo lập

 Tăng kích thước tập tin dữ liệu (File

Tạo mới cơ sở dữ liệu

 Ví dụ: tạo CSDL có tên QLBH với kích thước

ban đầu là 50 MB, tự động tăng kích thước lên ự ộ g g 10% khi dữ liệu đầy, kích thước tăng trưởng tập tin tối đa không quá 200MB Và tập tin lưu vết với kích thước ban đầu lúc khởi tạo là 10MB t độ tă kí h th ớ tậ ti lê 5

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 36 2/12/2011

10MB, tự động tăng kích thước tập tin lên 5

MB khi dữ liệu bị đầy, kích thước tăng trưởng tập tin không giới hạn.

Trang 10

Tạo mới cơ sở dữ liệu

 Cách 1: tạo trong Query Analyzer

LOG ON(NAME = QLBH_Log,

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 37 2/12/2011

Tạo mới cơ sở dữ liệu

 Cách 2: tạo trong Enterprise Manager

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 38 2/12/2011

Tạo mới cơ sở dữ liệu

 Mô hình quan hệ dữ liệu

 Kiểu dữ liệu do người dùng định nghĩaKiểu dữ liệu do người dùng định nghĩa

 Quy tắc kiểm tra miền giá trị dữ liệu (rule)

 Giá trị mặc định

Trang 11

Bảng (Tables)

Dùng để lưu trữ các thông tin dữ liệu của những

đối tượng thực thể trong thế giới thực vào máy

tính

 Tên bảng (table name): dài tối đa 128 ký tự

 Tên cột (column name)

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 41 2/12/2011

Tên cột (column name)

 Kiểu dữ liệu (Data type): quy định kiểu dữ

liệu mà cột sẽ lưu trữ bên trong bảng

Bảng (Kiểu dữ liệu)

Kiểu dữ liệu Kích thước Miền giá trị dữ liệu lưu trữ

Số nguyên

2 1 83 6 8 ế 2 1 83 6 8 Int 4 bytes Từ -2,147,483,648 đến +2,147,483,648 Smallint 2 bytes Từ -32,768 đến + 32,767

Tinyint 1 byte Từ 0 đến 255 Bit 1 byte 0,1 hoặc Null

Các kiểu dữ liệu dạng số thập phân

Kiểu dữ liệu Kích thước Miền giá trị dữ liệu lưu trữ

Các kiểu dữ liệu dạng chuỗi

Char N bytes y Từ 1 đến 8,000 ký tự, độ dài cố định , ý ự, ộ ị

Varchar N bytes Từ 1 đến 8,000 ký tự, độ dài biến đổi

Text N bytes Từ 1 đến 2,147,483,647 ký tự

Nchar 2* n bytes Unicode, từ 1 đến 4,000 ký tự, mỗi ký tự 2 bytes

Nvarchar 2* n bytes Từ -10^38 đến +10^38

Ntext 2* n bytes từ 1 đến 1,073,741,823 ký tự, mỗi ký tự 1 byte

Các kiểu dữ liệu dạng ngày giờ

datetime 8 bytes Từ 01/01/1753 đến 31/12/9999

smalldatetime 4 bytes Từ 01/01/1900 đến 06/06/2079

Các kiểu dữ liệu dạng chuỗi nhị phân

Image N byte Từ 1 đến 2,147,483,647 bytes

Binary N byte Từ 1 đến 8,000

Tạo cấu trúc bảng dữ liệu

 Tạo cấu trúc bảng đơn giản

CREATE TABLE <tên bảng> (

<tên cột 1>: <kiểu dữ liệu 1> [NOT NULL],

<tên cột 2>: <kiểu dữ liệu 2> [NOT NULL],

Trang 12

Tạo cấu trúc bảng dữ liệu

Ví dụ:

CREATE TABLE LOP(

Malop char(6) NOT NULL,

TenLop varchar(20) NOT NULL,

SiSo smallInt NOT NULL)

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 45 2/12/2011

SiSo smallInt NOT NULL)

Tạo cấu trúc bảng dữ liệu

 Tạo cấu trúc bảng có giá trị mặc định

CREATE TABLE <tên bảng> (

gia_trị|hàm,

………

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 46 2/12/2011

Tạo cấu trúc bảng dữ liệu

Ví dụ:

CREATE TABLE LOP(

Tạo cấu trúc bảng dữ liệu

 Tạo cấu trúc bảng có cột định danh

CREATE TABLE <tên bảng> (

<tên cột 1>: <kiểu dữ liệu 1> Identity[(số_bắt_đầu,chỉ_số_tăng)],

<tên cột 2>: <kiểu dữ liệu 2> [NOT NULL],tên cột 2 : kiểu dữ liệu 2 [NOT NULL],

………

<tên cột n>: <kiểu dữ liệu n> [NOT NULL])

Trang 13

Tạo cấu trúc bảng dữ liệu

Ví dụ:

CREATE TABLE LOP(

TenLop varchar(20) NOT NULL,

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 49 2/12/2011

Tạo cấu trúc bảng dữ liệu

Enterprise Manager

 Right-click Tables/ chọn New Table…

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 50 2/12/2011

Tạo cấu trúc bảng dữ liệu

 Tạo các cột

Tên column Kiểu DL

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 51 2/12/2011

Tạo cấu trúc bảng dữ liệu

 Đặt tên bảng

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 52 2/12/2011

Trang 14

Thay đổi cấu trúc bảng

Query Analyzer

 Thêm một cột mới vào bảng

ALTER TABLE Tên_bảng

ADD Tên_cột kiểu_dữ_liệu

Ví dụ:

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 53 2/12/2011

Ví dụ:

ALTER TABLE LOP

ADD Nien_khoa int

Thay đổi cấu trúc bảng

Query Analyzer

 Hủy bỏ cột hiện có bên trong bảng

ALTER TABLE Tên_bảng DROP COLUMN Tên_cột

 Sửa đổi kiểu dữ liệu của cột

ALTER TABLE Tên_bảng

alter column Tên_cột <kiểu_dữ_liệu_mới>

Ví dụ:

Ví dụ:

ALTER TABLE LOP

ALTER COLUMN Nien_khoa char(9)

Thay đổi cấu trúc bảng

 Đổi tên cột, tên bảng dữ liệu

EXEC sp_rename ‘Tên_bảng[.tên_cột]’,

‘Tên_mới’ [, ‘COLUMN’]

Ví dụ 1: đổi tên cột Nien_khoa thành khoa_hoctrong bảng LOP

EXEC sp_rename ‘LOP.nien_khoa’,

‘khoa hoc’ ‘COLUMN’

‘khoa_hoc’, ‘COLUMN’

Ví dụ 2: thay đổi tên LOP thành LOPHOCEXEC sp_rename ‘LOP’, ‘LOPHOC’

Trang 15

Tính toàn vẹn trong cơ sở DL

 Ràng buộc toàn vẹn (RBTV) dữ liệu thực sự là

việc đặc ra các quy tắc trong một cơ sở dữ liệu

nhằm kiểm tra các giá trị của dữ liệu trước khi

lưu trữ phải đảm bảo tính chính xác và hợp lý

bên trong một cơ sở dữ liệu

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 57 2/12/2011

bên trong một cơ sở dữ liệu

Tính toàn vẹn trong cơ sở DL

Các Phương Pháp Ðảm Bảo Data Integrity

 Primary Key Constraint

 Primary Key Constraint

CONSTRAINT <tên RBTV> PRIMARYKEY(thuộc tính khóa chính)

Ví dụ:

Trang 16

Add Primary Key

Enterprise Manager

 Right-click column of interest

 Set Primary Key

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 61 2/12/2011

Cách tạo các ràng buộcUnique Constraint

 Cách tạo ra Unique Constraint cũng tương tựnhư Primary Key Constraint chỉ việc thay chữPrimary Key thành Unique

 Chỉ có một Primary Key Constraint trong một

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 62 2/12/2011

Chỉ có một Primary Key Constraint trong mộttable trong khi ta có thể có nhiều UniqueConstraint trên một table

Cách tạo các ràng buộc

 Foreign Key Constraint

CREATE TABLE LOP

(MaLop INT PRIMARY KEY,

MaKh INT REFERENCES Khoa (MaKH))

Hay

CREATE TABLE LOP

(MaLop INT PRIMARY KEY,

MaKh INT,

CONSTRAINT MaKh_fk FOREIGN KEY

(MaKh) REFERENCES Khoa(MaKh))

Cách tạo các ràng buộc

 Foreign Key Constraint

ALTER TABLE <tên bảng> ADD CONSTRAINT <tên RBTV> FOREIGN KEY(các cột khóa ngoại) REFERENCES <tên bảng> (các cột khóa chính)

Ví dụ:

ALTER TABLE LOP ADD CONSTRAINTALTER TABLE LOP ADD CONSTRAINT Makh_fk FOREIGN KEY(MaKh)

REFERENCES Khoa (MaKh)

Trang 17

Cách tạo các ràng buộc

 Check Constraint (ràng buộc miền giá trị)

CREATE TABLE LOP

(MaLop INT PRIMARY KEY,

TenLop VARCHAR(30),

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 65 2/12/2011

AND 100))

Cách tạo các ràng buộc

 Check Constraint (ràng buộc miền giá trị)

CREATE TABLE LOP(MaLop INT PRIMARY KEY,

 Check Constraint (ràng buộc miền giá trị)

Alter table <tenbang>

add constraint <tên constraint> check

Ví dụ:

Alter table Lop

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 67 2/12/2011

Alter table Lop

add constraint Siso_Ck check (Siso between 1 and

100)

Cách tạo các ràng buộc

 Check Constraint (ràng buộc miền giá trị)

Alter table KhachHangAdd constraint DT_Ck check (DT like

‘[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]’)

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 68 2/12/2011

Alter table SanPhamAdd constraint GiaBan_Ck check (GiaBan >0)

Trang 18

NỘI DUNG

 Cơ sở dữ liệu của SQL Server

 Bảng (Table)

 Bảng ảo (View)

 Mô hình quan hệ dữ liệu

 Kiểu dữ liệu do người dùng định nghĩa

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 69 2/12/2011

Kiểu dữ liệu do người dùng định nghĩa

 Quy tắc kiểm tra miền giá trị dữ liệu (rule)

[WITH CHECK OPTION]// ngăn cản các thao

tác cập nhật dữ liệu (thêm, sửa) tác động trực

tiếp vào bảng ảo không thỏa điều kiện trong

SELECT INTO

Trang 19

where diem>7 and kq.masv=sv.masv

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 73 2/12/2011

where diem 7 and kq.masv sv.masv

 Xem kết quả của View

Select * from <Tenview>

Trang 20

NỘI DUNG

 Cơ sở dữ liệu của SQL Server

 Bảng (Table)

 Bảng ảo (View)

 Mô hình quan hệ dữ liệu

 Kiểu dữ liệu do người dùng định nghĩa

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 77 2/12/2011

Kiểu dữ liệu do người dùng định nghĩa

 Quy tắc kiểm tra miền giá trị dữ liệu (rule)

 Giá trị mặc định

Mô hình dữ liệu quan hệ

 Tạo các ràng buộc khóa ngoại một cách trựcquan hơn

 Tạo mô hình quan hệ

o Bước 1:

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 78 2/12/2011

Mô hình dữ liệu quan hệ

o Bước 2:

Mô hình dữ liệu quan hệ

o Bước 3:

Trang 21

NỘI DUNG

 Cơ sở dữ liệu của SQL Server

 Bảng (Table)

 Bảng ảo (View)

 Mô hình quan hệ dữ liệu

 Kiểu dữ liệu do người dùng định nghĩa

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 81 2/12/2011

Kiểu dữ liệu do người dùng định nghĩa

 Quy tắc kiểm tra miền giá trị dữ liệu (rule)

 Giá trị mặc định

KDL do người dùng định nghĩa

 Mục đích đảm bảo cho cấu trúc dữ liệu bêntrong CSDL được nhất quán và dễ sửa đổitrong CSDL được nhất quán và dễ sửa đổi

 Cú pháp:

EXEC sp_addtype Tên_kiểu_dl_mới,

‘kiểu dữ liệu cơ sở’ [,NULL| NOT NULL]

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 82 2/12/2011

kiểu_dữ_liệu_cơ_sở [,NULL| NOT NULL]

KDL do người dùng định nghĩa

 Ví dụ:

exec sp_addtype dn_sl, ‘float’, ‘not null’

exec sp_addtype slg, ‘int’

 Khi tạo lập cấu trúc bảng KQ chúng ta có thể

 Mô hình quan hệ dữ liệu

 Kiểu dữ liệu do người dùng định nghĩa

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 84 2/12/2011

 Quy tắc kiểm tra miền giá trị dữ liệu (rule)

 Giá trị mặc định

Trang 22

 Kiểm tra các cột bên trong bảng phải thoả mãn

điều kiện nào đó khi dữ liệu bị sửa đổi hoặc

thêm vào Tính năng hoạt động của nó gần

giống như CHECK constraint

 Cú pháp (Query Analyzer)

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 85 2/12/2011

Rules

 Tên_quy_tắc: kiểm tra miền giá trị dữ liệu

được tạo mớiđược tạo mới

 Biểu thức: biểu thức luận lý hoặc so sánh Có

3 thành phần:

o Tên biến hình thức (phải bắt đầu bằng @)

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 86 2/12/2011

o Tên biến hình thức (phải bắt đầu bằng @)

o Toán tử so sánh

o Giá trị so sánh

Rules

 Ví dụ 1: Để tạo quy tắc kiểm tra miền giá trị

dữ liệu cột điểm phải từ 0 đến 10

dữ liệu cột điểm phải từ 0 đến 10

CREATE RULE R_Diem

AS

@Diem between 0 and 10

@Diem between 0 and 10

Rules

 Ví dụ 2: Để tạo quy tắc kiểm tra miền giá trị

dữ liệu cột đơn vị tính của vật tư chỉ thuộctrong các từ: cái, bộ, kg, m2, m3

ASAS

Trang 23

Rules (áp dụng quy tắc KT)

 Cú pháp:

EXEC sp bindrule

Tên_qui_tắc, Tên_đối_tượng

 Ví dụ 1: Áp dụng quy tắc kiểm tra có tên

R Diem cho cột điểm trong bảng KQ

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 89 2/12/2011

R_Diem cho cột điểm trong bảng KQ

EXEC sp_bindrule R_Diem, ‘KQ.Diem’

Rules (áp dụng quy tắc KT)

 Ví dụ 2: Áp dụng quy tắc kiểm tra có tên là

R_Diem cho kiểu dữ liệu mới có tên là dn_slEXEC sp_bindrule R_Diem, ‘dn_sl’

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 90 2/12/2011

Trang 24

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 94 2/12/2011

Rules

 Xóa rule

DROP Rule Tên_rule

 Ví dụ;

Drop Rule R_Diem

Drop Rule R_Siso

NỘI DUNG

 Cơ sở dữ liệu của SQL Server

 Bảng (Table)g ( )

 Bảng ảo (View)

 Mô hình quan hệ dữ liệu

 Kiểu dữ liệu do người dùng định nghĩa

 Quy tắc kiểm tra miền giá trị dữ liệu (rule)

 Giá trị mặc định

Trang 25

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 97 2/12/2011

phải duy nhất trong CSDL

 Biểu thức: là một giá trị cụ thể nào đó như số,

ngày, chuỗi hoặc một hàm, biểu thức tính

toán

Giá trị mặc định (Default)

 Ví dụ: tạo giá trị mặc định cho các cột điểm là 0.

CREATE DEFAULT D DiCREATE DEFAULT D_Diem

 Ví dụ: Để liên kết giá trị mặc định vừa tạo

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 99 2/12/2011

Ví dụ: Để liên kết giá trị mặc định vừa tạo

D_Diem vào cột Diem có trong bảng KQ

EXEC sp_bindefault D_Diem,‘KQ.Diem’

Giá trị mặc định (Default)

 Không liên kết các giá trị mặc định vào cột

 Cú pháp:

EXEC sp_unbindefault Tên_đối_tượng

 Ví dụ: Để hủy bỏ giá trị mặc định đã liên kết

cho cột Diem trong bảng KQ trước đó

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 100 2/12/2011

cho cột Diem trong bảng KQ trước đó

EXEC sp_unbindefault ‘KQ.Diem’

Trang 26

DROP DEFAULT Tên_gt_mặc_định [,…]

 Ví dụ:

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 102 2/12/2011

Chỉ mục (Index)

 Tạo chỉ mục để lưu thứ tự sắp xếp các bản ghi

theo giá trị tăng dần của các cột được cho trong

With(index(indexName))

 Ví dụ:

Select * from mhSelect from mhWith(index(I_Tenmh))

Trang 27

Chỉ mục (Index)

 Chỉ nên tạo chỉ mục cho các bảng có số lượng

lớn các bản ghi và ít được cập nhật (vì nếu g ợ ập ậ (

bảng thường xuyên bổ sung dữ liệu thì phải

cập nhật lại index sẽ làm mất nhiều thời gian),

và chỉ nên tạo chỉ mục trên các cột mà thông

ti ủ ó th ờ ê đ ợ th khả tới

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 105 2/12/2011

tin của nó thường xuyên được tham khảo tới

(vì sẽ làm gia tăng tốc độ tìm kiếm mà không

cần phải tìm kiếm hết các dòng trên bảng).

 Các câu lệnh truy vấn dữ liệu

 Cấu trúc điều khiển

 Biến kiểu dữ liệu cursor

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 107 2/12/2011

Biến kiểu dữ liệu cursor

 Các hàm thường dùng

Biến cục bộ

Trang 28

Biến cục bộ

 Cú pháp:

DECLARE @Tên_biến kiểu_dữ_liệu[,…]

Gán giá trị cho biến:

SET hoặc SELECT cùng với phép gán (=)

Biến cục bộ

 Lệnh SET chỉ để gán giá trị cụ thể hoặc các

biểu thức tính toán hoặc giá trị tính toán từ

các biến khác, ngược lại lệnh SELECT dùng

để gán các giá trị được lấy ra hoặc tính toán

từ dữ liệu của các cột bên trong các bảng dữ

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 110 2/12/2011

liệu.

Biến cục bộ

 Ví dụ 1: để gán giá trị ngày 25/1/1990 vào

biến ngày sinh.

 Ví dụ 2:

From KQ

Trang 29

Biến cục bộ

 Xem giá trị hiện hành của biến

Cú há

 Cú pháp:

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 113 2/12/2011

print 'Diem thap nhat la: '

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 114 2/12/2011

print @MinDiemprint 'Diem cao nhat la: 'print @MaxDiem

Biến cục bộ

Phạm vi hoạt động của biến:

 Trong Transaction-SQL phạm vi hoạt động của

biến chỉ nằm trong một thủ tục nội tại (stored

procedure) hoặc một lô (batch) chứa các câu

lệnh mà biến đã được khai báo bên trong đó

 Lô được xem như một nhóm tập hợp của một

hoặc nhiều câu lệnh T-SQL sẽ được biên dịch

đồng thời cùng lúc tại SQL Server và sau đó hệ

thống sẽ thực thi các câu lệnh này ngay sau khi

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 116 2/12/2011

thống sẽ không có lệnh nào được thực thi bêntrong lô đó

Trang 30

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 117 2/12/2011

Select From Khoa

Order By TenKH desc

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 118 2/12/2011

Select From Khoa

Order By TenKH desc

go

( mặc dù vi phạm ràng buộc toàn vẹn trong INSERT (giả sử trùng khoá chính

ở cột MaSV) nhưng các lệnh SELECT bên trong lô này vẫn được thực hiện bình thường.

Biến cục bộ

 Ví dụ:

Declare @NS datetimeSelect @NS = Max(NgSinh)From SV

goPrint 'SV nho tuoi nhat la: '+ convert (char(12),

HT sẽ báo lỗi vì có thêm từ khoá GO ở giữa 2 lệnh SELECT và PRINT Bởi vì khi đó các lệnh này được chia làm 2 lô và lô thứ hai sẽ không hiểu biến @NS đã được khai báo trong lô thứ 1.

Print SV nho tuoi nhat la: + convert (char(12),

@NS)go

Trang 31

NỘI DUNG

 Biến cục bộ

 Biến hệ thống

 Biến hệ thống

 Các câu lệnh truy vấn dữ liệu

 Cấu trúc điều khiển

 Biến kiểu dữ liệu cursor

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 121 2/12/2011

Biến kiểu dữ liệu cursor

 Các hàm thường dùng

Biến hệ thống

 Các biến hệ thống trong SQL Server luôn bắtđầu bằng 2 chữ @@ và giá trị mà chúng tađang lưu trữ do hệ thống SQL cung cấp, ngườilập trình không can thiệp trực tiếp để gán giátrị vào các biến hệ thống

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 122 2/12/2011

trị vào các biến hệ thống

Biến hệ thống

Tên biến kiểu trả về Dùng để trả về

connections số nguyên Tổng số các kết nối vào SQL Server từ khi nó được khởi

động ộ g Error số nguyên số mã lỗi của câu lệnh thực hiện gần nhất Khi một lệnh

thực hiện thành công thì biến này có giá trị là 0 Language chuỗi Tên ngôn ngữ mà hệ thống SQL đang sử dụng Mặc định

là US_English RowCount số nguyên Tổng số mẫu tin được tác động vào câu lệnh truy vấn gần

nhất ServerName chuỗi Tên của máy tính cục bộ được cài đặt trong SQL Server

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 123 2/12/2011

ServiceName chuỗi Tên dịch vụ kèm theo bên dưới SQL Server

Fetch_Status số nguyên Trạng thái của việc đọc dữ liệu trong bảng theo cơ chế

dòng mẫu tin (cursor) Khi dữ liệu đọc mẫu tin thành công thì biến này có giá trị là 0

Version chuỗi Phiên bản, ngày của phẩm SQL Server và loại CPU

Biến hệ thống

 Ví dụ:

Select * From SVSelect @@rowcount

(trả về tổng số mẫu tin đang hiện có trong bảng SV )

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 124 2/12/2011

bảng SV )

Trang 32

Biến hệ thống

 Ví dụ:

Set Siso = Siso + 12

Where TenLop like '08%'

Select @@rowcount

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 125 2/12/2011

(Trả về tổng số mẫu tin có TenLop bắt đầu

 Các câu lệnh truy vấn dữ liệu

 Cấu trúc điều khiển

 Biến kiểu dữ liệu cursor

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 126 2/12/2011

Biến kiểu dữ liệu cursor

 Các hàm thường dùng

Các câu lệnh truy vấn dữ liệu

 Truy vấn con: chỉ là một câu lệnh truy vấn lựa

chọn (SELECT) được lồng vào các câu lệnh

truy vấn khác nhằm thực hiện các truy vấn tính

toán phức tạp Khi sử dụng đến truy vấn con

chúng ta cần lưu tâm đến một vài yếu tố sau:

chúng ta cần lưu tâm đến một vài yếu tố sau:

Các câu lệnh truy vấn dữ liệu

vấn con

một cột hoặc một biểu thức sẽ trả về giá trịtrong truy vấn con

đơn lẻ hoặc một danh sách các giá trị

trong SQL Server là không giới hạn

Trang 33

Các câu lệnh truy vấn dữ liệu

 Truy vấn con trả về một giá trị đơn: là truy vấn

mà kết qủa trả về của nó luôn đảm bảo chỉ là

 Kết hợp 2 câu truy vấn trên

FROM SV

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 130 2/12/2011

FROM SVWHERE Ngsinh = (SELECT MAX(Ngsinh)

Các câu lệnh truy vấn dữ liệu

 Truy vấn con trả về danh sách các giá trị: kết

quả trả về của nó là danh sách các giá trị hay

Các câu lệnh truy vấn dữ liệu

 Ví dụ 1: để biết nhà cung cấp nào mà công ty

Trang 34

Các câu lệnh truy vấn dữ liệu

 Hoặc:

FROM NHACC

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 133 2/12/2011

Các câu lệnh truy vấn dữ liệu

 Đâu đảm bảo rằng trong tháng 01/2009 công tychỉ đặt hàng cho 2 nhà cung cấp C01 và C03chỉ đặt hàng cho 2 nhà cung cấp C01 và C03

Do đó để luôn luôn có được danh sách họ têncác nhà cung cấp mà công ty đã đặt hàng trongtháng 01-2009 chúng ta thực hiện truy vấn con

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 134 2/12/2011

tháng 01 2009 chúng ta thực hiện truy vấn consau:

Các câu lệnh truy vấn dữ liệu

FROM NHACC

WHERE Convert(char(7),WHERE Convert(char(7),NgayDH, 21) = ‘2009-01’ )

Các câu lệnh truy vấn dữ liệu

AND NHACC.MaNCC = DONDH.MaNCC)

Trang 35

Các câu lệnh truy vấn dữ liệu

 Ví dụ 2: Để biết danh sách các nhà cung cấp

nào mà công ty chưa bao giờ đặt hàng Chúng

ta có thể thực hiện câu truy vấn như sau:

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 137 2/12/2011

(SELECT Distinct MaNCC

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 138 2/12/2011

 Lưu ý: IN tương đương =ANY

NOT IN tương đương <>ALL

Lệnh INSERT

 Cách 1: Thêm trực tiếp một bộ

INSERT INTO bảng[<cột 1> <cột 2> cột n]

INSERT INTO bảng[<cột 1>, <cột 2>,…, cột n]

VALUES(<giá trị 1>, <giá trị 2>,…, <giá trị n>)

 Ví dụ: Thêm dữ liệu vào SV

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 139 2/12/2011

Ví dụ: Thêm dữ liệu vào SV

SV (MaSV, TenSV, NgSinh, Malop)

Lệnh INSERT

Insert into SV values('004', 'Tran Thi Ha',

'05-26 1990' '08CDTH')

 Hay

Insert into SV(MaSV, TenSV, NgSinh, Malop)

values('004', 'Tran Thi Ha', '05-26-1990',

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 140 2/12/2011

values( 004 , Tran Thi Ha , 05 26 1990 ,'08CDTH')

Trang 36

Lệnh INSERT

 Cách 2: Thêm nhiều bộ giá trị lấy từ các bộ

giá trị của các bảng của CSDL

INSERT INTO bảng[<cột 1>, <cột 2>,…,

<cột n>]

SELECT … FROM … WHERE

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 141 2/12/2011

SELECT … FROM … WHERE

Lệnh INSERT

 Ví dụ:

LOP SV( TenLop SiSo)INSERT INTO LOP_SV( TenLop, SiSo)SELECT TenLop, count(*)

FROM SV, LOP

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 142 2/12/2011

FROM SV, LOPWHERE SV.MaLop=LOP.MaLopGROUP BY TenLop

Trang 37

Lệnh DELETE

 Cú pháp:

DELETE [FROM] Bảng

[WHERE <điều kiện>]

 Ví dụ: Xóa tất cả các nhân viên có LCB < 700

DELETE FROM NHANVIEN

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 145 2/12/2011

DELETE FROM NHANVIEN

 Ví dụ 1: Hiển thị danh sách sinh viên (Masv,

Ho, Ngsinh) có trong bảng SV theo từng họ , g ) g g g ọ

Họ là kí tự đầu tiên trong Tensv (L(Le),

N(Nguyen),T(Tran),còn lại là chưa phân biệt.

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 147 2/12/2011

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 148 2/12/2011

end, Ngsinhfrom SV

Trang 38

Biểu thức CASE

 Ví dụ 2: Hiển thị danh sách các vật tư (Mavt,

Tenvt, DVT) có trong bảng VATTU theo từng , ) g g g

loại hàng DD (đầu DVD), VD (đầu VCD), TV

(Tivi), TL (Tủ lạnh), LO (Loa thùng), còn lại

chưa phân biệt.

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 149 2/12/2011

Biểu thức CASE

SELECT MAVTU, TenVTU,

ELSE ‘chưa phân loại’

End, DVTinh

Biểu thức CASE

 Ví dụ 3: Hiển thị danh sách (Malop, Tenlopmoi

và sĩ số) các lớp trong bảng LOP theo tên mới

và sĩ số) các lớp trong bảng LOP theo tên mới.

Với tên mới là 1 kí tự bên phải của Tenlop (t

(cao dang ky thuat), c(cao dang tin hoc), còn

lại là cao dang bao chi.

lại là cao dang bao chi.

End, sisoEnd, sisoFrom lop

Trang 39

Biểu thức CASE

 Ví dụ 4: Hiển thị danh sách các vật tư trong

bảng VATTU thông tin bổ sung thêm chuỗi

ghi chú, tùy thuộc vào giá trị của cột phần trăm

giá bán (<20 lời ít, 20<= and <=40 lời nhiều,

>40 rất lời)

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 153 2/12/2011

40 rất lời)

Biểu thức CASE

WHEN PhanTram < 20 Then ‘Lời ít’

WHEN PhanTram Between 20 And 40Then ‘Lời nhiều’

ELSE ‘Rất lời’

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 154 2/12/2011

ELSE ‘Rất lời’

ENDFROM VATTU

Biểu thức CASE

 Ví dụ: cho lược đồ CSDL như sau:

CTPX (Ma_MH, SoPX, SLXuat, DGXuat)

 Ví dụ 5: Giảm giá bán hàng trong tháng 2-2007

theo quy tắc sau: Nếu số lượng hàng <= 2 thìkhông giảm giá, Nếu số lượng hàng từ 3 đến

10 thì giảm 10%, Nếu số lượng hàng > 10 thìgiảm 20% (Thay đổi trên ĐGXuất)

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 156 2/12/2011

giảm 20% (Thay đổi trên ĐGXuất)

Trang 40

Biểu thức CASE

UPDATE CTPX

SET DGXuat = CASE

WHEN SLXUAT BETWEEN 3 AND 10

 Ví dụ 6: Cập nhật Trợ cấp cho sinh viên sinh

vào tháng 5/1990 Với điều kiện sau: lớp có sĩ

số < 40 thì không trợ cấp, lớp có sĩ số từ 40đến 70 thì 100000, lớp có sĩ số lớn hơn 70 thì500000

Nguyễn Thị Thúy Loan CĐ PT - TH II Trang 158 2/12/2011

500000

Biểu thức CASE

Update SV

When siso <40 then 0

When siso between 40 and 70 then 100000

 Các câu lệnh truy vấn dữ liệu

 Cấu trúc điều khiển

 Biến kiểu dữ liệu cursor.Biến kiểu dữ liệu cursor

 Các hàm thường dùng

Ngày đăng: 11/02/2024, 12:28

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w