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

Bài giảng hệ quản trị cơ sở dữ liệu ths nguyễn thị thúy loan

97 248 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

Định dạng
Số trang 97
Dung lượng 0,98 MB

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

Nội dung

Nguyễn Thị Thúy Loan 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 Nguyễn T

Trang 1

HỆ QUẢN TRỊ CSDL

ThS Nguyễn Thị Thúy Loan

Nguyễn Thị Thúy Loan Trang 2 2/12/2011

Cách đánh giá

 Thực hành: 30%

 Bài tập: 20%

 Lý thuyết: 50%

Tài liệu tham khảo

[1] Bài giảng của Giảng viên khoa Công nghệ Thông tin.

[2] Giáo trình SQL Server 200, Nguyễn Thiên Bằng chủ biên, NXB

Lao động – xã hội.

[3] Lập trình SQL căn bản, Đoàn Thiện Ngân chủ biên, NXB Lao

động – xã hội.

[4] Lập trình ứng dụng chuyên nghiệp SQL – Server 2000, Phạm

Hữu Khang chủ biên, NXB Lao động – xã hội

 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)

 Trigger & Function

 Backup anh restore

Trang 2

TỔNG QUAN VỀ

SQL SERVER

Chương I

ThS Nguyễn Thị Thúy Loan

Nguyễn Thị Thúy Loan Trang 6 2/12/2011

 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

Nguyễn Thị Thúy Loan Trang 9 2/12/2011

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

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.

Nguyễn Thị Thúy Loan Trang 11 2/12/2011

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

 Microsoft Distributed Transaction

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

Trang 4

Nguyễn Thị Thúy Loan Trang 13 2/12/2011

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

 Microsoft hợp tác Sybase làm ra sản phẩm thuộ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à

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ỉ

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

Trang 5

Nguyễn Thị Thúy Loan 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

Nguyễn Thị Thúy Loan Trang 18 2/12/2011

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 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

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

Nguyễn Thị Thúy Loan Trang 19 2/12/2011

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

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ự động để đảm bảo các dữ liệu không bị mất trong 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 Trang 21 2/12/2011

Nguyễn Thị Thúy Loan Trang 22 2/12/2011

 Client network Utility:

công cụ dùng để thiết lập, tham khảo các cấu hình mạng: giao thức truyền cho client, các đường dẫn tham khảo đến thư viện

Các thành phần SQL Server

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

để quản trị SQL Server EM cung cấp cho người

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

 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ừ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âu lệnh SQL hay Stored Procedure

Các thành phần SQL Server

Trang 7

Nguyễn Thị Thúy Loan Trang 25 2/12/2011

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

ThS Nguyễn Thị Thúy Loan

Nguyễn Thị Thúy Loan Trang 27 2/12/2011

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

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

 Giá trị mặc định

Nguyễn Thị Thúy Loan Trang 28 2/12/2011

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

Server

Trang 8

Nguyễn Thị Thúy Loan Trang 29 2/12/2011

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

Nguyễn Thị Thúy Loan Trang 30 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ạo mộ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:

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

Nguyễn Thị Thúy Loan Trang 33 2/12/2011

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

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

*.ldf

Nguyễn Thị Thúy Loan Trang 34 2/12/2011

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:\Program Files\Microsoft SQL Server\MSSQL\ Data

 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ống SQL Server dùng để quản lý bên trong

Nguyễn Thị Thúy Loan Trang 35 2/12/2011

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

growth)

 Kích thước tối đa tập tin dữ liệu (Maximun

file size)

Nguyễn Thị Thúy Loan Trang 36 2/12/2011

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 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ự độ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

Nguyễn Thị Thúy Loan Trang 37 2/12/2011

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

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

LOG ON(NAME = QLBH_Log,

FILENAME= ‘C:\Program Files\Microsoft SQL

Server\MSSQL.3\MSSQL\Data\ QLBH_Log.ldf',

SIZE=10MB, MAXSIZE = UNLIMITED,

FILEGROWTH = 5MB)

Nguyễn Thị Thúy Loan Trang 38 2/12/2011

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

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

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ĩa

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

 Giá trị mặc định

Trang 11

Nguyễn Thị Thúy Loan Trang 41 2/12/2011

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)

 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

Nguyễn Thị Thúy Loan Trang 42 2/12/2011

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

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

Decimal, Numeric

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 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

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],

………

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

Trang 12

