You are on page 1of 10

Tm tt cc cu lnh TSQL hc

1) Trn c s d liu (database)


Cc phin bn ca SQL Server: Enterprise, Personal, Desktop, Developer,.. Cc b phn ca SQL Server: Enterprise Manager, Query Analyzer, Books Online,.. Cc loi tp tin ca SQL Server: data file (primary, secondary), log file Cc loi c s d liu ca SQL Server: system database, user database

create database: to c s d liu


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: xa c s d liu


drop database HoSoSinhVien

alter database: sa cc thng tin ca c s d liu


alter database HoSoSinhVien modify name = HSSV

exec sp_dboption: sa cc thng tin ca c s d liu


exec sp_dboption HoSoSinhVien, read only, true exec sp_dboption HoSoSinhVien, autoshrink, true exec sp_dboption HoSoSinhVien, single_user

dbcc: iu khin c s d liu


dbcc shrinkdatabase(HoSoSinhVien, 10)

2) Trn bng (table)


Nh cc kiu s liu: text, binary, numberic, money, datetime, bit, variant Nh cc cc rng buc: default, check, unique, foreign, primary Nh cc kiu ton vn: entity, domain, referential, user Nh cc thuc tnh b tr: identity, null

create table: to bng


To bng vi cc ct create table SinhVien ( MaSV int, TenSV nchar(50) )

To vi cc rng buc create table SinhVien ( MaSV int primary key, TenSV nvarchar(50) not null, QueQuan int references DiaPhuong(MaDP) )

drop table: xa bng


drop table SinhVien

alter table..add: thm ct


Thm ct bng cch dng lnh alter table alter table SinhVien add QueQuan int

alter table..drop column: xa ct


alter table SinhVien drop column QueQuan

alter table..alter column: thm thuc tnh not null


alter table SinhVien alter column TenSV nchar(50) not null

alter table..add primary key: thm kha chnh


Thm rng buc kha chnh cn phi bin mt ct null thnh not null trc khi thm. Nu lnh chuyn i thuc tnh not null ngay cnh lnh thm kha chnh th phi chn t kha go vo v c th lnh trn cha c thc hin do lnh di bo li alter table SinhVien alter column MaSV int not null go alter table SinhVien add primary key (MaSV)

alter table..add foreign key: thm rng buc kha ngoi


alter table SinhVien add foreign key (QueQuan) references DiaPhuong(MaDP)

alter table..add default: thm rng buc mc nh


alter table SinhVien add default 'khong ten' for TenSV

exec sp_help: xem thng tin bng


exec sp_help SinhVien

3) Trn bn ghi (record)


Nh thm phn biu thc iu kin Nh thm phn k t thay th

insert..values: thm cc bn ghi vo bng


insert into SinhVien (MaSV, TenSV, QueQuan) values (1, NNguyn Vn A, 1)

insert..select: thm cc bn ghi t bng khc vo bng


insert into DocGia select MaSV, TenSV, QueQuan from SinhVien insert into DocGia select MaGV, TenGV, QueQuan from GiaoVien

select..into: a kt qu la chn vo bng mi


select MaSV, TenSV, Diem into SinhVienKha from SinhVien where Diem > 7.0

delete: xa cc bn ghi t bng


delete from SinhVien delete from SinhVien where MaSV=1234

truncate: xa ton b bn ghi ca bng


truncate table SinhVien

update: sa cc bn ghi trong bng


update SinhVien set NhomTruong = 1 where MaSV < 4

update SinhVien set NhomTruong = 4 where (MaSV > 3 and MaSV < 8)

4) Truy vn (query)
H tr truy vn: distinct, top, as, identity Php ton tp hp: in, like, between Cc hm tng nhm: sum, max, min, avg

4.1) Truy vn n gin

select *: Hin tt c bng


select * from SinhVien

select: Hin mt s ct
select TenSV, DiemTB from SinhVien

select..where: Hin mt s dng / bn ghi


select TenSV, DiemTB from SinhVien where DiemTB > 6.0

select..order by: Hin v sp xp theo im ri theo tn


select TenSV, DiemTB from SinhVien order by DiemTB desc, TenSV asc

select..distinct: Hin danh sch gi tr khng trng lp


select distinct QueQuan from SinhVien

select..top: Hin cc dng u tin trong bng


select top 3 TenSV, DiemTB from SinhVien order by DiemTB desc, TenSV asc

4.2) Truy vn lng nhau (nested query)

select..where (select)
Hin tt c nhng ngi trong bng nhn vin c lng bng lng ln nht ca nhng ngi c trong cng ty: select TenNV, Luong from NhanVien where Luong = (select max(Luong) from NhanVien)

