Tóm tắt các câu lệnh TSQL đã học

Tóm tt các câu lnh TSQL đã hc  
1) Trên csdliu (database)  
Các phiên bn ca SQL Server: Enterprise, Personal, Desktop, Developer,..  
Các bphn ca SQL Server: Enterprise Manager, Query Analyzer, Books Online,..  
Các loi tp tin ca SQL Server: data file (primary, secondary), log file  
Các loi cơ sdliu ca SQL Server: system database, user database  
create database: to cơ sdliu  
create database HoSoSinhVien  
create database HoSoSinhVien  
on (name=’HSSV_data’, filename=’c:\HSSV_data.mdf’)  
log on (name=’HSSV_log’, filename=’c:\HSSV_log.ldf’)  
drop database: xóa cơ sdliu  
drop database HoSoSinhVien  
alter database: sa các thông tin ca cơ sdliu  
alter database HoSoSinhVien  
modify name = HSSV  
exec sp_dboption: sa các thông tin ca cơ sdliu  
exec sp_dboption HoSoSinhVien, ‘read only’, ‘true’  
exec sp_dboption HoSoSinhVien, ‘autoshrink’, ‘true’  
exec sp_dboption HoSoSinhVien, ‘single_user’  
dbcc: điu khin cơ sdliu  
dbcc shrinkdatabase(HoSoSinhVien, 10)  
2) Trên bng (table)  
Nhcác kiu sliu: text, binary, numberic, money, datetime, bit, variant  
Nhcác các ràng buc: default, check, unique, foreign, primary  
Nhcác kiu toàn vn: entity, domain, referential, user  
Nhcác thuc tính btr: identity, null  
create table: to bng  
To bng vi các ct  
create table SinhVien (  
MaSV int,  
TenSV nchar(50)  
)
1
To vi các ràng buc  
create table SinhVien (  
MaSV int primary key,  
TenSV nvarchar(50) not null,  
QueQuan int references DiaPhuong(MaDP)  
)
drop table: xóa bng  
drop table SinhVien  
alter table..add: thêm ct  
Thêm ct bng cách dùng lnh alter table  
alter table SinhVien  
add QueQuan int  
alter table..drop column: xóa ct  
alter table SinhVien  
drop column QueQuan  
alter table..alter column: thêm thuc tính not null  
alter table SinhVien  
alter column TenSV nchar(50) not null  
alter table..add primary key: thêm khóa chính  
Thêm ràng buc khóa chính cn phi biến mt ct null thành not null trước khi thêm.  
Nếu để lnh chuyn đổi thuc tính not null ngay cnh lnh thêm khóa chính thì phi chèn  
tkhóa go vào vì có thlnh trên chưa được thc hin do đó lnh dưới báo li  
alter table SinhVien  
alter column MaSV int not null  
go  
alter table SinhVien  
add primary key (MaSV)  
alter table..add foreign key: thêm ràng buc khóa ngoài  
alter table SinhVien  
add foreign key (QueQuan) references DiaPhuong(MaDP)  
2
alter table..add default: thêm ràng buc mc định  
alter table SinhVien  
add default 'khong ten' for TenSV  
exec sp_help: xem thông tin bng  
exec sp_help SinhVien  
3) Trên bn ghi (record)  
Nhthêm phn biu thc điu kin  
Nhthêm phn ký tthay thế  
insert..values: thêm các bn ghi vào bng  
insert into SinhVien (MaSV, TenSV, QueQuan)  
values (1, N’Nguyn Văn A’, 1)  
insert..select: thêm các bn ghi tbng khác vào bng  
insert into DocGia  
select MaSV, TenSV, QueQuan from SinhVien  
insert into DocGia  
select MaGV, TenGV, QueQuan from GiaoVien  
select..into: đưa kết qula chn vào bng mi  
select MaSV, TenSV, Diem  
into SinhVienKha  
from SinhVien  
where Diem > 7.0  
delete: xóa các bn ghi tbng  
delete from SinhVien  
delete from SinhVien where MaSV=1234  
truncate: xóa toàn bbn ghi ca bng  
truncate table SinhVien  
update: sa các bn ghi trong bng  
update SinhVien  
set NhomTruong = 1  
where MaSV < 4  
3
update SinhVien  
set NhomTruong = 4  
where (MaSV > 3 and MaSV < 8)  
4) Truy vn (query)  
Htrtruy vn: distinct, top, as, identity  
Phép toán tp hp: in, like, between  
Các hàm tng nhóm: sum, max, min, avg  
4.1) Truy vn đơn gin  
select *: Hin tt cbng  
select *  
from SinhVien  
select: Hin mt sct  
select TenSV, DiemTB  
from SinhVien  
select..where: Hin mt sdòng / bn ghi  
select TenSV, DiemTB  
from SinhVien  
where DiemTB > 6.0  
select..order by: Hin và sp xếp theo đim ri theo tên  
select TenSV, DiemTB  
from SinhVien  
order by DiemTB desc, TenSV asc  
select..distinct: Hin danh sách giá trkhông trùng lp  
select distinct QueQuan  
from SinhVien  
select..top: Hin các dòng đầu tiên trong bng  
select top 3 TenSV, DiemTB  
from SinhVien  
order by DiemTB desc, TenSV asc  
4
4.2) Truy vn lng nhau (nested query)  
select..where (select)  
Hin tt cnhng người trong bng nhân viên có lương bng lương ln nht ca  
nhng người có trong công ty  
select TenNV, Luong  
from NhanVien  
where Luong = (select max(Luong) from NhanVien)  
select..where (in)  
Hin tt cnhng người trong bng nhân viên có lương ln nht hoc ln nhì ca  
nhng người có trong công ty.  
select TenNV, Luong  
from NhanVien  
where Luong in (select top 2 Luong from NhanVien order by Luong)  
Câu lnh select trong sto ra mt tp hai giá tr(top 2) đó là lương ln nht và lương  
ln nhì. Và câu lnh select thnht schn ra nhng người mà lương nm trong tp ln  
nht và ln nhì  
select..where (in sub)  
Hin ra tt cnhng người có lương ln nht phòng ca anh ta (không phi ln nht  
trong công ty mà ln nht trong phòng hoc đơn vmà anh ta thuc v)  
select nv1.TenNV, nv1.Luong  
from NhanVien as nv1  
where nv1.Luong = (select max(Luong) from NhanVien where Phong=nv1.Phong)  
Câu lnh select trong strvgiá trlương ln nht nhưng không phi ln nht trong  
toàn công ty mà ln nht trong phòng ca nv1. Sau đó câu lnh select ngoài cùng sxác  
định xem nv1 có được chn không bng cách kim tra lương anh ta vi lương ln nht  
ca phòng anh ta.  
4.3) Truy vn tng nhóm (subtotal query / grouping query)  
select..group by: Thng kê theo tiêu chí  
Hin ra slượng các nhân viên ng vi tng quê  
select QueQuan, count(*)  
from NhanVien  
group by QueQuan  
Đếm snam và sntrong công ty  
select GioiTinh, count(*)  
from NhanVien  
group by GioiTinh  
Tính tng thu nhp theo tng phòng  
select Phong, sum(Luong)  
5
from NhanVien  
group by Phong  
select..having: Hin ra mt snhóm phù hp  
Chỉ đếm slượng người Hi Phòng và slượng người Hà ni  
select QueQuan, count(*)  
from NhanVien  
group by QueQuan  
having (QueQuan = ‘HP’, QueQuan = ‘HN’)  
Chhin ra nhng phòng nào có tng thu nhp ln hơn 500000  
select Phong, sum(Luong)  
from NhanVien  
group by Phong  
having sum(Luong) > 5000000  
Chhin ra nhng tnh nào có slượng người ln hơn 10  
select QueQuan, count(*)  
from NhanVien  
group by QueQuan  
having count(*) > 10  
4.4) Truy vn liên bng (cross table query / joining query)  
select..inner join: ghép các cp bn ghi tha mãn điu kin  
Ghép bng nhân viên và hin ra tên nhân viên và tên địa phương  
select NhanVien.TenNV, DiaPhuong.TenDP  
from NhanVien inner join DiaPhuong on NhanVien.QueQuan = DiaPhuong.MaDP  
select..left outer join: ly tt cphía trái và ghép (nếu có) vi phi  
Ly tt cnhng nhân viên kcnhng nhân viên có quê quán không hp l(nghĩa là  
mã quê quán không có trong bng địa phương)  
select NhanVien.TenNV, DiaPhuong.TenDP  
from NhanVien left outer join DiaPhuong on NhanVien.QueQuan = DiaPhuong.MaDP  
select..right outer join: ly tt cphía phi và ghép (nếu có) vi phía  
trái  
Ly tt cnhng địa phương ghép vi nhân viên, các địa phương không hp lsẽ  
được ghép vi bdliu rng. Không hin ra các nhân viên không có mã quê quán phù  
hp  
select NhanVien.TenNV, DiaPhuong.TenDP  
from NhanVien right outer join DiaPhuong on NhanVien.QueQuan  
DiaPhuong.MaDP  
=
6
select..full outer join: ly thai phía và ghép nếu có  
Ly tt cnhng nhân viên (nếu không có quê quán phù hp thì ghép vi bdliu  
rng) và tt cnhng địa phương kckhông có nhân viên.  
select NhanVien.TenNV, DiaPhuong.TenDP  
from NhanVien right outer join DiaPhuong on NhanVien.QueQuan  
DiaPhuong.MaDP  
=
select..cross join: trvtt ccác cp có thghép  
Ghép tng nhân viên vi tt ccác địa phương. Như vy nếu có m nhân viên và có n  
địa phương thì bng đích scó m*n dòng. n dòng đầu cho nhân viên thnht ghép vi  
các địa phương. n dòng sau cho nhân viên thhai ghép vi các địa phương. và tiếp tc  
như thế ti nhân viên thm.  
select NhanVien.TenNV, DiaPhuong.TenDP  
from NhanVien cross join DiaPhuong  
7
pdf 7 trang baolam 09/05/2022 7020
Bạn đang xem tài liệu "Tóm tắt các câu lệnh TSQL đã học", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdftom_tat_cac_cau_lenh_tsql_da_hoc.pdf