Nguyễn Thị Thúy Loan Trang 45 2/12/2011

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 Trang 46 2/12/2011

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> (

<tên cột 1>: <kiểu dữ liệu 1> Defaultgia_trị|hàm,

<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])

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 Default 0)

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 n>: <kiểu dữ liệu n> [NOT NULL])

Trang 13

Nguyễn Thị Thúy Loan Trang 49 2/12/2011

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

Ví dụ:

CREATE TABLE LOP(

Malop int Identity(1000,5),

TenLop varchar(20) NOT NULL,

SiSo smallInt NOT NULL)

Nguyễn Thị Thúy Loan Trang 50 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 Trang 51 2/12/2011

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

 Tạo các cột

Nguyễn Thị Thúy Loan Trang 52 2/12/2011

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

 Đặt tên bảng

Trang 14

Nguyễn Thị Thúy Loan Trang 53 2/12/2011

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ụ:

ALTER TABLE LOP

ADD Nien_khoa int

Nguyễn Thị Thúy Loan Trang 54 2/12/2011

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ụ:

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]’,

Trang 15

Nguyễn Thị Thúy Loan Trang 57 2/12/2011

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 Trang 58 2/12/2011

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

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

 Primary Key Constraint

CREATE TABLE LOP

(MaLop INT PRIMARY KEY,

 Primary Key Constraint

ALTER TABLE <tên bảng> ADD CONSTRAINT <tên RBTV> PRIMARY KEY(thuộc tính khóa chính)

Ví dụ:

ALTER TABLE HOCVIEN ADD CONSTRAINT MaHV_pk PRIMARY KEY(MaHV)

Chú ý: khi thêm khóa chính thì cột MaHV trong bảng HOCVIEN buộc phải khác NULL

Trang 16

Nguyễn Thị Thúy Loan Trang 61 2/12/2011

Add Primary Key

Enterprise Manager

 Right-click column of interest

 Set Primary Key

Nguyễn Thị Thúy Loan Trang 62 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 table trong khi ta có thể có nhiều Unique Constraint 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)

Trang 17

Nguyễn Thị Thúy Loan Trang 65 2/12/2011

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ị)

CREATE TABLE LOP(MaLop INT PRIMARY KEY,TenLop VARCHAR(30), Siso INT,

CONSTRAINT Siso_Ck CHECK (Siso BETWEEN 1 AND 100))

Nguyễn Thị Thúy Loan Trang 67 2/12/2011

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

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

Alter table <tenbang>

add constraint <tên constraint> check

Ví dụ:

Alter table Lop

add constraint Siso_Ck check (Siso between 1 and

100)

Nguyễn Thị Thúy Loan Trang 68 2/12/2011

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]’)

Alter table SanPhamAdd constraint GiaBan_Ck check (GiaBan >0)

Trang 18

Nguyễn Thị Thúy Loan Trang 69 2/12/2011

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

 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

Nguyễn Thị Thúy Loan Trang 73 2/12/2011

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

 Xem kết quả của View

Select * from <Tenview>

Nguyễn Thị Thúy Loan Trang 74 2/12/2011

Trang 20

Nguyễn Thị Thúy Loan Trang 77 2/12/2011

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

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

 Giá trị mặc định

Nguyễn Thị Thúy Loan Trang 78 2/12/2011

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ực quan hơn

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

Trang 21

Nguyễn Thị Thúy Loan Trang 81 2/12/2011

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

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

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 Trang 83 2/12/2011

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

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

 Giá trị mặc định

Trang 22

Nguyễn Thị Thúy Loan Trang 85 2/12/2011

Rules

 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

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

được tạo mới

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

 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

CREATE RULE R_Diem

AS

@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ộc trong các từ: cái, bộ, kg, m2, m3

CREATE RULE rule_Dvtinh_HopleAS

@Dvt IN (‘Cái’, ‘Bộ’, ‘Kg’, ‘m2’, ‘m3’)

Trang 23

Nguyễn Thị Thúy Loan Trang 89 2/12/2011

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

EXEC sp_bindrule R_Diem, ‘KQ.Diem’

Nguyễn Thị Thúy Loan Trang 90 2/12/2011

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 Trang 91 2/12/2011

Trang 24

Nguyễn Thị Thúy Loan Trang 93 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)

 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 Trang 97 2/12/2011

 Tên_giá_trị_mặc_định: tên giá trị mặc định

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