select..where (in)
Hin tt c nhng ngi trong bng nhn vin c lng ln nht hoc ln nh ca nhng ngi c trong cng ty:. select TenNV, Luong from NhanVien where Luong in (select top 2 Luong from NhanVien order by Luong) Cu lnh select trong s to ra mt tp hai gi tr (top 2) l lng ln nht v lng ln nh. V cu lnh select th nht s chn ra nhng ngi m lng nm trong tp ln nht v ln nh

select..where (in sub)


Hin ra tt c nhng ngi c lng ln nht phng ca anh ta (khng phi ln nht trong cng ty m ln nht trong phng hoc n v m 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) Cu lnh select trong s tr v gi tr lng ln nht nhng khng phi ln nht trong ton cng ty m ln nht trong phng ca nv1. Sau cu lnh select ngoi cng s xc nh xem nv1 c c chn khng bng cch kim tra lng anh ta vi lng ln nht ca phng anh ta.

4.3) Truy vn tng nhm (subtotal query / grouping query)

select..group by: Thng k theo tiu ch


Hin ra s lng cc nhn vin ng vi tng qu select QueQuan, count(*) from NhanVien group by QueQuan m s nam v s n trong cng ty select GioiTinh, count(*) from NhanVien group by GioiTinh Tnh tng thu nhp theo tng phng

select Phong, sum(Luong) from NhanVien group by Phong

select..having: Hin ra mt s nhm ph hp


Ch m s lng ngi Hi Phng v s lng ngi H ni select QueQuan, count(*) from NhanVien group by QueQuan having (QueQuan = HP, QueQuan = HN) Ch hin ra nhng phng no c tng thu nhp ln hn 500000 select Phong, sum(Luong) from NhanVien group by Phong having sum(Luong) > 5000000 Ch hin ra nhng tnh no c s lng ngi ln hn 10 select QueQuan, count(*) from NhanVien group by QueQuan having count(*) > 10

4.4) Truy vn lin bng (cross table query / joining query)

select..inner join: ghp cc cp bn ghi tha mn iu kin


Ghp bng nhn vin v hin ra tn nhn vin v tn a phng select NhanVien.TenNV, DiaPhuong.TenDP from NhanVien inner join DiaPhuong on NhanVien.QueQuan = DiaPhuong.MaDP

select..left outer join: ly tt c pha tri v ghp (nu c) vi phi


Ly tt c nhng nhn vin k c nhng nhn vin c qu qun khng hp l (ngha l m qu qun khng c trong bng a phng) select NhanVien.TenNV, DiaPhuong.TenDP from NhanVien left outer join DiaPhuong on NhanVien.QueQuan = DiaPhuong.MaDP

select..right outer join: ly tt c pha phi v ghp (nu c) vi pha tri


Ly tt c nhng a phng ghp vi nhn vin, cc a phng khng hp l s c ghp vi b d liu rng. Khng hin ra cc nhn vin khng c m qu qun ph hp

select NhanVien.TenNV, DiaPhuong.TenDP from NhanVien right outer join DiaPhuong on NhanVien.QueQuan = DiaPhuong.MaDP

select..full outer join: ly t hai pha v ghp nu c


Ly tt c nhng nhn vin (nu khng c qu qun ph hp th ghp vi b d liu rng) v tt c nhng a phng k c khng c nhn vin. select NhanVien.TenNV, DiaPhuong.TenDP from NhanVien right outer join DiaPhuong on NhanVien.QueQuan = DiaPhuong.MaDP

select..cross join: tr v tt c cc cp c th ghp


Ghp tng nhn vin vi tt c cc a phng. Nh vy nu c m nhn vin v c n a phng th bng ch s c m*n dng. n dng u cho nhn vin th nht ghp vi cc a phng. n dng sau cho nhn vin th hai ghp vi cc a phng. v tip tc nh th ti nhn vin th m. select NhanVien.TenNV, DiaPhuong.TenDP from NhanVien cross join DiaPhuong

ref: Tham kho thm mt s lnh


Xem tt c cc C S D LIU ngi dng trong MY CH
Mi khi mt c s d liu c to ra, bng sysdatabase trong c s d liu master s cha thng tin v bng mi to ra . Do vy chng ta c th lit k tt c cc c s d liu trong mt my ch bng cch lit k cc bn ghi trong bng sysdatabase select * from master.dbo.sysdatabases where sid <> 1

Xem tt c cc BNG ngi dng trong C S D LIU


