Giới thiệu SQL Server 2 Thực hiện các transaction processing, lưu trữ, phân tích và xây dựng các ứng dụng Là một hệ quản trị cơ sở dữ liệu quan hệ Quản lý kho dữ liệu đối với các t
Trang 1Giảng viên: Ths Phạm Thị Lan Anh
Bộ môn: HTTT
Chương 1:
TỔNG QUAN SQL SERVER
Trang 2Nội dung bài học
SQL Server là gì
SQL Server Integration
SQL Server Database
SQL Server Security
Trang 4Giới thiệu SQL Server (1)
Online Transaction processing (OLTP) database và Online
Analytical processing (OLAP) database
Trang 5Giới thiệu SQL Server (2)
Thực hiện các transaction processing, lưu trữ, phân tích và xây dựng các ứng dụng
Là một hệ quản trị cơ sở dữ liệu quan hệ
Quản lý kho dữ liệu đối với các transaction và analysis
Trả lời các request của client application
Dùng Transact-SQL, XML, Multidimendional expression
(MDX) hoặc SQL distribute management Object (SQL – DMO) để gởi các request giữa client với SQL Server
Trang 6 Relational Database Management System
Duy trì các quan hệ giữa các dữ liệu trong database.
Bảo đảm dữ liệu được lưu trữ đúng và hợp lệ theo các qui tắc đã đưa ra.
Phục hồi tất cả các dữ liệu khi cần
Giới thiệu SQL Server (3)
Trang 7 OLTP database:
Dữ liệu được lưu trong các table có quan hệ ->
giảm dư thừa dữ liệu và tăng tốc độ cập nhật
Cho phép một số lượng lớn user thực hiện các
Trang 8 Client Application: là những chương trình mà Users
dùng để truy xuất dữ liệu trong DBMS Chúng sử
Trang 9Client-Server components (1)
Trang 10 Client-Server Architecture
Client đóng vai trò business logic và presenting
data cho user Có thể chạy trên một hoặc nhiều máy hoặc chạy trên cùng máy với server
SQL Server quản lý database và cấp phát tài
nguyên
Client-Server components (2)
Trang 11Client-Server Communication
Trang 12SQL Server Services (1)
Trang 14SQL Server Services (3)
SQLServerAgent Services
Cảnh báo về trạng thái của một process ví dụ
như một công việc này đó được hoàn thành hoặc xãy ra lỗi.
Tạo ra một công việc mới và lập thời khoá để tự
động hoá các nhiệm vụ.
Gởi email hoặc khởi động một ứng dụng khác khi
một thông báo xãy ra.
Trang 15SQL Server Services (4)
Microsoft Distributed Transaction
Coordinator (MS DTC)
Cho phép các clients gom nhiều nguồn dữ liệu
khác nhau trong một transaction.
Microsoft Search
là một full-text engine hoạt động như một dịch vụ
trong Windows 2000.
Trang 16SQL Server Integration
SQL Server tích hợp với các OS
SQL Server tích hợp với các M_Server khác
Trang 17SQL Server tích hợp với các OS
Trang 18SQL Server tích hợp với…
Trang 19SQL Server Database
Các loại Databases
Các đối tượng Database
Tham chiếu đến đối tượng SQL Server
Các table hệ thống (System Tables)
! Metadata Retrieval
Trang 20Các loại Database (1)
Trang 21Các loại Databases (2)
master: điều khiển các user databases và các hoạt động của SQL
Server cũng như toàn bộ các thông tin như user accounts, biến môi
trường và các system error messages
model: cung cấp một template/prototype database cho việc tạo mới
Trang 22Database Objects (1)
Trang 23Database Objects (2)
Object Mô tả
Table Bảng quan hệ chứa dữ liệu
Data type Kiểu dữ liệu
Constraint Các qui tắc để kiểm tra ràng buộc dữ liệu
Default Các giá trị mặc định nếu giá trị của một field
không được nhập vào Rule Các thông tin mà định nghĩa các giá trị hợp lệ
trong một field Index Là một cấu trúc lưu trữ nhằm truy xuất nhanh dữ
liệu
Trang 24Database Objects (3)
Object Mô tả
View Là table ảo, đây là một cách để lấy dữ liệu từ các
table hoặc các view khác
procedure Là các thủ tục do programmer định nghĩa
Trigger Là một dạng đắc biệt của procedure nhưng được
thực hiện tự động khi user thay đổi dữ liệu trong table/view
Trang 25Tham chiếu đến một đối tượng
Tên đầy đủ:
server.database.owner.object
Tên ngắn gọn
Được hiểu là server default, instance hiện
hành, database hiện hành và owner là user
name đang login
Trang 26System Tables (1)
System tables lưu trữ các thông tin về các
System và Database Objects
Database Catalog lưu trữ Metadata về một
Database
System Catalog lưu trữ Metadata về toàn bộ
hệ thống và tất cả các Databases
Trang 27System tables (2)
Trang 28Lấy dữ liệu MetaData(1)
Trang 29Lấy dữ liệu MetaData(2)
System Stored Procedure
Trang 30SQL Server Security
Trang 31Login Authentication
Trang 32Database User Accounts and Roles
Trang 33Việc kiểm tra quyền
Trang 34Q&A
Trang 35 Môn học: Hệ quản trị cơ sở dữ liệu
Số tiết: 30 tiết LT (10 buổi)
GV: Phạm Thị Lan Anh
Email: lananh020679@gmail.com
Lịch trực: chiều thứ 2, tại VPK
Trang 36Bài 3: Thao tác trên table
Trang 37Nội dung
Tạo table bằng công cụ
Tạo table bằng lệnh T-SQL
Tạo mới dữ liệu bằng công cụ
Tạo mới dữ liệu bằng lệnh T-SQL
Sửa cấu trúc table
Tóm tắt bài học
Trang 38Tạo table bằng công cụ
SqlServer Management Studio Express
Trang 40 Định nghĩa các cột
< column_definition > ::= { column_name data_type }
Trang 41 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ố
http://msdn.microsoft.com/en-us/library/ms174979.aspx
Tạo bảng bằng lệnh T_SQL (3)
Trang 42Tạo bảng bằng lệnh T_SQL (4)
Trang 43< 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 ]
Tạo bảng bằng lệnh T_SQL (5)
Trang 44< 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 )
Tạo bảng bằng lệnh T_SQL (5)
Trang 45Tạo mới dữ liệu bằng công cụ
SqlServer Management Studio Express
Trang 46Tạo mới dữ liệu bằng lệnh T-SQL
VALUES (value1, value2, value3, )
Hoặc
column3, )
Trang 47Sửa cấu trúc table
Trang 48Xoá table
DROP TABLE table_name
Không thể xoá một table mà được tham chiếu (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
Trang 49Tó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 SQL
Transact- Để 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
Trang 50Bài tập
Table: KHACHHANG
Trang 51 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
Trang 52 Thêm cột số tiết kiểu số vào table môn học
Trang 53CÁC LỆNH SQL
Trang 54Nội dung bài học
Lệnh tạo các record: Insert
Lệnh truy vấn dữ liệu: select
Lệnh cập nhật dữ liệu: Update
Lệnh xoá dữ liệu: Delete
Bài tập
Trang 55Lệnh tạo các record: Insert (1)
Tạo một record với đầy đủ giá trị cho các
fields:
INSERT INTO table_name VALUES (value1,
value2, )
Chỉ định các field cụ thể:
INSERT INTO table_name (column1,
column2, ) VALUES (value1, value2, )
Trang 56Lệnh tạo các record: Insert (2)
Chèn dữ liệu vào table từ lệnh select của từ một hoặc nhiều table hoặc view
INSERT INTO TableName [(column1,
column2 )] select
Ví dụ:
INSERT INTO MyCustomers SELECT
CustomerID, CompanyName FROM
Customers WHERE country= ‘USA'
Trang 57Lệnh truy vấn dữ liệu: select
Cú pháp
Các mệnh đề
Trang 59Cú pháp lệnh select (2)
< query specification > ::=
SELECT [ ALL | DISTINCT ]
[TOP integer | TOP integer PERCENT }
[ WITH TIES ] ] < select_list >
Trang 60Các mệnh đề trong câu lệnh SELECT
Trang 61Mệnh đề select (1)
SELECT [ ALL | DISTINCT ]
[ TOP n [ PERCENT ] [ WITH TIES ] ]
< select_list >
< select_list > ::=
{ * | fieldName | expression as column_alias [, n]
Trang 62Mệnh đề select (2)
Tham số trong mệnh đề select
ALL: chỉ định rằng tất cả các dòng trùng nhau có thể xuất
hiện trong tập record kết quả Default là ALL.
DISTINCT: Khi có nhiều hơn hai dòng trùng nhau, chi hiển
thị một dòng
TOP n [PERCENT]: n dòng đầu tiên được xuất ra n nằm
trong khoảng 0 -> 4294967295 Nếu có PERCENT, thì n
phải nằm trong khoảng từ 0 đến 100.
WITH TIES: Chỉ định rằng kết quả các record trả về có thể
nhiều hơn n dòng bằng cách thêm vào các dòng có cùng giá trị trong cột order by (bắt buộc phải có order by)
Trang 64Mệnh đề FROM(2)
derived_table: là một subquery trả về các record trong
database
INNER: lấy ra tất cả các cập dòng so trùng (join type default)
FULL [OUTER]: lấy luôn tất cả các record của bảng hoặc trái hoặc phải mà không tìm thấy trong điều kiện join và giá trị
không tìm thấy sẽ được điều vào là null.
LEFT [OUTER]: lấy luôn tất cả các record của bảng trái mà không tìm thấy trong điều kiện join và giá trị không tìm thấy sẽ được điều vào là null.
RIGHT [OUTER]: lấy luôn tất cả các record của bảng phải
mà không tìm thấy trong điều kiện join và giá trị không tìm
Trang 65< predicate > ::=
{ expression { = | < > | ! = | > | > = | ! > | < | < = | ! < }
Trang 66| FREETEXT ( { column | * } , 'freetext_string' )
| expression [ NOT ] IN ( subquery | expression [ , n ] )
| expression { = | < > | ! = | > | > = | ! > | < | < = | ! < }
{ ALL | SOME | ANY} ( subquery )
| EXISTS ( subquery )
}
Trang 69Lệnh xoá dữ liệu: Delete
DELETE [FROM] { table_name [ n ])| view_name} [ WHERE { < search_condition >}]
Trang 71tiền cho các order details có số lượng >=100:
UPDATE [Order Details] SET discount= quatity*price * 0.1 WHERE (quatity>= 100)
Trang 72DELETE FROM authors WHERE au_lname = 'McBadden'
Xóa các titleauthor c ó điều kiện
USE pubs
DELETE FROM titleauthor
WHERE title_id IN
Trang 73Áp dụng
Xoá các hoá đơn của các khách hàng có địa chỉ là TAN BINH
Trang 74View Manager
Trang 75Nội dung bài học
Giới thiệu View
Lợi ích của View
Định nghĩa view
Trang 76Giới thiệu view (1)
Trang 77Giới thiệu view (2)
Trang 78Giới thiệu view (3)
View là một table ảo
Dùng để lưu trữ một truy vấn được định trước được xem là một đối tượng trong database.
Các table tham gia truy vấn được gọi là base table:
Dữ liệu trong view được lấy từ các bảng
Là sự kết hợp từ một hoặc nhiều bảng
Là sự quan hệ giữa một hoặc nhiều bảng
Có thể chứa các tính toán
Có thể kết hợp giữa các bảng và các view khác
Trang 79Lợi ích của view
Tập trung vào dữ liệu đang cần
Che những phần dữ liệu chưa cần dùng trong database
Đơn giản hoá việc quản lý quyền user
Cải thiện việc thực thi
Tổ chức lại dữ liệu để xuất ra cho các ứng dụng bên ngoài
Trang 80Định nghĩa view
Tạo view
Thay đổi view, Xoá view
Ví dụ về tạo view
Trang 82Tạo View(2)
select statement: là câu lệnh select query lấy dữ liệu từ 1
hoặc nhiều table hoặc view khác
WITH CHECK OPTION: Bắt buộc các lệnh thay đổi dữ liệu dựa trên view phải thỏa điều kiện định nghĩa view
WITH ENCRYPTION: Mã hoá lệnh tạo view.
SCHEMABINDING: ràng buộc view vào schema Khi đó, ta không thể xoá các table hoặc các view là cơ sở của view khi view này còn tồn tại
View_METADATA: chỉ định rằng SQL Server sẽ trả về cho DBLIB, ODBC và OLE DB APIs những “metadata information” của view bao gồm các thông tin như tên các base table, các column, …
Trang 83Tạo View(3)
Một số hạn chế trong select statement
COMPUTE BY
TOP n
Không thể chứa các table tạm
Có tối đa 1024 cột
Trang 84Thay đổi/xóa view
Sửa cấu trúc view:
ALTER VIEW <view_name> [(column [,…n])]
[WITH <view_attribute>[,…n] AS
Trang 85Lưu ý
Tên view lưu trữ trong sysobjects table, tên cột của view được lưu trữ trong syscolumns, text dùng để tạo
ra view lưu trong syscomments table
Để tạo view, ta phải có quyền create view và quyền select table trong các table cơ sở
Trang 86Bài tập minh họa (1)
Loai(MaLoai, TenLoai)
Tạo View cho biết: “mã sản phẩm, tên sản phẩm, tổng số lượng xuất của từng sản phẩm trong năm 2005” Lấy dữ liệu từ View này sắp xếp tăng dần theo tên sản phẩm.
Trang 87Bài tập minh họa (2)
có địa chỉ không ở Tân Bình
nhiêu khách hàng.
Trang 88Bài tập minh họa (3)
Tạo view V5 đếm xem có bao nhiêu mặt
hàng trong một hoá đơn (MAHD, NGAY, MAKH, SLMH)
Tạo view V6 lấy ra hoá đơn có số lượng
mặt hàng lớn nhất (MAHD, NGAY, MAKH, SLMH)
Tạo view V7: Lấy ra danh sách các khách
hàng có hoá đơn trong năm 1996
Trang 89Ngôn ngữ lập trình
Transaction – SQL
Trang 90Nội dung bài học
Enterprise Application Architechter
Biến và các kiểu dữ liệu
Trang 91Enterprise Application Architecture
Xác định các lớp logical (Logical Layers)
Thiết kế các lớp vật lý (Physical Layers)
Truy xuất dữ liệu
Trang 92Xác định các mức Logic (1)
Trang 93Xác định các mức Logic (2)
Data presentation Layer
Được xem là user service and cho phép user xem
và thao tác lên data: web browser and các Microsoft Windows® applications
Sử dụng các service mà application logic layer
cung cấp
Trang 94Xác định các mức Logic (3)
Application Logic Layer
Chứa application logic, định nghĩa các rules và processes giúp cho user không cần truy xuất trực tiếp vào database
Clients kết nối vào business service để kết nối
vào data server Business service là các built components hoặc integrated applications và services, ví dụ như Web services
custom- Application logic layer chứa các components để tạo thành transaction services, messaging
services, hoặc object và connection management services.
Trang 95Xác định các mức Logic (3)
Data Services Layer
Data services bao gồm data access logic và data storage
quản lý data traffic và integrity trên the database server.
Trang 96Thiết kế các lớp vật lý
Trang 97Truy xuất dữ liệu
Trang 98Biến và các kiểu dữ liệu
Khai báo biến
Kiểu dữ liệu
Trang 99Khai báo biến
Dùng từ khoá declare để khai báo biến
DECLARE {@local_variable data_type} [, n]
Gán giá trị cho biến
SET @local_variable_name = expression
Trang 100Ví dụ
DECLARE @vLastName char(20),
@vFirstName varchar(11)
SET @vLastName = 'Dodsworth‘
SELECT @vFirstName = FirstName
FROM Northwind Employees
WHERE LastName = @vLastName
PRINT @vFirstName + ' ' + @vLastName
Trang 101 Bit: 1 hoặc 0 value.
decimal and numeric
Decimal từ -10^38+1->10^38 –1
Numeric: giống decimal.
money and smallmoney
Trang 102 Char : Fixed-length non-Unicode character, <= 8,000 ký tự
Varchar: Variable-length non-Unicode , <= 8,000 ký tự
Text: Variable-length non-Unicode <=2^31 - 1 (2,147,483,647) ký tự
Unicode Character Strings
nchar Fixed-length Unicode , <=4,000 characters
nvarcharVariable-length Unicode, <=4,000 characters
Ntext Variable-length Unicode <= 2^30 - 1 (1,073,741,823)
characters.
Other Data Type
Cursor : là một tham chiếu đến một cursor.
M text, ntext, ho image
Trang 103Toán tử
Các loại toán tử
Thứ tự ưu tiên các toán tử
Trang 105Thứ tự ưu tiên các toán tử
Trang 106 Phân loại hàm
Các hàm thường dùng
Trang 108Configuration Trả về các thông tin về configuration
Cursor Trả về các thông tin về Cursor
DateTime Hàm tác động lên giá trị dateTime nhập vào và
trả về một giá trị là string, numeric, hoặc datetime Mathematical Hàm số học
Metadata Thông tin về database