Nguyễn Thị Thúy Loan Trang 98 2/12/2011

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_Diem

 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’

Nguyễn Thị Thúy Loan Trang 100 2/12/2011

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 đó

EXEC sp_unbindefault ‘KQ.Diem’

Trang 26

Nguyễn Thị Thúy Loan Trang 101 2/12/2011

 Ví dụ:

DROP DEFAULT D_Diem

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

Trang 27

Nguyễn Thị Thúy Loan Trang 105 2/12/2011

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

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

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).

LẬP TRÌNH VỚI

Chương III

ThS Nguyễn Thị Thúy Loan

Nguyễn Thị Thúy Loan Trang 107 2/12/2011

NỘI DUNG

 Biến cục bộ

 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

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

Biến cục bộ

Trang 28

Nguyễn Thị Thúy Loan Trang 109 2/12/2011

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

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

Nguyễn Thị Thúy Loan Trang 110 2/12/2011

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ữ 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.

DECLARE @ngaysinh DATETIME

SET @ngaysinh = ’01-25-1990’

 Ví dụ 2:

SELECT @TongSSV = count(MaSV)

Trang 29

Nguyễn Thị Thúy Loan Trang 113 2/12/2011

Biến cục bộ

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

 Cú pháp:

PRINT @Tên_biến | Biểu_thức_chuỗi

Nguyễn Thị Thúy Loan Trang 114 2/12/2011

print 'Diem thap nhat la: 'print @MinDiem

print 'Diem cao nhat la: 'print @MaxDiem

Nguyễn Thị Thúy Loan Trang 115 2/12/2011

Biến cục bộ

Ví dụ: In ra tuổi nhỏ nhất của sinh viên

Nguyễn Thị Thúy Loan Trang 116 2/12/2011

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 đó

Trang 30

Nguyễn Thị Thúy Loan Trang 117 2/12/2011

Biến cục bộ

 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

Select * From Khoa

Order By TenKH desc

go

(thiếu từ khoá VALUES) thì các lệnh SELECT bên trong lô này không được thực hiện.

Biến cục bộ

 Đối với các lỗi khi thực hiện (run-time) bên trong 1 lô nếu trường hợp các lỗi vi phạm ràng buộc toàn vẹn dữ liệu thì hệ thống SQL Server chỉ ngưng lại câu lệnh gây lỗi và thực hiện tiếp các lệnh bên trong lô đó

Trang 31

Nguyễn Thị Thúy Loan Trang 121 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

Nguyễn Thị Thúy Loan Trang 122 2/12/2011

Biến cục bộ

 Ví dụ:

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

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

@NS)go

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

Nguyễn Thị Thúy Loan Trang 123 2/12/2011

NỘI DUNG

 Biến cục bộ

 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

Trang 32

Nguyễn Thị Thúy Loan Trang 125 2/12/2011

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 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

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

Nguyễn Thị Thúy Loan Trang 126 2/12/2011

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 )

Biến hệ thống

 Ví dụ:

Update LOP

Set Siso = Siso + 12

Where TenLop like '08%'

 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

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

Trang 33

Nguyễn Thị Thúy Loan Trang 129 2/12/2011

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:

Nguyễn Thị Thúy Loan Trang 130 2/12/2011

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

o Cần mở và đóng ngoặc đơn cho câu lệnh truy vấn con

o Chúng ta chỉ được phép tham chiếu đến tên một cột hoặc một biểu thức sẽ trả về giá trị trong truy vấn con

o Kết quả truy vấn con có thể trả về là một giá trị đơn lẻ hoặc một danh sách các giá trị

o Cấp độ lồng nhau của các truy vấn con bên trong SQL Server là không giới hạn

Nguyễn Thị Thúy Loan Trang 131 2/12/2011

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à

Nguyễn Thị Thúy Loan Trang 132 2/12/2011

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

Select * From SVWhere Ngsinh = '07-21-1990'

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