Mi khi mt bng c to ra trong mt c s d liu, thng tin v bng s c cha trong bng sysobjects ca chnh c s d liu cha bng va to. V vy chng ta c th xem danh sch cc bng trong c s d liu bng cch truy vn bng sysobjects. Cc bng do ngi dng to c kiu l U select * from Northwind.dbo.sysobjects where xtype='U' Trong v d ny, chng ta ly tt c cc bn ghi bng sysobjects ca c s d liu Northwind nhng ch ly nhng bng ngi dng, ngha l nhng bng c xtype l U

Xem tt c cc CT thuc v mt BNG


Mi khi mt ct trong bng c to, bng syscolumns trong c s d liu s cha thng tin v ct va to. Thuc tnh id ca ct s cha nh danh ca bng m ct

thuc v. V vy xem cc ct trong mt bng d liu, chng ta c th truy vn bng syscolumns declare @x int set @x = (select id from sysobjects where name='Employees') select * from syscolumns where id = @x Trong v d ny, ta khai bo bin @x kiu int, sau ly id ca bng Employees vo bin @x, ri ta ly tt c cc ct trong bng syscolumns m c id bng @x, cng c ngha l id ca bng Employees. Do vy ta s lit k c tt c cc ct trong bng Employees

S dng bng tm
Khai bo bng, cp nht bng, v hin bng declare @x table(MaSV int, TenSV nvarchar(20)) insert into @x values(1, N'Thng') insert into @x values(2, N'Yn') select * from @x Khai bo bng, ti bng khc t trong c s d liu ln bng va khai bo, v hin bng declare @x table(MaSV int, TenSV nvarchar(20)) insert into @x select EmployeeID, firstname from Northwind.dbo.Employees select * from @x

S dng bin tm
declare @t money set @t = (select max(UnitPrice) from Northwind.dbo.products) select * from Northwind.dbo.products where UnitPrice >= @t

ref: Cc khi nim c bn ca c s d liu


Cc m hnh d liu (data model)
+ M hnh th bc (hierarchical) + M hnh mng li (network) + M hnh quan h (relational)

Cc vn ca lu tr
+ S d tha (redundance) + S nht qun (consistence) + Tnh ton vn (integrity)

+ S an ton (security) + S chia s (sharing)

Cc khi nim c bn
+ C s d liu (database) + Bng (table) hoc quan h (relation) + Bn ghi (record) hoc dng (row) hoc b (tuple) + Trng (field) hoc ct (column) + Mi quan h (relationship) c biu hin bng bng (table) hoc kha (key)

Mi quan h gia cc
+ Ti sao phi lu mi quan h + Phng php lu cc mi quan h (dng kha, dng bng) + Kha chnh (primary key) v kha ngoi (foreign key) + Vn ton vn tham chiu (referential integrity)

Ngn ng nh ngha v x l d liu


+ Thao tc trn cc i tng nh c s d liu, bng, ct + Phn nh ngha c s d liu v bng: create, drop, alter + Phn cp nht d liu: insert, delete, update + Phn truy vn d liu: join, union, projection, selection, sort, group + Phn lp trnh v thao tc: declare, set, use, go

ref: Lin quan ti nh ngha bng


Cc vn v ton vn d liu
+ Ton vn thc th (entity integrity): primary key, unique, identity + Ton vn tham chiu (referential integrity): foreign key, check + Ton vn min d liu (domain integrity): default, foreign key, check, not null + Ton vn ngi dng (user integrity): rules, stored procedures, triggers

Cc h tr vi ton vn
+ Rng buc kim tra (check constraint): phi tha mn iu kin no + Rng buc mc nh (default constraint): phi c mt gi tr mc nh + Rng buc duy nht (unique constraint): cc gi tr trong ct khng c trng lp + Rng buc kha ngoi (foreign key constraint): cc gi tr phi hp l vi ct kha chnh tng ng + Rng buc kha chnh (primary key constraint): phi duy nht v khng trng + Thuc tnh nh danh (identity property): c th c tng t ng + Thuc tnh khng trng (not null property): khng c php trng

Cc kiu d liu
Gi tr nh phn: bit

Cc s nguyn: bigint, int, smallint, tinyint Cc s thc xp x: float, real Gi tr s thc chnh xc: decimal, numberic Gi tr tin t: money, smallmoney Gi tr hi gian: datetime, smalldatetime Cc chui: char, varchar, text, nchar, nvarchar, ntext, Cc chui nh phn: binary, varbinary, image Cc kiu khc: cursor, table, variant, timestamp, uniqueidentifier

You might also like