Professional Documents
Culture Documents
Sau khi học các nội dung của modul, sinh viên có thể:
Tạo cơ sở dữ liệu, tạo bảng
Khai thác dữ liệu bằng lệnh SELECT
Tạo và sử dụng View
CHỌN CƠ SỞ DỮ LIỆU ĐỂ LÀM VIỆC
Cú pháp:
USE database_name
Ý nghĩa:
Chọn hoặc mở Cơ sở dữ liệu đang được MS SQL Server quản lý
Khi CSDL được chọn, NSD có thể thực hiện các thao tác khai thác và quản trị
CSDL đó
CSDL ngầm định khi cài đặt: master
Cú pháp:
GO
Ý nghĩa:
Gửi tín hiệu kết thúc 1 chuỗi lệnh SQL
đến SQL Server
CƠ SỞ DỮ LIỆU
(DATABASE)
TẠO CƠ SỞ DỮ LIỆU
Cú pháp
CREATE DATABASE database_name
ON
( [PRIMARY]
[ NAME = logical_file_name , ]
FILENAME = 'os_file_name'
[ , SIZE = size ]
[ , MAXSIZE = { max_size | UNLIMITED } ]
[ , FILEGROWTH = growth_increment ] )
[ ON [PRIMARY]
([NAME = logical_file_name,]
[<filespec>[,…n]]
FILENAME = ‘os_file_name’
[,<filegroup>[,..n] ]
[,SIZE = size]
]
[,MAXSIZE = {maxsize| UNLIMITED } ]
[LOGON {<filespec>[,…n] } ] [,FILEGROWTH = growth_increment]
) [,…n]
<filegroup> ::=
FILEGROUP
filegroup_name<filespec>[,…n]
FILE HỆ THỐNG
Dữ liệu và những đối tượng của CSDL được lưu trong những file của hệ
điều hành, gồm có:
- Primary data file*(.mdf): chứa bảng hệ thống và đối tượng dữ liệu
- Secondary data file(.ndf): chứa các đối tượng dữ liệu
- Transaction log file*(.ldf): ghi lại các thao tác lên CSDL (512K)
FILE HỆ THỐNG
CÂU HỎI:
TÌM SỰ KHÁC BIỆT CỦA CƠ SỞ DỮ LIỆU QLNS VÀ QLNS2
XÓA CƠ SỞ DỮ LIỆU
Cú pháp
DROP DATABASE database_name
Ý nghĩa
Xoá toàn bộ cơ sở dữ liệu
Chú ý:
Phải ở ngoài cơ sở dữ liệu muốn xóa thì mới có thể xóa CSDL đó.
Sau khi thực hiện lệnh xóa thành công, không còn khả năng khôi phục
CSDL
SỬA THÔNG SỐ CỦA CSDL
Cú pháp
ALTER DATABASE database_name { | MODIFY NAME =
new_database_name | <file_and_filegroup_options> |
<set_database_options> }
Ý nghĩa: Cho phép sửa tên, thêm/sửa các file CSDL và các thuộc tính khác
của CSDL
Ví dụ:
ALTER DATABASE QLNS
MODIFY NAME = Quanlynhansu
BẢNG
(TABLE)
TẠO BẢNG
Cú pháp
CREATE TABLE table_name
(<column_definition1>[, <column_definition2>,..])
Ý nghĩa: Tạo bảng trong CSDL đang được sử dụng với
các trường được định nghĩa trong danh sách.
Định nghĩa từng trường:
<tên trường> <Kiểu dữ liệu> [<ràng buộc>]
Trong đó, <ràng buộc> sẽ được SQL Server kiểm tra cho
trường mỗi khi có thao tác cập nhật dữ liệu vào bảng.
CÁC RÀNG BUỘC CƠ BẢN (CONSTRAINT)
Sửa trường:
Alter table <tên bảng>
alter column <tên trường>
<định nghĩa trường mới>
Thêm trường
Alter table <tên bảng>
add <định nghĩa trường mới>
Xoá trường
Alter table <tên bảng>
drop column <tên trường>
Tương tự với các ràng buộc…
XÓA BẢNG
Cú pháp
DROP TABLE table_name
Ý nghĩa: xóa bảng trong cơ sở dữ liệu đang sử dụng
Chú ý:
Sau khi xóa bảng, không còn khả năng khôi phục dữ liệu của
bảng
Đối với bảng có các ràng buộc với các bảng khác, chỉ có thể xóa
được khi vẫn đảm bảo tính toàn vẹn của dữ liệu
XEM THÔNG TIN CỦA CƠ SỞ DỮ LIỆU
Cú pháp:
EXEC SP_HELPDB <tên cơ sở dữ liệu>
Ý nghĩa: thể hiện thông tin về các đặc tính của CSDL.
XEM THÔNG TIN CỦA CÁC ĐỐI TƯỢNG
Cú pháp:
EXEC SP_HELP <tên đối tượng>
Ý nghĩa: thể hiện thông tin về các đặc tính của đối tượng cần xem (bảng...)
THÊM DỮ LIỆU VÀO BẢNG
Cú pháp
INSERT INTO <tên bảng>[(danh sách trường)] VALUES (các dữ liệu)
hoặc
INSERT INTO <tên bảng>[(danh sách trường)] <Câu lệnh SELECT>
Ý nghĩa:
Thêm một bản ghi cho bảng qua các dữ liệu được đưa vào hoặc thêm các
bản ghi vào bảng từ kết quả của một truy vấn bằng lệnh SELECT
Chú ý các dữ liệu phải phù hợp với thứ tự của các trường trong bảng hoặc
trong danh sách trường được liệt kê.
SỬA, XÓA DỮ LIỆU TRONG BẢNG
Sửa dữ liệu:
UPDATE <tên bảng> SET <tên trường1>=<giá trị1> [,<tên trường2>=<giá
trị2> ] WHERE <điều kiện>
Ý nghĩa: cập nhật dữ liệu cho các trường của các bản ghi thỏa mã điều
kiện
AVG SUM
COUNT STDEV
COUNT_BIG STDEVP
MIN VAR
MAX VARP
CHUYỂN KIỂU DỮ LIỆU
Cú pháp
CAST ( expresion AS data_type [ (length ) ])
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
Ý nghĩa: chuyển đổi kiểu dữ liệu cho biểu thức sang kiểu dữ liệu khác.
Các tham số:
expression: biểu thức cần chuyển kiểu
data_type: kiểu dữ liệu đích, là các kiểu sẵn có của MS SQL Server
length: tham số tùy chọn cho độ dài dữ liệu sau khi chuyển kiểu, ngầm định
là 30.
style: xác định cách hàm CONVERT thực hiện xử lý biểu thức khi chuyển
kiểu
KHUNG NHÌN
(VIEW)
LÀM VIỆC VỚI VIEW (KHUNG NHÌN)
Trong thực tế, có nhiều dữ liệu cần được tính toán, tổng hợp và
không được lưu trữ trong bảng vật lý để tránh dư thừa dữ liệu
Khung nhìn (view) bản chất là bảng logic, lấy các dữ liệu từ bảng
gốc thông qua câu lệnh truy vấn (SELECT)
View được lưu trữ trong MS SQL Server là các câu lệnh truy vấn,
do vậy dung lượng nhỏ.
Mỗi khi có lệnh gọi View, các dữ liệu sẽ được tự tính toán và trả về
kết quả
Có thể khai thác dữ liệu từ View như một bảng thông thường.
Từ một View có thể gọi đến các View khác
TẠO VIEW
Cú pháp
CREATE VIEW view_name [ (column [ ,...n ] ) ]
[ WITH [ ENCRYPTION ] [ SCHEMABINDING ] [ VIEW_METADATA
]]
AS select_statement
Ý nghĩa: tạo một view để lấy dữ liệu từ các bảng
ENCRYPTION: Mã hóa các mục trong sys.syscomments có chứa văn bản của
câu lệnh CREATE VIEW
SCHEMABINDING:Đảm bảo các định nghĩa bảng không bị chỉnh sửa để không
ảnh hưởng tới VIEW.
VIEW_METADATA: Đảm bảo SQL Server có metadata của VIEW để các ứng
dụng có thể khai thác được
ĐẶC ĐIỂM
Nếu view được định nghĩa bằng truy vấn phức tạp thì thời gian thực hiện
sẽ lớn
Mặc dù thông qua khung nhìn có thể thực hiện được thao tác bổ sung và
cập nhật dữ liệu cho bảng cơ sở nhưng chỉ hạn chế đối với những khung
nhìn đơn giản. Đối với những khung nhìn phức tạp thì thường không thực
hiện được.
Trong view không dùng
COMPUTE hoặc COMPUTE BY
ORDER BY, ngoại trừ có một mệnh đề TOP trong lệnh SELECT
Từ khóa INTO
Mệnh đề OPTION
Không tham chiếu đến bảng tạm hoặc biên bảng
VÍ DỤ TẠO VIEW
Sử dụng view
Select * from tinhtien
KẾT QUẢ
VÍ DỤ SỬ DỤNG VIEW LỒNG NHAU
Sửa View
ALTER VIEW view_name [ (column [ ,...n ] ) ]
[ WITH [ ENCRYPTION ] [ SCHEMABINDING ] [ VIEW_METADATA
]]
AS select_statement
Xóa View
DROP VIEW view_name
NỘI DUNG THỰC HÀNH MODUL 2
b) Tính tổng số ngày công theo từng tháng cho tất cả các nhân
viên.
c) Đưa ra các thông tin chi tiết của nhân viên có mã '00002'
d) Nhân viên họ tên là gì có số ngày công lớn nhất trong tháng 12.
e) Đưa ra danh sách nhân viên có số ngày công trong một tháng
nào đó lớn hơn trung bình cộng của các ngày công trong tháng đó
của tất cả nhân viên.
TÓM TẮT MODUL 2