FROM SVWHERE Ngsinh = (SELECT MAX(Ngsinh)

Trang 34

Nguyễn Thị Thúy Loan Trang 133 2/12/2011

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òn gọi là một tập hợp các phần tử Toán tử IN

sẽ được sử dụng để so sánh truy vấn con dạng

này

Nguyễn Thị Thúy Loan Trang 134 2/12/2011

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

đã đặt hàng trong tháng 01/2009

SELECT MaNCCFROM DONDHWHERE Convert(char(7), NgayDH, 21) =

“2009-01”

 Kết quả trả vềMaNCCC03, C01

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

 Hoặc:

SELECT TenNCC, DienThoai

FROM NHACC

WHERE MaNCC IN(‘C01’, ‘C03’)

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 ty chỉ đặt hàng cho 2 nhà cung cấp C01 và C03

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

Trang 35

Nguyễn Thị Thúy Loan Trang 137 2/12/2011

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

SELECT TenNCC, DienThoai

FROM NHACC

WHERE MaNCC IN (SELECT MaNCC

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

Nguyễn Thị Thúy Loan Trang 138 2/12/2011

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

AND NHACC.MaNCC = DONDH.MaNCC)

Nguyễn Thị Thúy Loan Trang 139 2/12/2011

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:

SELECT TenNhaCC, DienThoai

(SELECT Distinct MaNCC

Nguyễn Thị Thúy Loan Trang 140 2/12/2011

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

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

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

Trang 36

Nguyễn Thị Thúy Loan Trang 141 2/12/2011

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]

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

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

SV (MaSV, TenSV, NgSinh, Malop)

Nguyễn Thị Thúy Loan Trang 142 2/12/2011

Lệnh INSERT

Insert into SV values('004', 'Tran Thi Ha', 26-1990', '08CDTH')

'05-Hay

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

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

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

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

Trang 37

Nguyễn Thị Thúy Loan Trang 145 2/12/2011

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

Nguyễn Thị Thúy Loan Trang 146 2/12/2011

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

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

Nguyễn Thị Thúy Loan Trang 148 2/12/2011

Trang 38

Nguyễn Thị Thúy Loan Trang 149 2/12/2011

Biểu thức CASE

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

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

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 Trang 150 2/12/2011

from SV

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

loại hàng Nếu 2 kí tự đầu của Mavt là 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.

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ớ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.

Trang 39

Nguyễn Thị Thúy Loan Trang 153 2/12/2011

Biểu thức CASE

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

bảng VATTU (MaVT, TenVT, DVTinh,

PhanTram), 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, từ 20 đến 40 lời nhiều, >40 rất

lời)

Nguyễn Thị Thúy Loan Trang 154 2/12/2011

Biểu thức CASE

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

MH (MaMH, TenMH, DVT, MaNCC) PXUAT (SoPX, NgayXuat, SoDH) CTPX (Ma_MH, SoPX, SLXuat, DGXuat) DDH (MaDH, NgayDat)

CTDH (MaDH, MaMH, SLDH, DonGia)

Nguyễn Thị Thúy Loan Trang 155 2/12/2011

Biểu thức CASE

 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 Trang 156 2/12/2011

Biểu thức CASE

 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

Trang 40

Nguyễn Thị Thúy Loan Trang 157 2/12/2011

NỘI DUNG

 Biến cục bộ

 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

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

Nguyễn Thị Thúy Loan Trang 158 2/12/2011

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

 Cú pháp:

Cấu trúc rẽ nhánh IF…ELSE

IF Biểu_thức_luận_lýCâu_lệnh 1| khối_lệnh 1ELSE

Câu_lệnh 2| khối_lệnh 2

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

Ví dụ 1: Cho biết kết quả học tập của lớp

08CDTH như thế nào? Ví dụ điểm >=8 thì lớp

giỏi, >= 7 thì lớp khá, >= 5 thì lớp TB, còn lại

lớp yếu

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

Ví dụ: Cho biết kết quả học tập của Sinh viên 10CDTH001, khi biết đtb

Ngày đăng: 03/12/2015, 00:23

HÌNH ẢNH LIÊN QUAN

Hình ứng dụng, in dữ liệu ra các kết xuất - Bài giảng hệ quản trị cơ sở dữ liệu   ths  nguyễn thị thúy loan
nh ứng dụng, in dữ liệu ra các kết xuất (Trang 5)
Bảng thường xuyên bổ sung dữ liệu thì phải - Bài giảng hệ quản trị cơ sở dữ liệu   ths  nguyễn thị thúy loan
Bảng th ường xuyên bổ sung dữ liệu thì phải (Trang 27)
Bảng VATTU (MaVT, TenVT, DVTinh, - Bài giảng hệ quản trị cơ sở dữ liệu   ths  nguyễn thị thúy loan
ng VATTU (MaVT, TenVT, DVTinh, (Trang 39)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm