ữ ệ ữ ệ

ữ ị ữ ị

Ngôn ng  đ nh nghĩa d  li u Ngôn ng  đ nh nghĩa d  li u

 T o CSDL ạT o CSDL

ả ả

 T o vạT o vạ à qu n lý các  à qu n lý các

b ngảb ngả

ạ ậ TT o l p CSDL ạ ậo l p CSDL

ng c a CSDL: ng c a CSDL:

ủ ố ượ  Các đ i t ủ ố ượ Các đ i t ữ ệ ả  Các b ng d  li u (Tables) ả ữ ệ Các b ng d  li u (Tables) ỉ ụ  Các ch  m c (Index) ỉ ụ Các ch  m c (Index)  Các khung nhìn (Views) Các khung nhìn (Views) ủ ụ ư  Các th  t c l u trú (Store Procedures) ủ ụ ư Các th  t c l u trú (Store Procedures) ẫ ỗ  Các b y l ẫ ỗ Các b y l

i (Triggers) i (Triggers)

ạ ậ TT o l p CSDL ạ ậo l p CSDL

ị ị ạ ạ

ữ ữ

ầ  Các  thông  tin  c n  xác  đ nh  khi  t o  ầ Các  thông  tin  c n  xác  đ nh  khi  t o  CSDL: CSDL:  Tên CSDL Tên CSDL cướ  Kích th cướ Kích th ệ ư ệ  T p, nhóm t p l u tr  CSDL ệ ệ ư T p, nhóm t p l u tr  CSDL

ạ ậ TT o l p CSDL ạ ậo l p CSDL

ằ ằ

ạ  T o CSDL b ng T_SQL ạ T o CSDL b ng T_SQL   CREATE DATABASE    CREATE DATABASE

[ [ ON ON      [ < filespec > [ ,...n n ] ] ] ]      [ < filespec > [ ,...     [ , < filegroup > [ ,...n n ] ] ] ]      [ , < filegroup > [ ,... ] ]  [ [ LOG ON

LOG ON { < filespec > [ ,...

{ < filespec > [ ,...n n ] } ]  ] } ]

logical_file_name , ]   = logical_file_name  , ]  os_file_name' '   = 'os_file_name

= { max_size

= growth_increment

­­­­­­­ ­­­­­­­ < filespec > ::=  < filespec > ::=  PRIMARY ] ] [ [ PRIMARY NAME =  ( [ ( [ NAME FILENAME = '     FILENAME      size ] ]  SIZE = = size      [ , SIZE      [ ,  MAXSIZE = {      [ , MAXSIZE     [ ,  FILEGROWTH =      [ , FILEGROWTH     [ ,

max_size | UNLIMITED } ]   | UNLIMITED } ]  growth_increment ] ) [ ,...

] ) [ ,...nn ] ]

­­­­­­­­ ­­­­­­­­ < filegroup > ::=  < filegroup > ::=  FILEGROUP  filegroup_name FILEGROUP

filegroup_name < filespec > [ ,...

< filespec > [ ,...nn ] ]

ạ ậ TT o l p CSDL ạ ậo l p CSDL

ằ ằ

ự ự

ớ ớ

ạ  T o CSDL b ng T_SQL ạ T o CSDL b ng T_SQL  Database_name Database_name: :  ấ  Duy nh t trong server ấ Duy nh t trong server ậ ặ ị  Tuân theo lu t đ t đ nh danh ậ ặ ị Tuân theo lu t đ t đ nh danh ấ  Đ  dài l n nh t là 128 kí t ấ Đ  dài l n nh t là 128 kí t

ộ ộ  ON …ON …

ị ị

ữ ữ

ệ  Xác đ nh các t p (primary file, secondary file)  ệ Xác đ nh các t p (primary file, secondary file)  ệ ư ệ ư và nhóm t p l u tr  CSDL và nhóm t p l u tr  CSDL

ị ị

ộ ộ

ề ề ượ ạ ượ ạ

 LOG ON … LOG ON …  Xác đ nh các log file Xác đ nh các log file ệ ế  N u  m nh  đ   này  không  có  thì  m t  log  file  ệ ế N u  m nh  đ   này  không  có  thì  m t  log  file  ẽ ụ ộ ẽ ụ ộ  đ ng đ s  t s  t  đ ng đ

c t o ra. c t o ra.

ạ ậ TT o l p CSDL ạ ậo l p CSDL

ạ  T o CSDL b ng T_SQL ạ T o CSDL b ng T_SQL 

ệ ệ

ị ị

ằ ằ ệ Ví d  1ụVí d  1ụ : t o CSDL có xác đ nh t p primary và t p transaction log: ạ ạ ệ : t o CSDL có xác đ nh t p primary và t p transaction log:

USE master  USE master  GO GO  CREATE DATABASE qlnv  CREATE DATABASE qlnv  ON ON  ( NAME = qlnv_dat,       ( NAME = qlnv_dat,

FILENAME = 'c:\program files\microsoft sql   server\mssql\data\qlnvdat.mdf',  FILENAME = 'c:\program files\microsoft sql   server\mssql\data\qlnvdat.mdf',  SIZE = 10,         SIZE = 10,          MAXSIZE = 50,         MAXSIZE = 50,          FILEGROWTH = 5 )       FILEGROWTH = 5 )        LOG ON    LOG ON

( NAME = qlnv_log, ( NAME = qlnv_log, FILENAME = 'c:\program files\microsoft sql server\mssql\data\qlnvlog.ldf',           FILENAME = 'c:\program files\microsoft sql server\mssql\data\qlnvlog.ldf',            SIZE = 5MB,          SIZE = 5MB,           MAXSIZE = 25MB,         MAXSIZE = 25MB,          FILEGROWTH = 5MB )        FILEGROWTH = 5MB )         GOGO

ạ ậ TT o l p CSDL ạ ậo l p CSDL

ằ ằ

ở ộ ở ộ

ộ ộ

ọ ọ

ệ ử ổ ệ ử ổ

ố ủ ố ủ

ạ  T o  CSDL  b ng  Enterprise  Manager  ạ T o  CSDL  b ng  Enterprise  Manager  (EM) (EM) ọ  Ch n server group và m  r ng ọ Ch n server group và m  r ng ả ấ  Nh p chu t ph i trên nút Database/ ch n  ả ấ Nh p chu t ph i trên nút Database/ ch n  ấ ấ New  Database => Xu t hi n c a s  New  New  Database => Xu t hi n c a s  New  Database Database ầ ạ ậ  Nh p tên cho DB c n t o ầ ạ ậ Nh p tên cho DB c n t o ổ ộ ố  Thay đ i m t s  tham s  c a DB ổ ộ ố Thay đ i m t s  tham s  c a DB

ạ ậ TT o l p CSDL ạ ậo l p CSDL

ỉ ỉ

ử ử

 Ch nh s a DB Ch nh s a DB  ALTER DATABASE ALTER DATABASE  Ví d  2ụVí d  2ụ USE master      USE master           GO GO       CREATE DATABASE Test1      CREATE DATABASE Test1       ON ( NAME = Test1dat1,      ON ( NAME = Test1dat1,                    FILENAME =  FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\t1dat1 . ndf',               'c:\Program Files\Microsoft SQL Server\MSSQL\Data\t1dat1 . ndf',   SIZE = 5MB,      SIZE = 5MB,       MAXSIZE = 100MB,               MAXSIZE = 100MB,                FILEGROWTH = 5MB )              FILEGROWTH = 5MB )                   GO GO

ALTER DATABASE Test1       ALTER DATABASE Test1        ADD FILE ( NAME = Test1dat2,      ADD FILE ( NAME = Test1dat2,

FILENAME  =  'c:\Program  Files\Microsoft  SQL  FILENAME  =  'c:\Program  Files\Microsoft  SQL                                                    Server\MSSQL\Data\t1dat2.ndf',                                                    Server\MSSQL\Data\t1dat2.ndf',

SIZE = 5MB,  SIZE = 5MB,  MAXSIZE = 100MB,  MAXSIZE = 100MB,  FILEGROWTH = 5MB )  FILEGROWTH = 5MB )

GOGO

ạ ậ TT o l p CSDL ạ ậo l p CSDL

name' ]' ]

 Xem thông tin v  các CSDL Xem thông tin v  các CSDL  sp_helpdb [ [ @dbname= ] '  Ví d  3ụVí d  3ụ exec sp_helpdb qlnv   exec sp_helpdb qlnv exec sp_helpdb  exec sp_helpdb

ề ề sp_helpdb [ [ @dbname= ] 'name

ạ ậ TT o l p CSDL ạ ậo l p CSDL

DROP DATABASE database_name

database_name [ ,… [ ,…  ]]

 Xoá CSDL Xoá CSDL  DROP DATABASE   Ví d  4ụVí d  4ụ DROP DATABASE qlnv  DROP DATABASE qlnv

ể ữ ệ ể ữ ệ Ki u d  li u Ki u d  li u

 System data types (Ki u d  li u h  th ng) System data types (Ki u d  li u h  th ng)  User­defined data type  User­defined data type   CLR types CLR types  Spatial data Spatial data  Filestreams  Filestreams   XMLXML

ệ ố ệ ố ể ữ ệ ể ữ ệ

ể ữ ệ ể ữ ệ

ệ ố ệ ố

Ki u d  li u h  th ng Ki u d  li u h  th ng

 Exact numeric Exact numeric  bit, tinyint, smallint, int, bigint, numeric, decimal, smallmoney, money bit, tinyint, smallint, int, bigint, numeric, decimal, smallmoney, money  Approximate numeric  Approximate numeric   float, Real float, Real  Date & Time Date & Time  datetime, smalldatetime datetime, smalldatetime  Character string Character string  char, varchar, text char, varchar, text  Unicode character string  Unicode character string   nchar, nvarchar, ntext nchar, nvarchar, ntext  Binary character string  Binary character string   binary, varbinary, image binary, varbinary, image  Others  Others

sql_variant, timestamp, xml…..

 sql_variant, timestamp, xml…..

14

15

16

ạ ậ ạ ậ

ữ ệ ữ ệ

ả ả o l p các b ng d  li u TT o l p các b ng d  li u

ạ ả  T o b ng b ạ ả ằ :: T o b ng b ằng T_SQL ng T_SQL CREATE TABLE [. [. ]]

ả b ng>

(

ộ ộ

ể ữ ệ ể ữ ệ

ướ ướ

c 1),  c 2),

ể ữ ệ

ướ

c n)

  (kích th    (kích th ………….., ộ   (kích th ) ;

ạ ậ ạ ậ

ữ ệ ữ ệ

ả ả o l p các b ng d  li u TT o l p các b ng d  li u

VVí d  5ụí d  5ụ

CREATE TABLE qlnv.nhan_vien (

manv Smallint, ho_ten VARCHAR(25), ngay_sinh DATETIME, gioi_tinh CHAR(3), ma_dv CHAR(2), luong Int );

ạ ả  T o b ng b ạ ả ằ T o b ng b ằng T_SQL­  ng T_SQL­

ạ ậ ạ ậ

ữ ệ ữ ệ

ả ả o l p các b ng d  li u TT o l p các b ng d  li u

ộ ộ

ọ ọ

ạ ả  T o b ng b ạ ả ằ T o b ng b ằng EM ng EM  ChCh n CSDL ọ ọn CSDL ụ ọ  Ch n m c Tables ọ ụ Ch n m c Tables ả ấ  Nh p  chu t  ph i  trên  Tables  và  ch n  New  ả ấ Nh p  chu t  ph i  trên  Tables  và  ch n  New  Tables Tables

ạ ậ ạ ậ

ữ ệ ữ ệ

ả ả o l p các b ng d  li u TT o l p các b ng d  li u

ổ ấ ổ ấ ả ả êm,  xoá,  s a ử êm,  xoá,  s a ử

ử  S a  đ i  c u  trúc  b ng  (Th ử S a  đ i  c u  trúc  b ng  (Th c t)ộc t)ộ ::

ạ ậ ạ ậ

ữ ệ ữ ệ

ả ả o l p các b ng d  li u TT o l p các b ng d  li u

name ]] sp_help [ [ @objname = ] name

table_name   DROP TABLE table_name Xem thông tin b ngả  Xem thông tin b ngả  sp_help [ [ @objname = ]  Xoá b ngả  Xoá b ngả  DROP TABLE

ữ ệ ữ ệ

ữ ữ

Ngôn ng  thao tác d  li u Ngôn ng  thao tác d  li u

ả ả ả ả

ử ộ ử ộ ả ả

ả ả

ế ế ữ ệ  Chèn thêm b n ghi vào b ng d  li u Chèn thêm b n ghi vào b ng d  li u ữ ệ ữ ệ  S a n i dung trong b ng d  li u S a n i dung trong b ng d  li u ữ ệ ữ ệ ả  Xóa các b n ghi trong b ng d  li u Xóa các b n ghi trong b ng d  li u ữ ệ ả  Tìm ki m thông tin Tìm ki m thông tin

ả ả

ả ả

ữ ữ Chèn thêm b n ghi vào b ng d   Chèn thêm b n ghi vào b ng d   li uệli uệ

ị ị

ộ ả ộ ả ố ả ố ả INSERT  INTO   [()]ộ [()]ộ INSERT  INTO   ;   ; VALUES VALUES     Chèn thêm m t b n ghi vào cu i b ng Chèn thêm m t b n ghi vào cu i b ng

ộ ố ả ộ ố ả ố ả ố ả INSERT INTO   [()]ộ  [()]ộ     INSERT INTO      . . .    SELECT . . .  SELECT   Chèn thêm m t s  b n ghi vào cu i b ng  Chèn thêm m t s  b n ghi vào cu i b ng

ử ộ ử ộ

ả ả

ữ ệ ữ ệ S a n i dung trong b ng d  li u S a n i dung trong b ng d  li u

UPDATE    UPDATE  SETSET

ộ ộ

ả ả ỏ ỏ

=  =  [,  = , . . . ] [,  = , . . . ] (s)] WHERE   (s)] [[WHERE   C p nh t thông tin trên các c t col_name1,  ậ ậ C p nh t thông tin trên các c t col_name1,  ậ ậ ề col_name2, . . . cho các b n ghi th a mãn đi u  ề col_name2, . . . cho các b n ghi th a mãn đi u  ệki n sau Where ki n sau Where

ả ả

ả ả

ữ ệ ữ ệ Xóa các b n ghi trong b ng d  li u Xóa các b n ghi trong b ng d  li u

ả ả ề ề ệ ệ

DELETE FROM DELETE FROM (s)] WHERE   (s)] [[WHERE ỏ ấ ả  Xóa t Xóa t t c  các b n ghi th a mãn đi u ki n sau  ấ ả ỏ t c  các b n ghi th a mãn đi u ki n sau  ề ệ m nh đ  Where ề ệ m nh đ  Where ả TRUNCATE TABLE  ả TRUNCATE TABLE     Xoá t ấ ả ả t c  b n ghi trong b ng, l Xoá t ấ ả ả t c  b n ghi trong b ng, l ữ ẫ ả b ng v n gi ữ ẫ ả b ng v n gi

ượ ồ ủ ượ ồ ủ ả ả c đ  c a  c đ  c a

nguyên  nguyên

ế ế

Tìm ki m thông tin Tìm ki m thông tin

, Tdo) Manv, Mann, Tdo)

 TDNN(

ả ề  CSDL Qu n lý thông tin v  các nhân viên ả ề CSDL Qu n lý thông tin v  các nhân viên  PHONG( , Tenphong, Diachi, SDT) Maphong, Tenphong, Diachi, SDT) PHONG(Maphong  DMNN(Mann, Tennn) DMNN(Mann, Tennn)  NHANVIEN( ,  Hoten,  Ngaysinh,  Gioitinh,  Luong,  NHANVIEN(ManvManv,  Hoten,  Ngaysinh,  Gioitinh,  Luong,  Maphong) Sdt, Sdt, Maphong) TDNN(Manv, Mann

ế ế

Tìm ki m thông tin Tìm ki m thông tin

 Truy v n tấ

ổ ìm ki m ế t ng quát: Truy v n tấ ìm ki m ế ổt ng quát: SELECT     *|{[DISTINCT] column|expression [alias],...} FROM         table(s) [WHERE     condition(s)]

[ORDER BY {column, expr, alias}

[ASC|DESC]];

ệ ệ

ề ề

Nghĩa là: Nghĩa là: L yấL yấ    T  ừT  ừ ả ảTho  mãn    [[Tho  mãn ắ ế    ắ ế     [[S p x p S p x p

ữ ữ ệ ệ <đi u ki n gì?>] <đi u ki n gì?>] ứ ự ứ ự  nào?

>]>]

ế ế

Tìm ki m thông tin Tìm ki m thông tin

column,group_function(column) tables condition]

group_by_expression]

hoặc: SELECT FROM [WHERE [GROUP BY [HAVING group_condition] [ORDER BY

column];

ề ề

ệ ệ

ế ế

Tìm ki m không đi u ki n Tìm ki m không đi u ki n

[alias],...} table(s)

SELECT  FROM

*|{[DISTINCT]

column|expression

ế ế ề ề t thông tin v  các phòng ban?    t thông tin v  các phòng ban?

Ví d  6ụVí d  6ụ : : Cho bi Cho bi       Maphong,Tenphong, DiaChi, Tel  SELECT Maphong,Tenphong, DiaChi, Tel  SELECT     Phong FROMFROM    Phong

ho c:ặho c:ặ

*  SELECT *  SELECT  Phong FROMFROM Phong

ộ ả ộ ả ủ ủ ộ  c a m t b ng ậ thay th  ế t p tên c t  c a m t b ng t p tên c t ộ ậ

* * : : thay th  ế

ề ề

ế ế

ệ ệ

Tìm ki m không đi u ki n Tìm ki m không đi u ki n

ế ế

ưở ưở

ươ ươ

ủ ủ ọ ọ

ng c a các nhân viên  ng c a các nhân viên  ng, và  ng, và

ươ ươ

ươ ươ

ng)? ng)?

 Ví d  7ụVí d  7ụ : :  Cho bi Cho bi ồ ồ ằ ng (b ng l ằ ng (b ng l

t danh sách th t danh sách th bao g m các thông tin mã nhân viên, h  tên, l bao g m các thông tin mã nhân viên, h  tên, l ng + 40% l th ng + 40% l th

ưở ưở Câu l nhệ : :  Câu l nhệ  Manv, Hoten, Luong, 1.4*Luong  as as Thuong SELECT Manv, Hoten, Luong, 1.4*Luong   Thuong SELECT  Nhanvien FROM    Nhanvien FROM    SSau au Select ườ ườ ặ

ứ ứ

ứ ứ

ể ể

bt có giá tr  ị NULLNULL

ứ ứ  Bi u th c và tên  ể ể ộ bi u th c. ể ứ  Bi u th c và tên  bi u th c.  có th  ch a m t  Select có th  ch a m t  ứ ứ ể ể ộ ể ứ ả ể ượ ặ ]   AsAs]   c đ t tên gi : [ ng đó có th  đ tr ả ể ượ ặ c đ t tên gi : [ ng đó có th  đ tr ặho c  <‘Tên’> ho c  <‘Tên’> Bi u th c ch a giá tr   ị NULLNULL   bt có giá tr  ị Bi u th c ch a giá tr   ị

ề ề

ế ế

ệ ệ

Tìm ki m không đi u ki n Tìm ki m không đi u ki n

 Ví  d   8ụVí  d   8ụ : :  Cho  bi Cho  bi

ữ ữ

nhân viên trong c  quan  nhân viên trong c  quan ạ t ế mãmã  các  ngo i  ng   mà  các   các  ngo i  ng   mà  các  t ế ạ đãđã h c? ọ h c? ọ ơ ơ

Câu l nh:ệ Câu l nh:ệ  Mann  Select Mann  Select  TDNN  FromFrom TDNN

ho cặho cặ

ệ ủ ệ ủ ả ả ạ ạ ả ả

Select  Distinct  Mann Distinct Mann Select   TDNN FromFrom  TDNN Distinct ư  đ a ra b n ghi đ i di n c a nhóm b n  Distinct:: đ a ra b n ghi đ i di n c a nhóm b n  ư ố ghi ghi gi ng nhau ốgi ng nhau

ề ề

ế ế

ệ ệ

Tìm ki m không đi u ki n Tìm ki m không đi u ki n

ầ ầ ề  Ví  d   9ụVí  d   9ụ : :  Đ a  ra  thông  tin  v   2  nhân  viên  đ u  Đ a  ra  thông  tin  v   2  nhân  viên  đ u  ề

ư ư ả ả tiên trong b ng nhân viên?  tiên trong b ng nhân viên?

Câu l nh:ệ Câu l nh:ệ  top 2*  Select top 2*  Select  NHANVIEN FromFrom NHANVIEN

ư ư ầ ầ ả ả ả ả đ a ra b n ghi n b n ghi đ u tiên top n:: đ a ra b n ghi n b n ghi đ u tiên

top n

ế ế

ề ề

ệ ệ

Tìm ki m có đi u ki n Tìm ki m có đi u ki n

column|expression  [alias],...}

SELECT    FROM [WHERE

*|{[DISTINCT]  table(s)  condition(s)]

Condition(s): :  >>, ,  <<, ,  >=>=, ,  <=<=, ,  !=!=

ỏ ơ ỏ ơ

(không nh  h n) !

Condition(s):  andand, ,  oror, ,  notnot, ,

   Các  phép  so  sánh  trong  Các  phép  so  sánh  trong  Condition(s) ơ ớ ho c ặho c ặ <><>, , !>!> (không l n h n),   (không l n h n),  ơ ớ    Các  phép  logic  trong  Các  phép  logic  trong  Condition(s):  is null between……andand, , likelike, , inin, , is null between

ệ ệ

ề ề

ấ ấ

Truy v n có đi u ki n Truy v n có đi u ki n

t danh sách các nhân viên làm  t danh sách các nhân viên làm Cho bi : : Cho bi

Ví d  10ụVí d  10ụ ệ ở vi c  ệ ở vi c  Câu l nh:ệ Câu l nh:ệ Select   ** Select Nhanvien FromFrom   Nhanvien Maphong = ‘HCA’  WhereWhere   Maphong = ‘HCA’

ố ố ế ế  phòng có mã s  là HCA?  phòng có mã s  là HCA?

ề ề

ệ ệ

ấ ấ

Truy v n có đi u ki n Truy v n có đi u ki n

ế ế

ồ ồ ừ ừ t  mã  nhân  viên,  h   tên,  ngày  t  mã  nhân  viên,  h   tên,  ngày  ằ ng  n m  ằ ng  n m    2000000  đ ng  đ n  3000000    2000000  đ ng  đ n  3000000

(cid:0) 2000000)   2000000)

(cid:0) ọ  Ví  d   11ụVí  d   11ụ Cho  bi : :  Cho  bi ọ ươ ủ ươ ng  c a  các  nhân  viên  có  l sinh,  l ươ ủ ươ ng  c a  các  nhân  viên  có  l sinh,  l ế ả trong  kho ng  t ế ả trong  kho ng  t đ ngồđ ngồ ?? Câu l nh:ệ Câu l nh:ệ  Manv, Hoten, Ngaysinh, Luong Select Manv, Hoten, Ngaysinh, Luong Select  Nhanvien FromFrom Nhanvien  (Luong (cid:0)       WhereWhere (Luong  and (Luong (cid:0) and (Luong 3000000)  3000000)

ề ề

ệ ệ

ấ ấ

Truy v n có đi u ki n Truy v n có đi u ki n

ho c:ặho c:ặ       Select

Manv, Hoten, Ngaysinh, Luong Select Manv, Hoten, Ngaysinh, Luong  Nhanvien FromFrom Nhanvien       WhereWhere Luong Between 2000000 Luong  Between 2000000 and 3000000  and  3000000

ệ ệ

ề ề

ấ ấ

Truy v n có đi u ki n Truy v n có đi u ki n

ế ế

 Ví  d   12ụVí  d   12ụ Cho  bi : :  Cho  bi ủ ươ ng  c a  các  nhân  viên  có  l sinh,  l ươ ủ ng  c a  các  nhân  viên  có  l sinh,  l ừ ằ t trong  kho ng  n m  ừ ằ t trong  kho ng  n m  2000000 đ ngồ ?? 2000000 đ ngồ   Select  Manv, Hoten, Ngaysinh, Luong Select Manv, Hoten, Ngaysinh, Luong  Nhanvien   FromFrom Nhanvien  Luong  not between   WhereWhere Luong

ả ả ọ t  mã  nhân  viên,  h   tên,  ngày  ọ t  mã  nhân  viên,  h   tên,  ngày  ươ không   ng  ươ không ng  ế ồ   1000000  đ ng  đ n  ế ồ   1000000  đ ng  đ n

not between 1000000 1000000 and 2000000 and  2000000

ề ề

ệ ệ

ấ ấ

Truy v n có đi u ki n Truy v n có đi u ki n

ư ư ư ư Đ a ra danh sách các nhân viên ch a  : :  Đ a ra danh sách các nhân viên ch a

ạ ạ

 Ví d  13ụVí d  13ụ ố ệ có s  đi n tho i? ố ệ có s  đi n tho i?   *  Select  *     Nhanvien FromFrom   Nhanvien  SDT  is is NullNull WhereWhere SDT

Select

ề ề

ệ ệ

ấ ấ

Truy v n có đi u ki n Truy v n có đi u ki n

 Ví  d   14ụVí  d   14ụ

t  các  nhân  viên  làm  vi c  t  các  nhân  viên  làm  vi c ệ ở   ệ ở Cho  bi : :  Cho  bi

ặ ặ ế ế phòng có mã phòng là hca ho c KDA? phòng có mã phòng là hca ho c KDA?

Câu l nh:ệ Câu l nh:ệ Select   Select FromFrom   WhereWhere ** Nhanvien Nhanvien Maphong = ‘P1’ or Maphong = ‘P2’ Maphong = ‘P1’ or Maphong = ‘P2’

ho c:ặho c:ặ

Select     Select FromFrom   WhereWhere ** Nhanvien Nhanvien  (‘P1’, ‘P2’) Maphong inin (‘P1’, ‘P2’) Maphong

ề ề

ệ ệ

ấ ấ

Truy v n có đi u ki n Truy v n có đi u ki n

 Ví  d   15ụVí  d   15ụ ắ ầ ắ ầ

ế ế t  danh  sách  các  nhân  viên  có  t  danh  sách  các  nhân  viên  có

Cho  bi : :  Cho  bi ằ ằ tên b t đ u b ng ‘N’? tên b t đ u b ng ‘N’?

Câu l nh:ệ Câu l nh:ệ Select   ** Select FromFrom   Nhanvien Nhanvien          HoTen like ‘N%’ WhereWhere         HoTen like ‘N%’

ộ ế %% (m t xâu  ộ (m t xâu  ế

  trong  trong like  ự ấ kí t ự ấ kí t

ộ __ (m t kí t  (m t kí t ộ b t kì),   b t kì),

ườ ườ ỉ ỉ ng ki u  ng ki u xâu kí tự ể xâu kí tự ể ệ dùng các kí hi u thay th :  like dùng các kí hi u thay th :  ệ ự ấ  b t kì) ự ấ  b t kì)   LikeLike ch  thao tác trên các tr  ch  thao tác trên các tr

ắ ế ữ ệ ắ ế ữ ệ

ấ ấ

Truy v n có s p x p d  li u Truy v n có s p x p d  li u

[ORDER BY  column | expr | alias  [ASC|DESC], . . .]

ề ệ  Thêm m nh đ : Thêm m nh đ : ệ ề

ng? ng?

Ví d  16ụVí d  16ụ ư Hãy đ a ra danh sách nhân viên theo  : : Hãy đ a ra danh sách nhân viên theo  ư ề ầ ủ ươ theo chi u tăng d n c a l ề ầ ủ ươ theo chi u tăng d n c a l  Manv, Hoten, Ngaysinh, Luong  Select Manv, Hoten, Ngaysinh, Luong  Select FromFrom  NHANVIEN   NHANVIEN  Luong Asc   Order By Luong Asc Order By

ắ ế ữ ệ ắ ế ữ ệ

ấ ấ

Truy v n có s p x p d  li u Truy v n có s p x p d  li u

ư ư

ầ ầ ế ế

ươ ươ ụ Hãy đ a ra danh sách nhân viên theo    Hãy đ a ra danh sách nhân viên theo  ụVí d  17: Ví d  17: ủ ươ ề ng,  n u  2  nhân  ủ ươ ề ng,  n u  2  nhân  ế ắ ng thì s p x p theo ngày sinh  ế ắ ng thì s p x p theo ngày sinh

theo  chi u  tăng  d n  c a  l theo  chi u  tăng  d n  c a  l viên có cùng l viên có cùng l ầ ả gi m d n? ầ ả gi m d n?  Manv, Hoten, Ngaysinh, Luong  Select Manv, Hoten, Ngaysinh, Luong    Select   NHANVIEN FromFrom  NHANVIEN  Luong Asc, Ngaysinh Desc Order By Luong Asc, Ngaysinh Desc Order By trái    ph iảph iả ứ ự ắ ế ừ trái    s p x p t ứ ự ắ ế ừ    s p x p t   th  t th  t

ộ ố ộ ố ụ ụ M t s  hàm thông d ng M t s  hàm thông d ng

ự ự

ị ị ủ ủ ự   ự

ứ ứ ả ả th   n  trong  b ng  mã    th   n  trong  b ng  mã

ữ ữ ữ ườ ữ ườ ể ể ể ể ử  Các hàm x  lý xâu kí t Các hàm x  lý xâu kí t ử ả ề  ASCII(s) :  tr   v   giá  tr   mã  ASCII  c a  kí  t ASCII(s):  tr   v   giá  tr   mã  ASCII  c a  kí  t ả ề ủ ấ bên nh t trái c a xâu ủ ấ bên nh t trái c a xâu ự ả  Char(n) :  tr   ra  kí  t Char(n):  tr   ra  kí  t ự ả ASCII ASCII ổ  Upper(s) Upper(s): chuy n đ i xâu sang ch  hoa : chuy n đ i xâu sang ch  hoa ổ ổ  Lower(s) : chuy n đ i xâu sang ch  th Lower(s): chuy n đ i xâu sang ch  th ổ ng  ng

ộ ố ộ ố ụ ụ M t s  hàm thông d ng M t s  hàm thông d ng

(ti p)  (ti p)

ủ ủ

ự ắ ự ắ tr ng  bên  trái    tr ng  bên  trái

 RTRIM(s)

ạ ỏ ạ ỏ ự ắ ự ắ ả   tr ng  bên  ph i  ả   tr ng  bên  ph i

 Left(s, n)

ự ự (xâu con) phía bên   (xâu con) phía bên

 Right(s, n)

ự ự ự ế ử  Các hàm x  lý xâu kí t Các hàm x  lý xâu kí t ự ế ử  ++: phép toán ghép các xâu : phép toán ghép các xâu ả ề ộ  Len(s) : tr  v  đ  dài c a xâu Len(s): tr  v  đ  dài c a xâu ả ề ộ ỏ ạ  LTRIM(s) LTRIM(s):  lo i  b   các  kí  t :  lo i  b   các  kí  t ỏ ạ xâuxâu :  lo i  b   các  kí  t RTRIM(s):  lo i  b   các  kí  t xâuxâu ả ề :   tr  v  n kí t Left(s, n):   tr  v  n kí t ả ề ấ trái nh t xâu s ấ trái nh t xâu s ả ề :   tr  v  n kí t Right(s, n):   tr  v  n kí t ả ề (xâu con) phía bên   (xâu con) phía bên

ả ấ ph i nh t xâu s ả ấ ph i nh t xâu s

ộ ố ộ ố ụ ụ M t s  hàm thông d ng M t s  hàm thông d ng

ự   ự

ắ ầ ừ ắ ầ ừ

ứ ứ ế ế

ấ ấ

ứ ứ ự ắ ầ     b t đ u ự ắ ầ  b t đ u ế  v  trí th  m trong xâu s và thay th  vào đó  ế  v  trí th  m trong xâu s và thay th  vào đó

ượ ủ ượ ủ ả ả ự ế ử  Các hàm x  lý xâu kí t  (ti p) Các hàm x  lý xâu kí t ự ế ử  (ti p) ả ề  SubString(s, m ,n) : tr  v  xâu con dài n kí t SubString(s, m ,n): tr  v  xâu con dài n kí t ả ề ủ  ví trí th  m c a xâu s b t đ u t ủ c a xâu s b t đ u t  ví trí th  m  Replace(s,  s1,  s2) Replace(s,  s1,  s2):  thay  th   các  xâu  con  s1  :  thay  th   các  xâu  con  s1  ằ ệ xu t hi n trong xâu s b ng xâu s2 ằ ệ xu t hi n trong xâu s b ng xâu s2  Stuff (s, m, n, s1) : xóa xâu con n kí t Stuff (s, m, n, s1): xóa xâu con n kí t ừ ị t ừ ị t xâu s1 xâu s1 ả ề  Reverse(s) Reverse(s): tr  v  xâu đ o ng : tr  v  xâu đ o ng ả ề c c a xâu s c c a xâu s

á  tr  ị á  tr  ị

 Các hàm ngày tháng Các hàm ngày tháng ả ề ủ ệ ố  Getdate() : tr  v  ngày tháng năm c a h  th ng Getdate(): tr  v  ngày tháng năm c a h  th ng ả ề ủ ệ ố ề ả ố  DatePart(tham  s   datepart,date) :  tr   v   gi DatePart(tham  s   datepart,date) ề ả ố :  tr   v   gi á tr  ị date  aủaủ  gi giá tr  ị ành ph n cầph n cầ date  nguyên là  th  thành  nguyên là ố ủ  Các tham s  c a datepart: Các tham s  c a datepart: ố ủ

:: : :  :: :: ::

WeekWeek

 qq,qqq,q  yy, yyyy yy, yyyy  mm, mmm, m  dy,ydy,y  dd,ddd,d  wk, ww wk, ww  dwdw  hhhh  mi,nmi,n  ss,sss,s  msms

:: : :  :: :: ::

Quarter Quarter YearYear MonthMonth Dayofyear Dayofyear DayDay :: Weekday Weekday HourHour MinuteMinute Second Second Milisecond Milisecond

ộ ố ộ ố ụ ụ M t s  hàm thông d ng M t s  hàm thông d ng

ộ ố ộ ố ụ ụ M t s  hàm thông d ng M t s  hàm thông d ng

ả tr   ả tr :  date1,date2):  date1,date2)

ộ ố ộ ố

 Dateadd(datepart,n,date):

ả ề ả ề

ủ ủ

ị ố ị ố

ủ ủ

ả ề ả ề

ủ ủ

ả ả ữ ữ

Các hàm ngày tháng (ti p)ế  Các hàm ngày tháng (ti p)ế ề  DateDiff(datepart,  v   DateDiff(datepart,  ề v   kho ng  ngày,  tháng,  năm,  .  .  .  gi a  2  ngày  kho ng  ngày,  tháng,  năm,  .  .  .  gi a  2  ngày  date1 và date2 date1 và date2 Dateadd(datepart,n,date):  ththêm m t s  n datepart  êm m t s  n datepart  vào date vào date ị ố  Day(d):   v  giá tr  s  nguyên c a ngày Day(d): trtr  v  giá tr  s  nguyên c a ngày ị ố ả ề  Month(d):  Month(d): trtr  v  giá tr  s  nguyên c a tháng  v  giá tr  s  nguyên c a tháng ả ề ị ố  Year(d):   v  giá tr  s  nguyên c a năm Year(d): trtr  v  giá tr  s  nguyên c a năm ị ố

ộ ố ộ ố ụ ụ M t s  hàm thông d ng M t s  hàm thông d ng

 Các hàm toán h c (ti p) Các hàm toán h c (ti p)  Square(n) Square(n)    Sqrt(n) Sqrt(n)  Round(f,n) Round(f,n)  Power(f,n) Power(f,n)  Pi()Pi()  Sign(f) Sign(f)

ọ ọ ế ế

ộ ố ộ ố ụ ụ M t s  hàm thông d ng M t s  hàm thông d ng

ể ể

ổ  Các hàm chuy n đ i  Các hàm chuy n đ i  ổ  Convert(datatype[(size) ], exp [,style]) Convert(datatype[(size) ], exp [,style])

 Các hàm nh

ộ ố ộ ố ụ ụ M t s  hàm thông d ng M t s  hàm thông d ng

ề ề

ể ể ứ   Hàm đ m s   ứ ố ế Hàm đ m s   ế ố

ữ ệ :: Các hàm nhóm d  li u óm d  li u ữ ệ  Count ([All | Distinct] Bi u th c): Count ([All | Distinct] Bi u th c): ộ ỏ ệ ượ ng các b  th a mãn đi u ki n l ộ ỏ ệ ượ ng các b  th a mãn đi u ki n l ứ ):):  Hàm  tính  ể ứ  Max  (Bi u  th c),  Min  (Bi u  th c Max  (Bi u  th c),  Min  (Bi u  th c ứ ứ ể  Hàm  tính  ị ượ ấ ủ ậ ỏ ấ ị ớ c  tính  giá  tr   l n  nh t,  nh   nh t  c a  t p  giá  tr   đ ị ượ ấ ủ ậ ỏ ấ ị ớ c  tính  giá  tr   l n  nh t,  nh   nh t  c a  t p  giá  tr   đ ứ ể theo bi u th c ứ ể theo bi u th c

ể ể

ộ ố ộ ố

ụ ụ

M t s  hàm thông d ng M t s  hàm thông d ng

ể ể

ứ ứ

[All | Distinct]  Bi u th c ki u s ):  ể ố Hàm Hàm  ứ ể Sum ([All | Distinct]  Bi u th c ki u s ):  ể ố ứ ể Sum ( ị ượ ủ ậ ổ c  tính  theo  bi u  tính  t ng  c a  t p  giá  tr   đ ị ượ ổ ủ ậ tính  t ng  c a  t p  giá  tr   đ c  tính  theo  bi u  th c ứth c ứ [All | Distinct]  Bi u th c ki u s ): ố   Hàm Hàm  ể Avg (Avg ([All | Distinct]  Bi u th c ki u s ): ố ể ộ ủ ậ ị tính  giá  tr   trung  bình  c a  t p  giá  tr   thu c  tính  ộ ủ ậ ị tính  giá  tr   trung  bình  c a  t p  giá  tr   thu c  tính  ể ố ki u s : ể ố ki u s :

ể ể ị ị

ộ ố ộ ố

ụ ụ

M t s  hàm thông d ng M t s  hàm thông d ng

ủ ủ ế ươ t l ế ươ t l ng trung bình c a phòng  ng trung bình c a phòng Ví d  18ụVí d  18ụ Cho bi : :  Cho bi

có mã KDA? có mã KDA?  Avg(Luong) as TBluong Select  Avg(Luong) as TBluong Select   NHANVIEN  FromFrom NHANVIEN   Maphong= ’KDA’ WhereWhere Maphong= ’KDA’

ộ ố ộ ố

ụ ụ

M t s  hàm thông d ng M t s  hàm thông d ng

ế ổ ế ổ ố ố t  t ng  s   nhân  viên  và  trung  t  t ng  s   nhân  viên  và  trung

Ví  d   19ụVí  d   19ụ ươ bình l ươ bình l Cho  bi : :  Cho  bi ủ ơ ng c a c  quan? ủ ơ ng c a c  quan?

Select   count(*) as TongNv, Avg(Luong) as TBluong count(*) as TongNv, Avg(Luong) as TBluong Select  NHANVIEN   FromFrom  NHANVIEN

ữ ệ ữ ệ

ấ ấ

Truy v n nhóm d  li u Truy v n nhóm d  li u

NHANVIEN

2250000

2280000

Tính trung bình lương cho mỗi phòng trong bảng NHANVIEN.

2500000

ữ ệ ữ ệ

ấ ấ

Truy v n nhóm d  li u Truy v n nhóm d  li u

column, group_function(column) tables condition]

SELECT FROM [WHERE [GROUP BY group_by_expression

[HAVING group_condition]]

[ORDER BY column];

ữ ệ ữ ệ

ấ ấ

Truy v n nhóm d  li u Truy v n nhóm d  li u

ế ế ươ ươ ỗ ủ ng c a m i  ỗ ủ ng c a m i Cho bi  Cho bi t trung bình l t trung bình l

Ví d  20:ụVí d  20:ụ phòng? phòng?  Maphong, avg(Luong) as TBLuong  Select Maphong, avg(Luong) as TBLuong  Select  NHANVIEN FromFrom NHANVIEN  Maphong GroupGroup  ByBy Maphong

ữ ệ ữ ệ

ấ ấ

Truy v n nhóm d  li u Truy v n nhóm d  li u

ế ế t các phòng có trung bình  t các phòng có trung bình

Ví d  21:ụVí d  21:ụ  Cho bi  Cho bi ơ ớ ươ ng l n h n 2250000? l ơ ớ ươ ng l n h n 2250000? l Maphong, avg(Luong) as TBLuong  Select   Maphong, avg(Luong) as TBLuong  Select NHANVIEN FromFrom   NHANVIEN Maphong GroupGroup  ByBy   Maphong  avg(Luong) >=2250000 Having  avg(Luong) >=2250000 Having

ữ ệ ữ ệ

ấ ấ

Truy v n nhóm d  li u Truy v n nhóm d  li u

ặ ặ

ộ ộ

ấ ả ấ ả

ằ ằ

ứ ứ ữ ệ ữ ệ

ề ề

ả ả

ứ ứ

ệ ệ

ấ ấ

ặ ặ

ế ế

ả ả

ấ ấ

ể ể ệ ệ t ph i xu t hi n sau SELECT t ph i xu t hi n sau SELECT

ả ặ ả ặ

ặ ặ

ChChú ýú ý::    TT t  c   các  c t  ho c  bi u  th c  sau  SELECT  n u  ế ể ế ể t  c   các  c t  ho c  bi u  th c  sau  SELECT  n u  ấ ấ không n m trong hàm mhóm d  li u đ u ph i xu t  không n m trong hàm mhóm d  li u đ u ph i xu t  ệhi n sau GROUP BY hi n sau GROUP BY ộ  Các  c t  ho c  bi u  th c  xu t  hi n  sau  GROUP  BY  ộ Các  c t  ho c  bi u  th c  xu t  hi n  sau  GROUP  BY  ấ ấ không nh t thi không nh t thi ữ ệ ệ ề  Các  đi u  ki n  nhóm  d   li u  ph i  đ t  sau  HAVING  ữ ệ ệ ề Các  đi u  ki n  nhóm  d   li u  ph i  đ t  sau  HAVING  (không đ t sau WHERE) (không đ t sau WHERE)

ấ ấ

ế    ế Truy v n có liên k t Truy v n có liên k t

ấ ấ

ự ự

ạ ạ ế ế ế ế ế ế

ế    Các lo i truy v n liên k t: Các lo i truy v n liên k t: ế  Liên k t trong (inner join) Liên k t trong (inner join)  Liên k t ngoài (outer join) Liên k t ngoài (outer join)  Liên k t chéo (cross join) Liên k t chéo (cross join) ế  T  liên k t (self_join) T  liên k t (self_join) ế

ấ ấ

ế    ế Truy v n có liên k t Truy v n có liên k t

ấ ấ

[alias],...}

FROM        table1, table2 WHERE     table1.col1  table2.col2  condition(s)]

[and

[ORDER BY column asc|desc,  . . .];

Ho c:ặ

ế    Truy v n liên k t trong (inner join): Truy v n liên k t trong (inner join): ế SELECT    *|{[DISTINCT] column|expression

ấ ấ

ế    ế Truy v n có liên k t Truy v n có liên k t

SELECT         *|{[DISTINCT] column|expression

[alias],...}

table1.col1  table2.col2

condition(s)]

ả ả

ộ ộ

FROM             table1 INNER JOIN table2 ON [WHERE [ORDER BY column asc|desc,  . . .];   Tr  ra các b n ghi c a hai b ng mà giá tr   ị ủ ả ả r  ra các b n ghi c a hai b ng mà giá tr   ả ả ị ủ ấ ế ượ ớ c v i ít nh t m t giá  ế ượ ớ ấ c v i ít nh t m t giá

ủ c a col1 liên k t đ ủ c a col1 liên k t đ ị ở ị ởtr   tr

col2  col2

ấ ấ

ế    ế Truy v n có liên k t Truy v n có liên k t

ớ ớ ỗ ỗ ế ế : V i m i nhân viên, cho bi : V i m i nhân viên, cho bi

Ví d  22ụVí d  22ụ t mã nhân  t mã nhân  ọ ọ viên,  h   tên,  mã  phòng  và  tên  phòng  h   làm  ọ ọ viên,  h   tên,  mã  phòng  và  tên  phòng  h   làm  vi c?ệvi c?ệ   manv, hoten, nhanvien.maphong,  Select  manv, hoten, nhanvien.maphong,  Select tenphong  tenphong     Phong, nhanvien   FromFrom   Phong, nhanvien    phong.maphong=nhanvien.maphong    WhereWhere phong.maphong=nhanvien.maphong

Ho c:ặHo c:ặ

nv.maphong=p.maphong nv.maphong=p.maphong manv, hoten, nv.maphong, tenphong  Select manv, hoten, nv.maphong, tenphong  Select    nhanvien nv FromFrom   nhanvien nv   phong p Inner join  phong p Inner join OnOn

ấ ấ

ế    ế Truy v n có liên k t Truy v n có liên k t

ấ ấ

ế ế Truy v n có liên k t Truy v n có liên k t

ỗ ỗ

ớ ớ

ế ế

t các  t các

ọ ọ ữ ữ

ạ ạ

ộ ộ

Ví d  23ụVí d  23ụ : V i m i nhân viên (mã nhân viên, h  tên) cho bi : V i m i nhân viên (mã nhân viên, h  tên) cho bi ọ ữ ạ ngo i ng  mà nhân viên đó h c (tên ngo i ng , trình đ )? ọ ữ ạ ngo i ng  mà nhân viên đó h c (tên ngo i ng , trình đ )? manv, hoten, tennn,tdo   Select  manv, hoten, tennn,tdo Select     nhanvien nv, tdnn td, dmnn dm FromFrom  nhanvien nv, tdnn td, dmnn dm  nv.manv =td.manv and dm.mann = td.mann     WhereWhere nv.manv =td.manv and dm.mann = td.mann      Ho c:ặHo c:ặ

Select  manv, hoten, tennn,tdo manv, hoten, tennn,tdo   Select  nhanvien nv FromFrom   nhanvien nv  tdnn td Inner join tdnn td Inner join OnOn      nv.manv =td.manv   nv.manv =td.manv    dmnn dm Inner join  dmnn dm Inner join  dm.mann = td.mann  dm.mann = td.mann

OnOn

ấ ấ

ế    ế Truy v n có liên k t Truy v n có liên k t

table1.col1  table2.col2

   Truy v n liên k t ngoài: Truy v n liên k t ngoài: SELECT        *|{[DISTINCT] column|expression [alias],...} FROM            table1 LEFT| RIGHT| FULL  OUTER JOIN   table2 ON condition(s)] [WHERE [ORDER BY column(s)];

ấ ấ ế ế

ấ ấ

ế    ế Truy v n có liên k t Truy v n có liên k t

ấ ả ấ ả

t c  các nhân  t c  các nhân

ề ề

ư ở ư ở

ủ ủ  phòng   phòng

nv.maphong = p.maphong

ư ụ    Ví d  24:  Đ a ra danh sách t ụVí d  24:  ư Đ a ra danh sách t ớ viên cùng v i thông tin v  phòng ban c a  ớ viên cùng v i thông tin v  phòng ban c a  ọ ể ả h  (k  c  các nhân viên ch a  ọ ể ả h  (k  c  các nhân viên ch a  nào)? nào)? SELECT        * FROM            Nhanvien nv LEFT OUTER JOIN   phong  p ON

và  nhanvien và

ế ớ ế ớ

 Tr  ra t ả ấ ả ả ủ nhanvien t c  các b n ghi c a  r  ra t ấ ả ả ả ủ t c  các b n ghi c a  ả ỉ phong liên k t v i ít   liên k t v i ít  ch  các b n ghi trong  ỉ ả phong ch  các b n ghi trong  ả ộ ả ấ nhanvien.. nh t m t b n ghi bên b ng  ả ộ ả ấ nhanvien nh t m t b n ghi bên b ng

ấ ấ

ế    ế Truy v n có liên k t Truy v n có liên k t

ư ư

ấ ả ấ ả

t c  các  t c  các

ớ ớ

Đ a ra danh sách t Đ a ra danh sách t ề ề

ể ả ể ả

ư ư

   Ví d  25:  ụ ụVí d  25:  phòng cùng v i thông tin v  các nhân viên  phòng cùng v i thông tin v  các nhân viên  ủ c a các phòng (k  c  các phòng ch a có  ủ c a các phòng (k  c  các phòng ch a có  nhân viên nào)? nhân viên nào)? SELECT        * FROM            nhanvien nv RIGHT OUTER JOIN   phong p

ON

nv.maphong = p.maphong

ủ phong ủ ỉ  và ch  các  phong và ch  các  ỉ

 Tr  ra t ả ả ấ ả r  ra t t c  các b n ghi c a  ả ả ấ ả t c  các b n ghi c a  ớ ả nhanvien.. b n ghi so kh p trong  ớ ả nhanvien b n ghi so kh p trong

ấ ấ

ế    ế Truy v n có liên k t Truy v n có liên k t

nv.maphong = p.maphong

ụ    Ví d  26:  ụVí d  26:  SELECT        * FROM           nhanvien nv  FULL OUTER JOIN phong p  ON

 K t h p c a

ế ợ ủ right và left  outer join

ấ ấ

ế    ế Truy v n có liên k t Truy v n có liên k t

ấ ấ

ủ ả c a hai b ng ế    Truy v n liên k t chéo (cross join): Truy v n liên k t chéo (cross join): ế SELECT        *|{[DISTINCT] column|expression [alias],...} FROM            table1 CROSS JOIN   table2 condition(s)]  [WHERE [ORDER BY column(s)];   Tr  ra ả tích đ  cácề

ấ ấ

ế    ế Truy v n có liên k t Truy v n có liên k t

ộ ả ộ ả liên k t  (self_join):   liên k t  (self_join):  ế ớ ế ớ ế ế ạ ạ ấ là truy v n liên  ấ là truy v n liên  i liên k t v i chính nó i liên k t v i chính nó

ấ ự    Truy v n t Truy v n t ấ ự ế k t mà m t b ng l ế k t mà m t b ng l ụ ụVí d  27: Dua ra nhan vien co luong lon hon luong  Ví d  27: Dua ra nhan vien co luong lon hon luong

mot nhan vien nao do cung phong mot nhan vien nao do cung phong

Select     from

inner join

on  and

Ộ Ữ Ệ Ộ Ữ Ệ

ÀNG BU C D  LI U (CONSTRAINS) RRÀNG BU C D  LI U (CONSTRAINS)

ổ ữ ệ ủ ả ổ ữ ệ ủ ả

ậ ậ

ậ ậ

 CCác thao tác làm bi n đ i d  li u c a b ng: c p nh t,  ác thao tác làm bi n đ i d  li u c a b ng: c p nh t,

ả ả

ế ế ả ả

thêm b n ghi, xóa b n ghi. thêm b n ghi, xóa b n ghi.

ủ ủ

ữ ệ ữ ệ

ổ ổ ả ả

ả ả

ự ộ ự ộ

đ ng  đ   đ ng  đ

ữ ệ ữ ệ

ế ế

ệ ệ ậ ậ ỗ ỗ ệ ệ ể ể ộ ộ

 DD  li u c a m t s  b ng khi có nh ng thay đ i ph i  ộ ố ả ả ữ  li u c a m t s  b ng khi có nh ng thay đ i ph i  ộ ố ả ả ữ ộ ố quy  lu tậ ữ quy  lu tậ  nào  đó  nh m  đ m  b o  d   ằ tuân  theo  m t  s    nào  đó  nh m  đ m  b o  d   ộ ố ằ ữ tuân  theo  m t  s   ồ ạ ấ li u đang t n t i trong CSDL luôn nh t quán. Các quy  ồ ạ ấ li u đang t n t i trong CSDL luôn nh t quán. Các quy  ượ ọ ộ ữ ệ .. c g i là các  lu t đó đ ràng bu c d  li u ượ ọ ộ ữ ệ c g i là các  lu t đó đ ràng bu c d  li u ổ ữ ộ ả  M i khi có m t thao tác nào đó x y ra làm thay đ i d   M i khi có m t thao tác nào đó x y ra làm thay đ i d   ộ ổ ữ ả ượ ẽ ượ t ộ ấ ả c  t c  t  c   các  ràng  bu c  s   đ li u  thì  t ộ ượ ẽ ượ ấ ả c  t  c   các  ràng  bu c  s   đ li u  thì  t c  ỏ ớ ạ . N u d  li u m i không th a mãn các ràng  . N u d  li u m i không th a mãn các ràng  i ki m tra l ỏ ớ ạ i ki m tra l ẽ ả ề ộ thông báo l thông báo l bu c thì SQL server s  tr  v  m t  ẽ ả ề ộ bu c thì SQL server s  tr  v  m t

iỗ .. iỗ

Ộ Ữ Ệ Ộ Ữ Ệ

ÀNG BU C D  LI U (CONSTRAINS) RRÀNG BU C D  LI U (CONSTRAINS)

ị ị

ộ ộ

ề ề

ộ ộ

ị ị

ể ể

ỉ ỉ

ẹ ẹ

ế ế

ệ ệ

ủ ả ủ ả ả ả ệ ữ ệ ữ

ủ ủ

ả ả

ố ố

 CCác lo i ràng bu c ộ ạ ác lo i ràng bu c ạ ộ  RRàng bu c khai báo: ộ àng bu c khai báo: ộ ẽ ị ề ộ  ràng  bu c  c t  (mi n  giá  tr ):  xác  đ nh  mi n  giá  tr   mà  thu c  tính  s   ràng  bu c  c t  (mi n  giá  tr ):  xác  đ nh  mi n  giá  tr   mà  thu c  tính  s   ị ề ộ ẽ ậ ượ nh n đ c. ậ ượ nh n đ c. ự ẹ ủ ộ ề  ràng bu c v  tính toàn v n c a th c th : ch  rõ khóa c a b ng ràng bu c v  tính toàn v n c a th c th : ch  rõ khóa c a b ng ự ẹ ủ ộ ề ố ế ộ  ràng bu c toàn v n tham chi u: liên quan  đ n vi c qu n lý các m i  ràng bu c toàn v n tham chi u: liên quan  đ n vi c qu n lý các m i  ố ế ộ ả ệ ữ quan h  gi a các b n ghi c a hai b ng (m i quan h  gi a khóa chính  ả ệ ữ quan h  gi a các b n ghi c a hai b ng (m i quan h  gi a khóa chính  và khóa ph ).ụ và khóa ph ).ụ ộ ộ

ủ ủ

ứ ạ ứ ạ ộ ủ ộ ủ

ự ự ạ ạ

ổ ổ ả ả

ệ ệ

ả ả

ậ ậ

ộ ả   s  ự s  ự  Ràng  bu c  ph c  t p:  s   thay  đ i  DL  c a  m t  b ng  Ràng  bu c  ph c  t p:  s   thay  đ i  DL  c a  m t  b ng  ộ ả ự ả ổ thay đ i DL c a m t lo t các b ng khác mà ph i th c hi n  ổ ự ả thay đ i DL c a m t lo t các b ng khác mà ph i th c hi n  ộ theo m t gi ộ theo m t gi

i thu t (trigger, store procedure). i thu t (trigger, store procedure).

Ộ Ữ Ệ Ộ Ữ Ệ

ÀNG BU C D  LI U (CONSTRAINS) RRÀNG BU C D  LI U (CONSTRAINS)

ề ề

ệ ệ

ứ ứ

ị ị

 M cặM cặ  đ nh khi khai báo c t là Null.  đ nh khi khai báo c t là Null.

ị ị

ộ ộ

ớ ả ớ ả

ượ ượ

ng h p thêm m i b n ghi. ng h p thêm m i b n ghi. ậ ậ

ị ị

ị ặ ị ị ặ ị

ộ ộ  DDefault : đ t giá tr  m c đ nh cho thu c tính ị ặ ị ặ efault : đ t giá tr  m c đ nh cho thu c tính ị ặ ị ặ ợ ườ  Đ c dùng trong tr Đ c dùng trong tr ợ ườ ộ ế  Không liên quan đ n hành đ ng nh p hay xóa. Không liên quan đ n hành đ ng nh p hay xóa. ộ ế ế ị ặ ị ế ị ư  N u giá tr  đ a vào khác Null thì giá tr  m c đ nh b  thay th ,  N u giá tr  đ a vào khác Null thì giá tr  m c đ nh b  thay th ,  ế ế ị ặ ị ị ư ổ ượ ạ i thì giá tr  m c đ nh không thay đ i. c l ng ổ ượ ạ i thì giá tr  m c đ nh không thay đ i. c l ng

a. Ra. Ràng bu c mi n giá tr ị ộ àng bu c mi n giá tr ị ộ  Not null Not null  NN u trong khai báo thu c tính có m nh đ  Not Null thì b t  ắ ề ộ ế u trong khai báo thu c tính có m nh đ  Not Null thì b t  ắ ề ộ ế ị ả ộ ạ ả ỗ ộ i  thu c  tính  đó  ph i  có  ch a  giá  tr   bu c  m i  b n  ghi  t ỗ ộ ạ ả ộ ị ả i  thu c  tính  đó  ph i  có  ch a  giá  tr   bu c  m i  b n  ghi  t ượ ể ố c đ  tr ng). (không đ ượ ể ố c đ  tr ng). (không đ

Ộ Ữ Ệ Ộ Ữ Ệ

ÀNG BU C D  LI U (CONSTRAINS) RRÀNG BU C D  LI U (CONSTRAINS)

ộ ữ ệ ộ ữ ệ

ị ị

ấ ấ

ặ ặ

ả ả

ị ị

ự ự

ả ả

ể ể t đ t khóa chính cho b ng t đ t khóa chính cho b ng

ậ ượ ủ ậ ượ ủ

ớ ạ ậ ớ ạ ậ

ộ ộ

ộ ộ

ị ị

 Các c t d  li u tham gia vào quá trình tính toán nên cho giá  Các c t d  li u tham gia vào quá trình tính toán nên cho giá  ị ặ ị tr  m c đ nh. ị ặ ị tr  m c đ nh. ị ậ ộ  Các  thu c  tính  không  ch p  nh n  giá  tr   Null  nên  đ t  giá  tr   Các  thu c  tính  không  ch p  nh n  giá  tr   Null  nên  đ t  giá  tr   ậ ộ ị ặ ị m c đ nh. ặ ị m c đ nh.  Unique:  Unique:  ấ ộ  Các giá tr  trong c t ph i duy nh t. Các giá tr  trong c t ph i duy nh t. ấ ộ ị  Cho phép xác đ nh khóa d  tuy n cho b ng. Cho phép xác đ nh khóa d  tuy n cho b ng. ị ả ế ặ  Primary key: thi Primary key: thi ế ặ ả  Check ():  Check ():   gi gi

i h n t p giá tr  nh n đ i h n t p giá tr  nh n đ

c c a m t thu c tính. c c a m t thu c tính.

Ộ Ữ Ệ Ộ Ữ Ệ

ÀNG BU C D  LI U (CONSTRAINS) RRÀNG BU C D  LI U (CONSTRAINS)

char(5), char(5), varchar(35) constrains  NN_HT_GV NOT NULL, varchar(35) constrains  NN_HT_GV NOT NULL,

varchar(3) DEFAULT ‘Nam’, varchar(3) DEFAULT ‘Nam’, char(2) REFERENCES KHOA(ma_khoa), char(2) REFERENCES KHOA(ma_khoa), bigint check(luong>=1000000), bigint check(luong>=1000000), varchar(15) NOT NULL varchar(15) NOT NULL

ế ế

ạ ạ

 Ví d : ụVí d : ụ CREATE TABLE giang_vien( CREATE TABLE giang_vien( MagvMagv Ho_ten Ho_ten datetime, Ngay_sinh datetime, Ngay_sinh Gioi_tinh Gioi_tinh Ma_khoa Ma_khoa Luong Luong Trinh_do Trinh_do ạ ọ CHECK(trinh_do IN (‘Đ i h c’, ‘Th c sĩ’, “Ti n sĩ”)) ạ ọ CHECK(trinh_do IN (‘Đ i h c’, ‘Th c sĩ’, “Ti n sĩ”)) Constrains  PK_GV primary key(Magv, hoten) Constrains  PK_GV primary key(Magv, hoten) ))

Ộ Ữ Ệ Ộ Ữ Ệ

ÀNG BU C D  LI U (CONSTRAINS) RRÀNG BU C D  LI U (CONSTRAINS)

ồ ạ ồ ạ

ộ ộ

i:  i:

ộ ộ

ONSTRAINT <đ nh nghĩa ràng bu c> ị <đ nh nghĩa ràng bu c> ị

ả  Thêm ràng bu c vào b ng đã t n t Thêm ràng bu c vào b ng đã t n t ả ALTER TABLE  ả ALTER TABLE  ả ADD CONSTRAINT  ADD C Ví d :ụVí d :ụ giang_vien ALTER TABLE  giang_vien ALTER TABLE  ADDADD

PRIMARY KEY(Magv) CONSTRAINT  PK PRIMARY KEY(Magv) CONSTRAINT  PK

Ộ Ữ Ệ Ộ Ữ Ệ

ÀNG BU C D  LI U (CONSTRAINS) RRÀNG BU C D  LI U (CONSTRAINS)

ả ả

ạ ỏ ạ ỏ

CONSTRAINT < danh sách tên ràng bu c>ộ CONSTRAINT < danh sách tên ràng bu c>ộ

ộ  Lo i b  ràng bu c trong b ng:  Lo i b  ràng bu c trong b ng:  ộ ALTER TABLE  ả ALTER TABLE  ả DROPDROP Ví d :ụVí d :ụ giang_vien ALTER TABLE  giang_vien ALTER TABLE  DROPDROP

CONSTRAINT  PK CONSTRAINT  PK

Ộ Ữ Ệ Ộ Ữ Ệ

ÀNG BU C D  LI U (CONSTRAINS) RRÀNG BU C D  LI U (CONSTRAINS)

ế ậ ế ậ

ế ế

ể ể

ẹ ẹ

t  l p  t  l p

ượ ượ

ự ự

ế ế

ể ể

c tham chi u> [()] c tham chi u> [()]

ả ả ặ ượ ậ ặ ượ ậ

ở ả ở ả

ậ ậ

b ng đ  b ng đ

c xóa  c xóa  c tham  c tham

ộ ộ ệ ữ m i quan h  gi a hai b ng ệ ữ m i quan h  gi a hai b ng [CONSTRAINT ]ộ [CONSTRAINT ]ộ [FOREIGN KEY ]ộ [FOREIGN KEY ]ộ ả REFERENCES 

ả ả

óa chính b o toàn. NO ACTION: khóa chính b o toàn. NO ACTION: kh

b.  Rb.  Ràng  bu c  toàn  v n  tham  chi u:  dùng  đ   thi àng  bu c  toàn  v n  tham  chi u:  dùng  đ   thi ả ố ố ả

Ộ Ữ Ệ Ộ Ữ Ệ

ÀNG BU C D  LI U (CONSTRAINS) RRÀNG BU C D  LI U (CONSTRAINS)

ế ế

VVí d :ụí d :ụ CREATE TABLE giang_vien( CREATE TABLE giang_vien( char(5) PRIMARY KEY, MagvMagv char(5) PRIMARY KEY, varchar(35) NOT NULL, Ho_ten varchar(35) NOT NULL, Ho_ten datetime, Ngay_sinh datetime, Ngay_sinh vachar(3) DEFAULT ‘Nam’, Gioi_tinh vachar(3) DEFAULT ‘Nam’, Gioi_tinh char(2) REFERENCES KHOA(ma_khoa), Ma_khoa char(2) REFERENCES KHOA(ma_khoa), Ma_khoa bigint, Luong bigint, Luong varchar(15) NOT NULL Trinh_do varchar(15) NOT NULL Trinh_do ạ ạ ọ CHECK(trinh_do IN (“Đ i h c”, “Th c sĩ”, “Ti n sĩ”)) ạ ạ ọ CHECK(trinh_do IN (“Đ i h c”, “Th c sĩ”, “Ti n sĩ”)) ))

ƯỜ ƯỜ Ủ Ụ Ủ Ụ VII. TH  T C TH  T C TH VII. TH NG TRÚ  NG TRÚ

(STORE PROCEDURE) (STORE PROCEDURE)

ế ế

 Khai b

áo bi n trong SQL server Khai báo bi n trong SQL server  CCú pháp ú pháp

ế ế

ế ế

ể ể

ể DECLARE  @    [,  @      [,  @ 

DL>, . . .] DL>, . . .]

Ví d :ụVí d :ụ DECLARE @x1 char(4) DECLARE @x1 char(4) DECLARE @x2 int, @a float DECLARE @x2 int, @a float DECLARE @Tong_gia_tri numeric;  DECLARE @Tong_gia_tri numeric;

ế ế

ứ ứ

ế ế ể ể

ị  Gán giá tr  cho bi n: ị Gán giá tr  cho bi n: SET  =  SET  =  Ví d :ụVí d :ụ SET @x1 =‘CNTT’; SET @x1 =‘CNTT’; SET @a = 200; SET @a = 200; SET  @Tong_gia_tri  =  (SELECT  sum(soluong*dongia)/1000000  SET  @Tong_gia_tri  =  (SELECT  sum(soluong*dongia)/1000000

from CPP); from CPP);

ƯỜ ƯỜ

Ủ Ụ Ủ Ụ VII. TH  T C TH  T C TH VII. TH

NG TRÚ  NG TRÚ

(STORE PROCEDURE) (STORE PROCEDURE)

ổ ổ

ế ế

Print(‘T ng giá tr  các chuy n hàng:’ + str(@Tong_gia_tri)); Print(‘T ng giá tr  các chuy n hàng:’ + str(@Tong_gia_tri));

ị ế  In giá tr  bi n: In giá tr  bi n: ị ế ị ị ế ế

ộ ộ

ỉ ỉ

Chú ý: các bi n khai báo trong cùng m t bó ch  có tác  Chú ý: các bi n khai báo trong cùng m t bó ch  có tác  ụ ụd ng trong bó đó. d ng trong bó đó.

ƯỜ ƯỜ Ủ Ụ Ủ Ụ VII. TH  T C TH  T C TH VII. TH NG TRÚ  NG TRÚ

ệ ệ

ự ự

ượ ượ

ượ ượ

c  c

c  xây  d ng  t c  xây  d ng  t

các  câu  l nh  T­SQL  và  đ   các  câu  l nh  T­SQL  và  đ

ộ ộ

ệ ệ

ự ự

ỉ ầ ỉ ầ

ự ự

ệ ệ

ạ ầ ạ ầ

ị ị

ầ c ch y l n đ u tiên nó s  đ ầ c ch y l n đ u tiên nó s  đ ộ ộ

ẽ ượ ẽ ượ ấ ấ

ộ ộ ủ ụ ẽ ủ ụ ẽ

ủ ủ ả ị ả ị

ạ ữ ạ ữ

ạ ạ ạ ạ

 SP SP  đ ừ đ ừ ư ưl u trú trên SQL server. l u trú trên SQL server. ộ ố  Mu n th c hi n m t SP, NSD ch  c n th c hi n m t  Mu n th c hi n m t SP, NSD ch  c n th c hi n m t  ộ ố ờ ọ i g i hàm. l ờ ọ l i g i hàm. ượ  Khi SP đ c biên d ch  Khi SP đ ượ c biên d ch  ướ c và sinh ra m t mô hình truy v n. Mô hình  qua 5 b ướ c và sinh ra m t mô hình truy v n. Mô hình  qua 5 b ẽ ượ c  đ t  trong  m t  CSDL  c a  SQL  server,  này  s   đ ẽ ượ c  đ t  trong  m t  CSDL  c a  SQL  server,  này  s   đ ầ l n sau ch y l ầ l n sau ch y l

ặ ặ i th  t c s  không ph i d ch l i th  t c s  không ph i d ch l

i n a. i n a.

(STORE PROCEDURE) (STORE PROCEDURE)

ƯỜ ƯỜ Ủ Ụ Ủ Ụ VII. TH  T C TH  T C TH VII. TH NG TRÚ  NG TRÚ

ị ị

ủ ụ ủ ụ

c biên d ch th  t c: c biên d ch th  t c:

ầ ầ

c phân tích ra thành nhi u ph n  c phân tích ra thành nhi u ph n

i c a các đ i t i c a các đ i t

ề ề ố ượ ng (view, table, …) mà  ố ượ ng (view, table, …) mà

ự ồ ạ ủ ự ồ ạ ủ ế ớ i. ế ớ i.

ữ ữ

ư ư

ệ ệ

ả ả

ữ ữ ủ ụ ủ ụ

ủ ụ ủ ụ

ư ư

ấ ấ

ả ả

ạ ầ ạ ầ

ầ ầ ộ ế ộ ế

ủ ụ ủ ụ

ị ị

 NNăm b ướ ăm b ướ ủ ụ ượ  Th  t c đ Th  t c đ ủ ụ ượ ể  Ki m tra s  t n t Ki m tra s  t n t ể ủ ụ th  t c tham chi u t ủ ụ th  t c tham chi u t ư ủ ụ  L u tr  tên th  t c vào b ng sysobject, l u tr  các mã l nh  L u tr  tên th  t c vào b ng sysobject, l u tr  các mã l nh  ư ủ ụ ả ủ c a th  t c vào b ng syscomments. ả ủ c a th  t c vào b ng syscomments. ủ  Sinh  ra  mô  hình  truy  v n  c a  th   t c  và  l u  vào  b ng  Sinh  ra  mô  hình  truy  v n  c a  th   t c  và  l u  vào  b ng  ủ sysprocedure sysprocedure ượ ấ ẽ ượ ọ  Khi SP đ Khi SP đ c ch y l n đ u tiên, cây truy v n s  đ c đ c  ượ ấ ẽ ượ ọ c đ c  c ch y l n đ u tiên, cây truy v n s  đ ạ  ti t ế ượ ố ư ạ t ế ti c t và đ i  u thành m t k  ho ch th  t c và ch y  ượ ố ư ạ ạ c t và đ i  u thành m t k  ho ch th  t c và ch y  ỗ ấ ờ ệ ki m th i gian tái phân tích, biên d ch cây truy v n m i khi  ỗ ấ ờ ệ ki m th i gian tái phân tích, biên d ch cây truy v n m i khi  ủ ụ ạ ch y th  t c. ủ ụ ạ ch y th  t c.

(STORE PROCEDURE) (STORE PROCEDURE)

ƯỜ ƯỜ Ủ Ụ Ủ Ụ VII. TH  T C TH  T C TH VII. TH NG TRÚ  NG TRÚ

ế ế

ượ ượ

ự ệ ự ệ ầ ữ ầ ữ ẽ ượ ẽ ượ

i  thì  nó  s   đ i  thì  nó  s   đ

ế ế

 Trong m Trong m t phiên làm vi c, n u SP đ ệ ộ c th c hi n,  t phiên làm vi c, n u SP đ ộ ệ c th c hi n,  ớ ệ ữ ẽ ượ ư c  l u  tr   vào  vùng  nh   đ m.  Nh ng  l n  nó  s   đ ớ ệ ữ ẽ ượ ư c  l u  tr   vào  vùng  nh   đ m.  Nh ng  l n  nó  s   đ ệ ạ ự ọ ượ ế c  c  g i  th c  hi n  l sau  n u  SP  đ ệ ạ ọ ượ ự ế c  g i  th c  hi n  l sau  n u  SP  đ c  ớ ệ   nâng cao hi u ệ  nâng cao hi u ệ ừ ự ọ  vùng nh  đ m  đ c tr c ti p ra t ọ ớ ệ ự ừ đ c tr c ti p ra t  vùng nh  đ m  ấ ạ ấ su t ch y truy v n. ấ ạ ấ su t ch y truy v n.

(STORE PROCEDURE) (STORE PROCEDURE)

ƯỜ ƯỜ Ủ Ụ Ủ Ụ VII. TH  T C TH  T C TH VII. TH NG TRÚ  NG TRÚ

ạ ạ

ể ể

] [OUTPUT], . . .] ] [OUTPUT], . . .]

 CCú pháp l nh t o SP: ệ ú pháp l nh t o SP: ệ CREATE PROC[EDURE]  CREATE PROC[EDURE]  ố [@    ố [@    á tr >ị [= ị [= 

[WITH RECCOMPILE|ENCRYPTION|RECOMPILE, ENCRYPTION] [WITH RECCOMPILE|ENCRYPTION|RECOMPILE, ENCRYPTION] ASAS

ề ề

ệ ệ

ể ể

ệ ệ

GiGi ­

ị ị

­

ị ị

ủ ụ ượ ủ ụ ượ

ố ố  trong th  t c đ  trong th  t c đ

c  c

ủ ụ ủ ụ

ả ải thích: i thích: ầ ị =: gán giá tr  ban đ u cho tham s ầ ị =: gán giá tr  ban đ u cho tham s ố ở ổ ủ á tr  thay đ i c a tham s   OUTPUT: giá tr  thay đ i c a tham s   ố ở ổ ủ OUTPUT: gi ư đ a ra bên ngoài th  t c. ư đ a ra bên ngoài th  t c. VVí dụí dụ

(STORE PROCEDURE) (STORE PROCEDURE)

ƯỜ ƯỜ Ủ Ụ Ủ Ụ VII. TH  T C TH  T C TH VII. TH NG TRÚ  NG TRÚ

ủ ụ ủ ụ

 TTh c hi n th  t c:  ệ ự h c hi n th  t c:  ự ệ EXEC   EXEC   ủ ụ ổ  Thay đ i th  t c Thay đ i th  t c ủ ụ ổ CEDURE]] . . . ALTER PRO[[CEDURE  . . . ALTER PRO óa th  t củ ụ  XXóa th  t củ ụ DROP PRO[CEDURE]    DROP PRO[CEDURE]    ó th  t củ ụ  BBó th  t củ ụ

(STORE PROCEDURE) (STORE PROCEDURE)

ƯỜ ƯỜ Ủ Ụ Ủ Ụ VII. TH  T C TH  T C TH VII. TH NG TRÚ  NG TRÚ

ọ ọ

ử ụ ử ụ

trong  câu  l nh ệ RECOMPILE  trong  câu  l nh ệ RECOMPILE

ị ị

ỗ ỗ

ệ ự  đ u m i khi th c hi n ệ ự  đ u m i khi th c hi n ậ ượ ậ ớ ủ c c p nh t  ậ ượ ậ ớ ủ c c p nh t

trong câu l nh   RECOMPILE trong câu l nh

EXEC EXEC ư ư

ầ ầ

ệ ệ ự i trong l n th c thi đó và l u  ự i trong l n th c thi đó và l u

ớ ệ ớ ệ

ủ ụ ủ ả ủ ụ ủ ả

 S   d ng  tùy  ch n  S   d ng  tùy  ch n  CREATE PRO: :  CREATE PRO ạ ừ ầ ủ ụ ẽ ượ  Th  t c s  đ i t c biên d ch l Th  t c s  đ ạ ừ ầ ủ ụ ẽ ượ i t c biên d ch l ạ ị  Khi biên d ch l Khi biên d ch l i các thông tin m i c a SP đ ạ ị i các thông tin m i c a SP đ ố ư ạ i. i  u l và t ố ư ạ i. i  u l và t ử ụ ọ RECOMPILE  S  d ng tùy ch n  S  d ng tùy ch n  ử ụ ọ ạ ị ủ ụ ẽ ượ  Th  t c s  đ Th  t c s  đ c biên d ch l ủ ụ ẽ ượ ạ ị c biên d ch l ạ ế ớ ủ ự ạ l i k  ho ch th c thi m i c a nó vào vùng nh  đ m. ự ạ ế ạ ớ ủ l i k  ho ch th c thi m i c a nó vào vùng nh  đ m. ạ ấ ả ị  Biên d ch l t c  các th  t c c a b ng: i t Biên d ch l ạ ấ ả ị t c  các th  t c c a b ng: i t  sp_recompile ả EXEC sp_recompile ả EXEC

(STORE PROCEDURE) (STORE PROCEDURE)

Ủ Ủ ÀM C A NSD VIII. HÀM C A NSD VIII. H (USER DEFINED FUNCTIONS­UDFs) (USER DEFINED FUNCTIONS­UDFs)

ư ư

ố ố

ở ở

ư  UDFs gi ng nh  SP nh ng khác  UDFs gi ng nh  SP nh ng khác  ư

ể  các đi m sau: ể  các đi m sau:

UDF

SP

ể ư

ị ủ

­ Có th  đ a giá tr  c a tham  ằ ố s  ra ngoài b ng thu c  tính OUTPUT

ộ ề

ị ­ Ch  tr  v  ki u DL giá tr

ộ ả

ị ­ Giá tr  các tham s  không  ề ượ c truy n ra ngoài. đ ị ằ ả ­ Tr  ra m t giá tr  b ng  ệ m nh đ  RETURN ể ả ề ộ ­ Có th  tr  v  m t giá tr  vô  ữ ặ ng ho c m t b ng d

ỉ ả ề ể ể ki u nguyên

ướ h li u.ệ

Ủ Ủ ÀM C A NSD VIII. HÀM C A NSD VIII. H (USER DEFINED FUNCTIONS­UDFs) (USER DEFINED FUNCTIONS­UDFs)

ị ị

ng> [= ] [, . . .]]) ng> [= ] [, . . .]])

ướ ướ ng>|

ng>|

Cú pháp câu l nh:ệ  Cú pháp câu l nh:ệ CREATE FUNCTION  CREATE FUNCTION  ể ố ([@  

BEGIN BEGIN

ướ ướ

ệ [] ệ [] ị RETURN 

ệ ng>| () ệ ng>| ()

Có thể bạn quan tâm