Bài giảng Hệ quản trị cơ sở dữ liệu SQL server 2012 được biên soạn giúp người học nắm được tính năng chính của SQL Server 2012; Quản trị dữ liệu; chia sẽ dữ liệu qua mạng và các HQTCSDL khác; báo cáo, tổng hợp và phân tích dữ liệu.
Trang 1H QU N TR C S D LI U Ệ Ả Ị Ơ Ở Ữ Ệ
SQL SERVER 2012
Trang 2Gi i thi u h qu n tr c s d li u ớ ệ ệ ả ị ơ ở ữ ệ
SQL Server 2012
• HQTCSDL là ph n m m v i ti n ích giúp cho vi c ầ ề ớ ệ ệ
qu n tr d li u m t cách hi u qu ả ị ữ ệ ộ ệ ả
• Có r t nhi u HQTCSDL nh Microsoft là SQL ấ ề ư
Server, Oracle, IBM, MySQL, …
• Công c chính SQL Server 2012 (ụ cài đ t sách chính ặ ở )
– Giao di n làm vi c (SQL Server Management ệ ệ
Studio)
– L u tr d li u (Database Engine)ư ử ữ ệ
– T ng h p và phân tích d li u (Analysis ổ ợ ữ ệ
Services)
Trang 3Tính năng chính c a SQL Server 2012 ủ
• Qu n tr d li uả ị ữ ệ
• Chia s d li u qua m ng và các HQTCSDL khácẽ ữ ệ ạ
• Báo cáo, t ng h p và phân tích d li uổ ợ ữ ệ
Trang 4Tính năng chính c a qu n tr d li u ủ ả ị ữ ệ
• T o l p d li uạ ậ ữ ệ
• Khai thác d li u (thông qua ngôn ng truy v n)ữ ệ ữ ấ
• H tr l p trình x lý s li u và d li uỗ ợ ậ ử ố ệ ữ ệ
Trang 7Ngôn ng t o l p d li u ữ ạ ậ ữ ệ
Cú pháp t o l p d li u :ạ ậ ữ ệ
CREATE DATABASE ten_database
Trang 8Ngôn ng t o l p d li u ữ ạ ậ ữ ệ
[ON {DELETE|UPDATE} CASCADE ]}
Trang 9Ngôn ng t o l p d li u ữ ạ ậ ữ ệ
[ON {DELETE|UPDATE} CASCADE ]}
Trang 10Ngôn ng t o l p d li u ữ ạ ậ ữ ệ
Cú pháp thay đ i c u trúc b ng :ổ ấ ả
ALTER TABLE ten_bang {
ALTER COLUMN ten_cot {
Trang 11Ngôn ng t o l p d li u ữ ạ ậ ữ ệ
(ví d ) ụ
Create table lophoc (
malop nvarchar(5) primary key, tenlop nvarchar(100), tongso int, constraint tschk check (tongso < 50))
Create table monhoc (
mamon nvarchar(5) primary key, tenmon nvarchar(100))
Create table sinhvien (
masinhvien nvarchar(10) primary key, tensinhvien nvarchar(100), malop nvarchar(5) references lophoc(malop))
Trang 12Ngôn ng t o l p d li u ữ ạ ậ ữ ệ
Lu t trên d li u :ậ ữ ệ
CREATE RULE ten_luat
AS
@VALUE
{IN | LIKE | = | > | < | != | ≥ | ≤ } {gia_tri [, n] | tap_hop}
Trang 13Ngôn ng truy v n Select ữ ấ
SELECT [[ALL|DISTINCT]|[TOP [PERCENT] n]] <danh_sach_select>
-<danh_sach_select> ::=
{ [ten_bang | bi_danh.]ten_cot | bieu_thuc_tinh_toan_tren_cot
} [[AS] ten_cot_moi]
[, n]
Trang 14Ngôn ng truy v n Select ữ ấ
<danh_sach_bang> ::=
{<ten_bang> [AS bi_danh] [, n] |
<bang_tam>}
<bang_tam> ::=
( <ten_bang> [AS bi_danh]
{INNER | RIGHT | LEFT} JOIN
<ten_bang> [AS bi_danh]
ON dieu_kien ) [AS bi_danh]
|
( {<bang_tam> | <ten_bang> [AS
bi_danh]}
{INNER | RIGHT | LEFT} JOIN
{<bang_tam> | <ten_bang> [AS
bi_danh]}
ON dieu_kien ) [AS bi_danh]
<ten_bang> ::= {ten_bang | (SELECT …)}
Trang 15Ngôn ng truy v n – Select ữ ấ
{gia_tri | ten_cot | bieu_thuc} |
[NOT] IN ({gia_tri [, n]|SELECT 1_cot}) |
Trang 16Ngôn ng truy v n – Select ữ ấ
Ví d : [^ab] hay [^abef] ụ
SOME | ANY | ALL
EXISTS (SELECT …) : Tr v true/false n u select có k t qu ả ề ế ế ả
EXCEPT – INTERSECT
Trang 17Ngôn ng truy v n Select ữ ấ
SELECT [ALL | DISTINCT] <danh_sach_select_nhom>
Trang 18Li t kê danh sách sinh viên không h có đi m ệ ề ể
Select sv.* from sinhvien sv
Where sv.masinhvien not in
(Select masinhvien from diem)
Li t kê danh sách sinh viên có ít nh t 1 môn đi m 10 ệ ấ ể
Select distinct sv.masinhvien, sv.tensinhvien From sinhvien sv inner join diem d
on d.masinhvien = sv.masinhvien Where d.diem = 10
Trang 19Li t kê danh sách sinh viên mà m i môn h c đ u có đi m >= 5 ệ ọ ọ ề ể Select sv.* from sinhvien sv
Where sv.masinhvien not in
(Select masinhvien from diem where diem < 5)
Select sv.masinhvien, sv.tensinhvien
from sinhvien sv inner join diem d
on d.masv = sv.masv Group by sv.masinhvien, sv.tensinhvien
Having min(d.diem) >= 5
Trang 20Li t kê danh sách sinh viên đã h c nhi u môn nh t ệ ọ ề ấ
Select sv.masinhvien, sv.tensinhvien,
count(distinct d.mamon) as tong into #b1 From sinhvien sv inner join diem d
on d.masv = sv.masv Group by sv.masinhvien, sv.tensinhvien
Select masv, tensv from #b1
where tong = (select max(tong) from #b1)
Trang 21(EXCEPT – INTERSECT)
create table congviec
(macv char(5) primary key,tencv char(20))
create table phancong (manv char(5), macv char(5), constraint pk_phancong primary key (manv,macv))
create table nhanvien
(manv char(5) primary key, tennv char(20))