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

Tóm tắt các câu lệnh TSQL đã học  
1) Trên cꢀ sꢁ dꢂ liꢃu (database)  
Các phiên bản của SQL Server: Enterprise, Personal, Desktop, Developer,..  
Các bộ phận của SQL Server: Enterprise Manager, Query Analyzer, Books Online,..  
Các loại tập tin của SQL Server: data file (primary, secondary), log file  
Các loại cơ sở dữ liệu của SQL Server: system database, user database  
create database: tạo cơ sở dữ liệu  
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ơ sở dữ liệu  
drop database HoSoSinhVien  
alter database: sửa các thông tin của cơ sở dữ liệu  
alter database HoSoSinhVien  
modify name = HSSV  
exec sp_dboption: sửa các thông tin của cơ sở dữ liệu  
exec sp_dboption HoSoSinhVien, ‘read only’, ‘true’  
exec sp_dboption HoSoSinhVien, ‘autoshrink’, ‘true’  
exec sp_dboption HoSoSinhVien, ‘single_user’  
dbcc: điều khiển cơ sở dữ liệu  
dbcc shrinkdatabase(HoSoSinhVien, 10)  
2) Trên bꢄng (table)  
Nhớ các kiểu số liệu: text, binary, numberic, money, datetime, bit, variant  
Nhớ các các ràng buộc: default, check, unique, foreign, primary  
Nhớ các kiểu toàn vẹn: entity, domain, referential, user  
Nhớ các thuộc tính bổ trợ: identity, null  
create table: tạo bảng  
Tạo bảng với các cột  
create table SinhVien (  
MaSV int,  
TenSV nchar(50)  
)
1
Tạo với các ràng buộc  
create table SinhVien (  
MaSV int primary key,  
TenSV nvarchar(50) not null,  
QueQuan int references DiaPhuong(MaDP)  
)
drop table: xóa bảng  
drop table SinhVien  
alter table..add: thêm cột  
Thêm cột bằng cách dùng lệnh alter table  
alter table SinhVien  
add QueQuan int  
alter table..drop column: xóa cột  
alter table SinhVien  
drop column QueQuan  
alter table..alter column: thêm thuộc 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 buộc khóa chính cần phải biến một cột null thành not null trước khi thêm.  
Nếu để lệnh chuyển đổi thuộc tính not null ngay cạnh lệnh thêm khóa chính thì phải chèn  
từ khóa go vào vì có thể lệnh trên chưa được thực hiện do đó lệnh dưới báo lỗi  
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 buộc khóa ngoài  
alter table SinhVien  
add foreign key (QueQuan) references DiaPhuong(MaDP)  
2
alter table..add default: thêm ràng buộc mặc định  
alter table SinhVien  
add default 'khong ten' for TenSV  
exec sp_help: xem thông tin bảng  
exec sp_help SinhVien  
3) Trên bꢄn ghi (record)  
Nhớ thêm phần biểu thức điều kiện  
Nhớ thêm phần ký tự thay thế  
insert..values: thêm các bản ghi vào bảng  
insert into SinhVien (MaSV, TenSV, QueQuan)  
values (1, N’Nguyễn Văn A’, 1)  
insert..select: thêm các bản ghi từ bảng khác vào bảng  
insert into DocGia  
select MaSV, TenSV, QueQuan from SinhVien  
insert into DocGia  
select MaGV, TenGV, QueQuan from GiaoVien  
select..into: đưa kết quả lựa chọn vào bảng mới  
select MaSV, TenSV, Diem  
into SinhVienKha  
from SinhVien  
where Diem > 7.0  
delete: xóa các bản ghi từ bảng  
delete from SinhVien  
delete from SinhVien where MaSV=1234  
truncate: xóa toàn bộ bản ghi của bảng  
truncate table SinhVien  
update: sửa các bản ghi trong bảng  
update SinhVien  
set NhomTruong = 1  
where MaSV < 4  
3
update SinhVien  
set NhomTruong = 4  
where (MaSV > 3 and MaSV < 8)  
4) Truy vꢅn (query)  
Hỗ trợ truy vấn: distinct, top, as, identity  
Phép toán tập hợp: in, like, between  
Các hàm tổng nhóm: sum, max, min, avg  
4.1) Truy vấn đơn giản  
select *: Hiện tất cả bảng  
select *  
from SinhVien  
select: Hiện một số cột  
select TenSV, DiemTB  
from SinhVien  
select..where: Hiện một số dòng / bản ghi  
select TenSV, DiemTB  
from SinhVien  
where DiemTB > 6.0  
select..order by: Hiện và sắp xếp theo điểm rồi theo tên  
select TenSV, DiemTB  
from SinhVien  
order by DiemTB desc, TenSV asc  
select..distinct: Hiện danh sách giá trị không trùng lặp  
select distinct QueQuan  
from SinhVien  
select..top: Hiện các dòng đầu tiên trong bảng  
select top 3 TenSV, DiemTB  
from SinhVien  
order by DiemTB desc, TenSV asc  
4
4.2) Truy vấn lồng nhau (nested query)  
select..where (select)  
Hiện tất cả những người trong bảng nhân viên có lương bằng lương lớn nhất của  
những người có trong công ty  
select TenNV, Luong  
from NhanVien  
where Luong = (select max(Luong) from NhanVien)  
select..where (in)  
Hiện tất cả những người trong bảng nhân viên có lương lớn nhất hoặc lớn nhì của  
những 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 lệnh select trong sẽ tạo ra một tập hai giá trị (top 2) đó là lương lớn nhất và lương  
lớn nhì. Và câu lệnh select thứ nhất sẽ chọn ra những người mà lương nằm trong tập lớn  
nhất và lớn nhì  
select..where (in sub)  
Hiện ra tất cả những người có lương lớn nhất phòng của anh ta (không phải lớn nhất  
trong công ty mà lớn nhất trong phòng hoặc đơn vị mà anh ta thuộc về)  
select nv1.TenNV, nv1.Luong  
from NhanVien as nv1  
where nv1.Luong = (select max(Luong) from NhanVien where Phong=nv1.Phong)  
Câu lệnh select trong sẽ trả về giá trị lương lớn nhất nhưng không phải lớn nhất trong  
toàn công ty mà lớn nhất trong phòng của nv1. Sau đó câu lệnh select ngoài cùng sẽ xác  
định xem nv1 có được chọn không bằng cách kiểm tra lương anh ta với lương lớn nhất  
của phòng anh ta.  
4.3) Truy vấn tổng nhóm (subtotal query / grouping query)  
select..group by: Thống kê theo tiêu chí  
Hiện ra số lượng các nhân viên ứng với từng quê  
select QueQuan, count(*)  
from NhanVien  
group by QueQuan  
Đếm số nam và số nữ trong công ty  
select GioiTinh, count(*)  
from NhanVien  
group by GioiTinh  
Tính tổng thu nhập theo từng phòng  
select Phong, sum(Luong)  
5
from NhanVien  
group by Phong  
select..having: Hiện ra một số nhóm phù hợp  
Chỉ đếm số lượng người ở Hải Phòng và số lượng người ở Hà nội  
select QueQuan, count(*)  
from NhanVien  
group by QueQuan  
having (QueQuan = ‘HP’, QueQuan = ‘HN’)  
Chỉ hiện ra những phòng nào có tổng thu nhập lớn hơn 500000  
select Phong, sum(Luong)  
from NhanVien  
group by Phong  
having sum(Luong) > 5000000  
Chỉ hiện ra những tỉnh nào có số lượng người lớn hơn 10  
select QueQuan, count(*)  
from NhanVien  
group by QueQuan  
having count(*) > 10  
4.4) Truy vấn liên bảng (cross table query / joining query)  
select..inner join: ghép các cặp bản ghi thỏa mãn điều kiện  
Ghép bảng nhân viên và hiện 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: lấy tất cả phía trái và ghép (nếu có) với phải  
Lấy tất cả những nhân viên kể cả những nhân viên có quê quán không hợp lệ (nghĩa là  
mã quê quán không có trong bảng địa phương)  
select NhanVien.TenNV, DiaPhuong.TenDP  
from NhanVien left outer join DiaPhuong on NhanVien.QueQuan = DiaPhuong.MaDP  
select..right outer join: lấy tất cả phía phải và ghép (nếu có) với phía  
trái  
Lấy tất cả những địa phương ghép với nhân viên, các địa phương không hợp lệ sẽ  
được ghép với bộ dữ liệu rỗng. Không hiện ra các nhân viên không có mã quê quán phù  
hợp  
select NhanVien.TenNV, DiaPhuong.TenDP  
from NhanVien right outer join DiaPhuong on NhanVien.QueQuan  
DiaPhuong.MaDP  
=
6
select..full outer join: lấy từ hai phía và ghép nếu có  
Lấy tất cả những nhân viên (nếu không có quê quán phù hợp thì ghép với bộ dữ liệu  
rỗng) và tất cả những địa phương kể cả khô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: trả về tất cả các cặp có thể ghép  
Ghép từng nhân viên với tất cả các địa phương. Như vậy nếu có m nhân viên và có n  
địa phương thì bảng đích sẽ có m*n dòng. n dòng đầu cho nhân viên thứ nhất ghép với  
các địa phương. n dòng sau cho nhân viên thứ hai ghép với các địa phương. và tiếp tục  
như thế tới nhân viên thứ m.  
select NhanVien.TenNV, DiaPhuong.TenDP  
from NhanVien cross join DiaPhuong  
7
pdf 7 trang baolam 23640 Free
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