1. Trang chủ
  2. » Luận Văn - Báo Cáo

Phần mềm biến đổi lệnh select từ ngôn ngữ oracle sang ngôn ngữ microsoft sql server

91 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Phần mềm biến đổi lệnh select từ ngôn ngữ oracle sang ngôn ngữ microsoft sql server
Tác giả Võ Ngọc Kim Trang
Người hướng dẫn ThS. Nguyễn Trung Trực
Trường học Trường Đại học Ngoại Ngữ - Tin Học TP.HCM
Chuyên ngành Công Nghệ Thông Tin
Thể loại Luận tốt nghiệp
Năm xuất bản 2006
Thành phố TP.Hồ Chí Minh
Định dạng
Số trang 91
Dung lượng 40,6 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Phan tieh yeu eiu I>~tai: Phc1n m@m bien d6i l~nh SELECT tiT ngon ngfr Oracle sang ngon ngfr Microsoft SQL Server.. Chrrong 2: Van ph~m diu SELECT clla Oracle va Microsoft SQL 2Ngon ngfr

Trang 1

BO GIAo DVC vA DAo T~O TRUONG DHDL NGO~I NGU- TIN HQC TP.HCM

KHOA CONG NGH~ THONG TIN

pHAN MEM BIEN DOl LENH SELECT

TU NGON NGU ORACLE

GVHD:ThS NGUYEN TRUNG TRVC

TP.HO CHi MINH - 2006

Trang 2

Lai dun on

LmcAMON

Em trong su6t qua trinh lam khoa lu~n t6t nghi~p

Daj hQc dan l~p Ngo~i Ngu - Tin HQc Tp Hi) Chi Minh da: luon t~o diSu ki~ncho cac em hoc t~p t6t trong su6t nien hQc qua

sv.V6 NgQc Kim Trang

Trang 3

2.5 S\f khac nhau cua cau troy v~n gifra Oracle

2.6 Cac phep toan d~i s6 quan h~

duQ'csu d\lng dS phan tich cau troy v~n thanh cay toan til 27

Trang 4

My.c Iy.c

3.2.4 ChuySn d6i cac diSm khac nhau v~ toan tu 473.2.5 ChuySn d6i cac diSm khac nhau v~tiT khoa 47

4.2 Cac ki thu~t dung trong thvc hi~n chuang trinh 50

4.2.2.2 BQ rna h6a chu6i, tir kh6a, toan tU, ham 524.2.2.3 BQ phan tich Cll phap cua cau troy vfin 534.2.2.4 BQ rna h6a chu6i, tir kh6a, toan tU, ham 55

4.2.2.6 BQ chuySn d6i cac diSm khac nhau

-4.3.2-.-Tab-Gay Cll phap • ••

Trang 5

Ch traDg 5 : To ng kef 73

Trang 6

1.1 Yeu eiu ella d~ tai

1.2 Phan tieh yeu eiu

I>~tai: Phc1n m@m bien d6i l~nh SELECT tiT ngon ngfr Oracle sang ngon ngfr

Microsoft SQL Server.

1

ChU'ong 1: TONG QUAN VE DE TAl

• Tim hiSu van ph~m l~nh SELECT cua Oracle va Microsoft SQL Server.

• Phan bi~t Sl! khac nhau v@ van ph~m cua cau troy vl1n gifra Oracle va

Microsoft SQL Server.

• Tim hiSu cac phfrn m@m cfrn thiet lien quan den vi~c thl!C hi~n d@tai: ngonngfr l~p trinh C# tren moi truCmg NET,

• Viet phfrn m@m minh h<;>avi~c chuySn d6i cau l~nh SELECT cua Oracle

sang Microsoft SQL Server.

• Tim hiSu v@ngfr nghi'a van ph~m cua Oracle va Microsoft SQL Server dSphan bi~t Sl! khac nhau cua cau troy vl1n gifra hai h~ qmin tri cO' so dfr li~u nay.Tuy nhien, vi van ph~m cua chung qua phuc t~p, d@tai nay khong thS t6ng quathet, nen chung ta chi nghien cuu cac vl1n d@khac nhau cO'ban

• Sau khi nh~n biet diSm gi6ng nhau va xac dinh Sl! khac nhau gifra hai cautroy vl1n cua hai h~ qUID tri cO' so dfr li~u, ta cfrn tien hanh phan lo~i cac diSmkhac nhau dS thl1y duQ'c Sl! t6ng quat v@kien truc ngon ngfr SQL

• Xay d\fllg qua trinh chuySn d6i troy vl1n gifra hai h~ qufm tri cO' so dfr li~u

Oracle va Microsoft SQL Server.

• Yiet chuang trinh thl!c hi~n vi~c chuySn d6i cac Sl! khac nhau gifra hai cau_~tru~v~n

Trang 7

Chrrong 2: Van ph~m diu SELECT clla Oracle va Microsoft SQL 2

Ngon ngfr SQL dugc phat triSn trong mQt h~ quan tri CSDL mfiu - System

R - boi IBM van gifra nhfrng nam 1970.Nam 1979, Oracle Corporation dff gi6ithi~u vS vi~c th\1'c hi~n SQL thuang m~i hoa d~u tien

2.1.1 Cac d~c di~m clla SQL

• SQL la ngon ngfr tva tiSng Anh (English - like language), su d\lng cac tunhu select, insert, delete trong t~p l~nh

• SQL la mQt ngon ngfr phi thu !\Ic (non-procedural language): chi ra cacthong tin nao c~n thiSt (what), khong c~n chi ra cach th\1'c hi~n nhu thS nao(how) dS co dugc thong tin nay

• Tat ca cac l~nh SQL dSu su d\lng bQ t6i uu hoa truy van (query optimizer)

- la mQt thanh ph~n cua RDBMS - dS xac dinh cac cach truy van nhanh nhatlay dfr li~u c~n thiSt

• SQL xu ly cac t~p hgp mau tin han la mlii l~n mQt mau tin D~ng chungnhat cua t~p hgp cac mau tin la mQt bang (table)

• SQL co thS dugc dung cho nhiSu nguai su d\lng, bao g6m DBA, nguai l~ptrinh (mg d\lng, nguai quan ly va nguai su d\lllg cu6i cung (end user).

, SQL cung cap nhiSu l~nh dS th\1'c hi~n nhiSu cong vi~c khac nhau, baogom:

+Truy van dfr-li~u -

-+Them vao, c~p nh~t va huy b6 cac hang cua bang

+T~o l~p, thay d6i va huy b6 cac d6i tugng CSDL

+DiSu khiSn truy xuat dSn CSDL va cac d6i tugng CSDL

+Bao dam tinh nhat quan cua dfr li~u

Trang 8

2.1.2 T~p l~nh SQLCac l~nh SQL duQ'cchia thanh 3 lO{li:ngon ngfr dinh nghia dfr li~u, ngonngfr thao tac dfr li~u, ngon ngfr diSu khiSn dfr li~u

• Ngon ngii iljnh nghia dii lifu (DDL - Data Definition Language): bao

g6m cac l~nh dung dS t{lOl~p, tahy d6i va huy b6 cac bang

Vi d\l: CREATE, ALTER, DROP

• Ngon ngii thao ttic dU'lifu (DML - Data Manipulation Language): bao

g6m cac l~nh dung dS truy vfin, them vao, c~p nh~t va xoa b6 dfr li~u trongCSDL Cac l~nh nay co thS duQ'cdua vao tnJc tiSp (chS dQ tU011gtac) va kSt quatra vS ngay sau khi thvc hi~n l~nh nay, ho~c co thS dua vao trong cac chu011gtrinh

Vi d\l: SELECT, INSERT, DELETE, UPDATE

• Ngon ngii iliJu khiJn dU'lifu (DCL - Data Control Language): bao g6m

cac l~nh dung dS h6 trQ'cho DBA dS diSu khiSn CSDL Cac l~nh dung dS gan va

CSDL va luu tm ho~c huy b6 cac giao dich (transaction) anh hUOngdSn CSDL.

Vi d\l: GRANT, REVOKE

2.2 Lenh SELECT

• L~nh SELECT dung dS lfiy dfr li~u trong CSDL, th\fc hi~n cac phep toan cuad{lis6 quan h~: phep dch, phep chQn, phep chiSu, phep kSt

• Ngfr phap cua l~nh SELECT nhu sau:

SELECT [DISTINCT] <list of expressions> [INTO <list of variables>]

FROM <list of tables>

[WHERE <row conditions>]

[GROUP BY <list of expressions>

[HAVING <group of rows conditions>]]

[ORDER BY <list of expressions>];

2.2.1 Menh d~ SELECT

M~nh dS SELECT th\fc hi~n phep chiSu cua d{li s6 quan h~ list of

expressions la danh sach cac biSu thuc duQ'cchQn, cac biSu thuc nay duQ'cphiin

cach nhau boi dfiu phfiy BiSu thuc co thS la mQt h~ng, mQt biSn (ho~c cQt), ho~cS\fkSt hqp gifra cac h~ng, cac biSn v6i phep toano M6i biSu thuc co thS co mQt bi

danh (alias) dung ngay phia sau, duQ'cgQi la bi danh cQt (column alias); bi danh cQt chi duQ'c Slr d\lng trong m~nh dS SELECT NSu list of expressions la dfiu *

Trang 9

ChuO'ng2: Van ph~mdiu SELECT clla Oracle va Microsoft SQL 4

table name column name.-

-2.2.2 Menh d~ FROM

M~OOds"PROM thvc hi~n phep tich cua di;lis6 quan h~, dung dS chi ra cac

bang chua dfr Ii~u cfin I~y ra list of tables hI danh sach cac bang duQ'cphan cach

nhau boi d~u phAy.M6i bang co thS co bi daOOdUng ngay phia sau

2.2.3 Til' khoa DISTINCT

Tu khoa DISTINCT IOi;lib6 cac gia tri trung trong kSt qua cua truy v~n.NSu co OOiSucQt duQ'c chQn thi DISTINCT aOOhuang dSn toan bQ cac cQt nay.Til khoa DISTINCT phai duQ'cd~t ngay sau tu khoa SELECT

2.2.4 Menh d~ INTO

M~nh d{ INTO chi duQ'c su d\lng trong PL/SQL, dung dS gan gia tri cua

cac biSu thuc cho cac biSn theo thu tv tuang ung list of variables Ia daOOsach

cac biSn duQ'cphan cach OOauboi d~u phAy

2.2.5 Menh d~ WHERE

M~OOd{ WHERE thvc hi~n cac phep chQn, phep kSt cua di;lis6 quan h~

row conditions Ia cac diSu ki~n duQ'cxet tren m6i hang, cac hang nao th6a man

cac diSu ki~n nay thi duQ'cdua vao kSt qua cua truy v~n

2.2.6 Menh d~ GROUP BY

M~OOdS GROUP BY duQ'c dung dS phan chia cac hang cua mQt bangthaOOcac OOom006 han Cac ham nhom co thS duQ'csir d\lng dS tra vS thong tinchung cho m6i nhom M6i OOomchi xu~t hi~n 0 mQt hang trong kSt qua cua truyv~n Trong truemg hQ'p I~OOSELECT co ca hai m~nh dS WHERE va GROUPBY-thi-eac-hang se duQ'c chQn boi diSu ki~n cua-m~nh-dS-WHERE, r6i sau dophan chia cac hang duQ'c chQn thanh cac OOom.Cac cQt trong m~OOdS GROUP

BY khong b~t bUQcphai co trong SELECT Tuy OOien,dS cho kSt qua cua truyv~n Ia co ngfr nghia thi cac cQt cua m~nh dS GROUP BY nen co trong m~nh dSSELECT Khi co m~OO dS GROUP BY, t~t ca cac cQt co trong m~OO dSSELECT nSu chung khong n~m trong ham OOomthi chung phai co trong m~nh

dS GROUP BY Trong truemg hQ'PI~OOSELECT khong co m~nh dS GROUP

BY thi toan bQ bang duQ'c xem Ia mQt OOom.Do do, nSu m~OOdS SELECT cochua ham OOomthi chung ta khong thS I~y duQ'cchi tiSt cua m6i hang

Trang 10

M~OOdS.HAVING duQ'c dung d~ xac dinh OOomduQ'c dua vao kSt qua

cua truy v~n group of rows conditions la cac diSu ki~n duQ'cxet cho m6i nhom.

M~OOdS HAVING co th~ dUng truac m~OOdS GROUP BY, OOung m~OOdSGROUP BY nen dung truac d~ cho d~ hi~u Cac OOomduQ'c t~o ra va cac hamnhom duQ'c tiOOtoan truac khi thvc hi~n m~OOdS HAVING d~ chQn ra cacnhom NSu I~OOSELECT co cac m~l1h dS WHERE, GROUP BY va HAVINGthi thu tv thvc hi~n cua cac m~nh dS nay la WHERE (d~ chQn cac hang), kS tiSpGROUP BY (d~ phiin chia nhom) va sau cung la HAVING (d~ chQn cac OOom)

2.2.8 Menh d~ ORDER BY

Thong th.ucmg,thu tv cua cac hang duQ'ctra vS trong kSt qua cua truy v~n

la khong xac diOO.M~OOdS ORDER BY co th~ duQ'c dung d~ s~p thu tv cachang nay M~OOdS ORDER BY luon luon la m~OO dS cu&i cung cua I~OOSELECT Thu tv ngftm diOO la tang dftn (ASC - ascending), tiT khoa DESC(descending) dUng ngay sau ten cQt dung d~ chi diOOthu tv giam dftn Cac cQttrong m~nh dS ORDER BY khong b~t bUQcphai co trong m~nh dS SELECT

Trang 11

2.3 Van pham diu truy van eua Oracle

hint: cac chi dan cho bQ t6i uu hoa

DISTINCT IUNIQUE: lo~i b6 cac gia tri trung

ALL: lAy tAt ca cac gia tri, bao g6m gia tri trung

* : lAy tAt ca cac CQtcua tAt ca cac bang co trong m~nh dS FROM

Schema: chi ra luQ'c d6 chua cac bang duQ'c chQn

Table.-* IView * I Snapsh0t~:-chQn tAt ca cac CQtcua table, view, duQ'c chi dinh

snapshot-Expr: biSu thuc dung lam diSu ki~n chQn

c alias: bi danh cho cQt

Trang 12

thiSt phai la CSDL cua Oracle NSu b6 qua dblink, Oracle se ngAm hiSu la CSDL

C\lC bQ

Table, view, snapshot: ten cua bang, view

t_alias: bi danh cho bang

Trang 13

ChlfO'Dg2: Van ph~m diu SELECT clla Oracle va Microsoft SQL 8

READ ONLY: bi~u thj cau truy v~n khong th~ duQ'c c~p nh~t

CHECK OPTION: n~u cau truy v~n n~m trong cau l~nh insert, updateho?c delete thi Oracle se ngan ch?n m9i thay d6i tren bang

Condition: diSu ki~n ch9n

Outerjoin: diSu ki~n k~t gifra cac bang

outer_join::=

Trang 14

ChUO'Dg2: Van ph~m diu SELECT cua Oracle va Microsoft SQL 9

,-;[ H:' ~~Dj{<ordrt0n}-.,

Start with: b~t dftu tu dong g6c cua h~ dfulg c~p dfr li~u

Connect by: chi ra quan h~ giua dong cha va con cua h~ dftng c~p du li~u

HAVING: di~u ki~n ch<;mtren rn6i nhom

tien ho~c cu6i cling trong thu tv s~p x~p NULL LAST rn~c dinh trong s~p x~ptang dftn NULL FIRST rn~c dinh trong s~p x~p giarn dftn

Trang 15

ChU'01lg2: Van ph~m diu SELECT cua Oracle va Microsoft SQL 10

r OF ,

OF: chi ra ten cQtthuQc nhung bang lien quan d~n phep k~t

NOW AIT: tra v~ quy~n di~u khi~n du li~u cua dong khi thlJc hi~n l~nhSELECT

2.4 Van pham diu truy v~n cua Microsoft SQL Server

{ < query specification> I ( < query expression> ) }

[UNION [ALL] < query specification I ( < query expression> ) [ n ] ]

Trang 16

Chuong 2: Van ph~m diu SELECT ctia Oracle va Microsoft SQL 11

< query specification> ::=

SELECT [ ALL IDISTINCT]

[ { TOP integer ITOP integer PERCENT} [ WITH TIES] ]

< select list>

[ INTO new_table]

[FROM { < table_source> } [, n] ]

[ WHERE < search_condition> ]

[GROUP BY [ALL] group_by_expression [, n]

]

[ HAVING < search_condition>]

Select clause ::=

SELECT [ ALL IDISTINCT]

[ TOP n [ PERCENT] [ WITH TIES] ]

< select list>

< select list>::=

I { table_name Iview_name Itable_alias }.*

I { column_name I expression IIDENTITYCOL IROWGUIDCOL }[ [ AS ] column_alias]

Icolumn_alias = expression

} [ , n ]

,

van

TOP n: gi6i h:;m s6 dong clla bang k~t qua d~n n dong

PERCENT: bang k~t qua chi chua n% s6 dong dftu tien tra ve clla diu truy

'fable -=alias;-d~G-ta bi danh cho bang

Column_alias: d~c ta bi danh cho cQt

IDENTITYCOL: tham khao d~n cQt dinh danh Clla mQt bang

ROWGUIDCOL: tham khao cQt dinh danh duy nhAt tofm C\lC Clla mQtbang

Trang 17

ChU'ong 2: Van ph~m diu SELECT clla Oracle va Microsoft SQL 12

table_name [ [ AS ] table_alias] [ WITH ( < table_hint> [ , n ] ) ]

Irowset_ function [ [ AS ] table_alias]

IOPENXML

Iderived_table [AS] table_alias [ ( column_alias [ , n] ) ]

I<joined_table>

< joined_table> ::=

< table_source> <join_type> < table_source> ON < search_condition>

I< table_source> CROSS JOIN < table_source>

Hint: cac chi d~n cho bQt6i uu hoa

dSn nhu mQt bang

I>eri-ved_table:bi danh cho bang-d~n-xuftt, cQt-cua-bang d~n xuftt

Joined_table: cac bang duQ'csir d\mg trong phep kSt

Join_type: cac lo~i kSt: inner join, {left Iright I full} outer join

j

I

Trang 18

ChWO'Dg2: Van ph~m diu SELECT clla Oracle va Microsoft SQL 13

{ [NOT] < predicate> I ( < search_condition> ) }

[ { AND I OR} [NOT] { < predicate> I ( < search_condition> ) } ]

I expression [ NOT] BETWEEN expression AND expression

I expression IS [ NOT] NULL

I CONTAINS

( { column I * } , '< contains_search_condition >' )

IFREETEXT ( { column 1* } , 'freetext_string' )

I expression [ NOT] IN ( subquery I expression [ , n ] )

Iexpression {=1<> I!= I> I> =I!> I < I < = I!< }

{ ALL I SOME I ANY} ( subquery )

IEXISTS ( subquery )

}

*= : ki hi~u Clla left outer join

=* : ki hi~u clla right outer join

Search_condition: gi6i hl;ln sf>dOng-tFa-v8-trong kSt qua clla cau SELECThay cac troy vc1ncon thong qua vi~c su d\mg cac vi tu (predicates)

CONTAINS va FREETEXT: tim kiSm cac cQt co chua kiSu dfr li~u d\fatren ki t\f dS so trimg v6i cac ill va c\lm tu

Trang 19

ChuO'ng 2: Van ph~m diu SELECT cua Oracle va Microsoft SQL 14

[ GROUP BY [ALL] group_by_expression [, n]

<query specification I ( <query expression> )

[ UNION [ ALL ]<query specification I ( <query expression> )

[ n ] ]

ASC: sip xSp tang d~n

DESC: sip x~p giam d~n

Compute clause::=

[ COMPUTE

Trang 20

••

BROWSE: cho phep thay d6i du li~u khi hiSn thi du li~u theo chS dQ contra

XML: kSt qua cua diu truy vdn duQ'ctra v~ theo dl;lngXML

Option clause::=

<query_hint> ::=

L~nh SELECT co chua cac phep toan va cac ham, chung duQ'c ghi trongcac m~OOd~ SELECT, WHERE, GROUP BY, HAVING va ORDER BY

h~ quan tri-CSDb-ma-cac cau truy vdn cling co S\fkhac bi~t v~-cach-viSt-:-M6ih~quan tri CSDL b6 sung mQt s6 cu phap d~c trung dS tang them tiOOnang cho cau

Trang 21

ChU'ong 2: Van ph~m diu SELECT cua Oracle va Microsoft SQL 16

2.5.1 Bi~mkhac bi~tv~cac m~nhd~

2.5.1.1 M~nhd~SELECT

2.5.1.1.1 Bac ta bi danh cho cot

V 6i Oracle, nSu bi danh cQt khong duqc viSt trong dAu ngo~c kep ''''thi kSt qua bi danh cho cQt do se theo d~ng chfr hoa

V 6i Microsoft SQL thi khi d~c ta bi danh cho cQt nhu thS nao thikSt qua vfin khong thay d6i

SQL> select id as "rna so" , salary as select id as MaSo, salary as

select 3+54+8 as "Cong" SELECT 65 AS "Cong"

from dual;

2.5.1.2 M~nhd~FROM

2.5.1.2.1

Thi~um~nhd~-From -Cau truy vAn cua Oracle b~t bUQc phai co m~nh dS FROM

Nhung m~nh dS FROM trong cau truy vAn cua SQL thi co thSkhong co v6i diSu ki~n m~nh dS SELECT chi chua cac h~ng, biSn, biSu thuc s6hQCrna khong cftn tham khao dSn cQt nao cua CSDL

Oracle co cung cAp bang DUAL Bang DUAL trong lugc d6 cuauser SYS g6m 1 cQt DUMMY va 1 hang chua gia tri "X" MQi user dSu co thStruy xuAt t6i bang nay khi mu6n nh~n vS duy nhAt 1 tri dfr li~u khong thuQc bangdfr li~u cua user, nhu kSt qua cua biSu thuc, h~ng,

Trang 22

Chua-ng 2: Van ph~m diu SELECT cua Oracle va Microsoft SQL 17

Vi d•.•2.3 Oracle

select cos(90) from dual

select cos(90)

2.5.1.2.2 Bi danh cua bang d~n xudt

M~nh de From cua Oracle khong cfrnd~t bi danh cho bang dftn xufit.Microsoft SQL Server b~t bUQcphai d~c ta bi danh cho bang dftn xufit

Vi d•.•2.4

2.5.1.3 Mfnh d~ WHERE

• cfiu truc outer joins cua Oracle:

[<table 1> (LEFT IRIGHT) OUTER JOINS <table 2> ON <condition>]

Ho~c dUng ki hi~u:

Trong SQL, tocintu *= duQ'cdung dS chi "left outer join", =* dS chi "rightouter join"

Vi d•.•2.5: Chuy~ndai Right outer join

select a.last_name as "Nhan vien", select a.last_name as "Nhan vien",b.last name as "Phu trach"- b.last name as "Phu trach"-

Vi d•.•2.6: Chuy~ndai Left outer join

select a.id as "Ma so", a.name as select a.id as "Ma so", a.name as

Trang 23

ChlfO'Dg2: Van ph~mdiu SELECT clla Oracle va Microsoft SQL 18

Vi dl}2.7: Chuy~nd8i Full outter join

select a.last name as "Nhan vien", select a.last name as "Nhan vien",

b.last name as "Phu trach" b.last name as "Phu trach"

Vi dl}2.8: Xuit 5 gia tri luo-ngd~utien trong bang s_emp

2.5.1.5 M~nh d~ ORDER BY

cQt co th~ chua gia tri r6ng-khi-s~p;r8p-tang dAnho?c giam dAn

Nhung Microsoft SQL thi kh6ng cAn vi khi s~p x8p tang dAn thi gia trir6ng dung sau tftt ca cac gia tri, s~p x8p giam dAnthi gia tri r6ng dUng tru6c tftt

ca cac gia trio

Vi dl} 2.10

Trang 24

ChU'O'ng2: Van ph~mdiu SELECT cua Oracle va Microsoft SQL 19

2.5.2. Ili~m khac bi~t v~cac toan til'va tir khoa

So sanh v6i bat ki

phfin tu nao thuQc

t~p hgp

So sanh v6i mQi

phfin tu trong t~p

hgp

So sanh giong chu6i

So sanh khong giong

ALL

LIKENOT LIKE

ANDyNOT

ANDyEXISTS

Microsoft Sql Server

*, /, +, +, -

OR

INNOT INANY, SOME

ALL

LIKENOT LIKE

x

xxx

x

x x

xxx

x x

x

x

xx

x

x

x

Trang 25

ChuO'ng 2: Van ph~m diu SELECT clla Oracle va Microsoft SQL 20

Chti thich: x: da:xu ly trong de tai

sang Microsoft SQL Server

select last_name II ' , II first_name as select last name + ' , + first name as-

ngon ngfr Oracle sang Microsoft SQL Server

tan t~i

giao gifra 2 cauSELECT, rna chi

co ham giao t~phQ'Pla

INTERSECT( set

1, set 2 [, ALL] )

trung

Trang 26

Chuong 2: Van ph~mdiu SELECT clla Oracle va Microsoft SQL 21

Vi dl} 2.13: Chuy~n dAi ti•. khoa not in, til' ngon ngfr Oracle sang Microsoft SQL Server

select c.name as "Ten", c.short_desc select c.name as "Ten", c.short_desc as

where ( a.ord _id =b.id ) where ( a.ord_id =b.id )

and ( b.date _shipped like '%SEP-92' and ( b.date_shipped like '%SEP-92' ) )) )

2.5.3 Di~m khac bi~t v~ ki~ti du Ii~u

VARCHAR2(n) Chu6i ki tv co chieu dfli tay doi den n VARCHAR

ki tv.Chi8u did t6i da la 2000 ki tv.

Cong Nguyen, co chua thong tin v8

.,

glO

2 gigabyte ho~c 231 - 1 Chi co m9tc9t kiSu LONG trong m9t bang

Trang 27

ChtrO'ng2: Van ph~m diu SELECT clla Oracle va Microsoft SQL 22

va LONGRAW LONG theo thli tlJtuang ling, nhung IMAGE

dung d~ luu dfr li~u d?ng byte ho~cdfr li~u nhi phan nhu hinh anh db h<;>ahay am thanh ki thu?t s6

2.5.4 J)i~m khac bi~t v~ ham

Server

Thvc hi~n AND tren tUng bit BITAND(argl, arg2) Khong h6 trg

Cat n den vi tri m tinh tiT dau TRUNC(n [,m]) Khong h6 trg

th?p phan

Trang 28

ChD'O'Og2: Van ph~m CaDSELECT clla Oracle va Microsoft SQL 23

2.5.4.2 Ham ki tt}'v6'i gia trj tra v~ la ki tt}'

ki tv

thuOng

chiSu dai char I b~ng n

M~c dinh char2 la

khoang tr~ng

char til tnii sang cho den

khi g~p ki tv cua char

khac v6i set

d~ng rieng cho tUng kiSu

chuySn d6i

thuOng v6i ~nlsparam~la- -'nlsparam'])

dinh d~ng rieng cho tilng

kiSu chuyAnd6i

char

dinh d~ng reing cho tUng

Trang 29

ChuO'ng 2: Van ph~m diu SELECT clla Oracle va Microsoft SQL 24

kieu chuyan doi

M~c dinh char2 la

khoang tr~ng

char tu phai sang cho

dSn khi g~p ki tv cua

char khac v6i set

2.5.4.3 Ham ki t., vo-ighi trj tni v~ la sa

Trang 30

ChU'O'Dg2: Van ph~m diu SELECT clla Oracle va Microsoft SQL 25

vS la kiSu byte

theo kiSu byte

Vi dl}2.16

from dual;

2.5.4.4 Ham ngay thang

them n thang

cling cua thang

dinh d~ng cua fmt

Vi dl} 2.17

from dual;

Trang 31

,

2.5.4.5 Ham chuy~n dAi

n sang mam

date

number

2.5.4.6 Ham xii'If gia tri rang

thi tra vS null, ngugcl~i tra vS expr 1

Vi d\l2.18

Trang 32

Chu<Yng2: Van ph~m diu SELECT clla Oracle va Microsoft SQL 27

Chli thich: Kh6ng h6 tr(Y: bao g6m nhfmg ham chua xu ly dugc cua de tai vanhfmg ham Microsoft SQL khong co

select variance( 957) from dual

2.6 Cac phep toan dai sA quan he duO'c sil' dung d~ phan tich cau truy vdnthanh cay toan til'

2.6.1 Phep chQn

Cho mQt quan h~ r tren mQt lugc d6 quan h~ R va dieu ki~n F (la mQt biSu

thuc lu~n ly co gia tri la true ho~cfalse) bao g6m:

- Cac toan h:;mg la cac h~ng, ho~c cac ten thuQc tinh cua lugc d6 quan

h~R.

- Cac phep toan so sanh =, i-, <, :::;,>, ~

_ - C~c ph~Q toan lu~n ly note -,), and(/\), or(v) _

Phep chQn tren r theo dieu ki~n F, ki hi~u la crEi.r), cho kSt qua la mQtquan h~ bao g6m cac bQ cua r th6a man dieu ki~n F la true.

crEi.r)= {u Iu E r va F(u) = true}

Trong do F( u) la dieu ki~n co dugc b~ng cach thay thS cac ten thuQc tinh

trong dieu ki~n F boi cac gia tri tuang l'rng trong bQu.

Trang 33

ChU'ong 2: Van ph~m diu SELECT clla Oracle va Microsoft SQL 28

2.6.2 Phep chi~u

cac thuQc tinh X= {AjI, Aj2, , Ajn} v6iiI, 12, ,in la cac s6 nguyen phan bi~t va

Phep chiSu ffiQtquan h~ r tren ffiQtt~p thuQc tinh ~ ki hi~u la ITx(r), cho

kSt qua la ffiQtquan h~ bao g6ffi cac bQU (UI, U2, , Un) sao cho t6n tl;liffiQtbQ v

(VI V2, , v m) trong r de Ui= vi) v6i i= 1,2, ,n.

ITx(r) = {u 13v E r: U =v[X]}

quan h~ r va s, ki hi~u la r us, la ffiQtquan h~ bao g6ffi cac bQcua r hay cua s.

r U s = {u I U E r hay U E s}

Phep hgp co tinh giao hoan

2.6.4 Phep hieu

quan h~ r cho s, ki hi~u la r - s, la ffiQtquan h~ bao g6ffi cac bQ cua r khong co trong s.

r - s = {u IU E r va U ~ s}

Phep hi~u khong co tinh giao hoan

2.6.5 Phep tich Descartes

quan h~ S (B I, B 2, , B n).

Phep tich Descartes cua hai quan h~ r va s, ki hi~u la r x s, la ffiQtquan h~

tren lugc d6 T (AI, A2, , Am; B I, B 2, , B n) bao g6ffi cac bQU sao cho m thanh

pli~n-d~u tielna- ffiQtbQ cua r va n thanh pli~n cu6i clingla ffiQtOQ- cua s.

Phep tich Descartes co tinh giao hom

Trang 34

ChUO'Dg2: Van ph~m diu SELECT cua Oracle va Microsoft SQL 29

Phep giao cua hai quan h~r va s co thS duQ'c tinh tir phep hi~u nhu sau:

r n s =r - (r - s) =s - (s - r)

Phep giao co tinh giao hoan

2.6.7 Phep k~t-e

Cho quan h~ r tren 1uQ'cd6 quan h~R, quan h~ s tren 1uQ'cd6 quan h~Sva

T =R u S(cac thuQc tinh cua R duQ'c xem 1a khac v6i cac thuQc tinh cua S),8 1amQt phep so sanh (=, 7=,<, ~, >, ~), A E R va B E S1a hai thuQC tinh co thS sosanh v6i nhau boi phep 8

Phep kSt-8 cua r va s tren hai thuQc tinh A va B, ki hi~u 1a r cc ABB s, cho

kSt qua 1a mQt quan h~ tren 1uQ'cd6 quan h~ T bao g6m cac bQ t nhu sau:

Cho quan h~ rtren 1uQ'cd6 quan h~R, quan h~ stren 1uQ'cd6 quan h~Sva

T=R uS(R va Sco thS co cac thuQc tinh chung)

Phep kSt tv nhien cua r va s, ki hi~u 1ar cc s, cho kSt qua 1a mQt quan h~

v6i t r = t[R] va t s = t[S].

Dinh nghTa clla phep kSt tv nhien khong doi hoi hai t~p thuQc tinh R va S

giao nhau khac r6ng NSu R n S=0 thi r cc s 1a phep tich Descartes clla r va s.

Phep kSt tv nhien Clla hai quan h~ r va s co thS duQ'c tinh ill phep tich,

-phep ch<;mva phep chiSu nhu sau:

Trang 35

ChU'O'Dg2: Van ph~m diu SELECT cua Oracle va Microsoft SQL 30

Cho quan h~ r tren lugc d6 quan h~ R, quan h~ s tren lugc d6 quan h~ S, 8

la m(>tphep so sanh (=, *-, <, ~, >, 2), A E R va B E Sla hai thu(>c tinh co th~ sosanh v6i nhau boi phep 8

Phep m:ra kSt-8 cua r va s tren hai thu(>c tinh A va B, ki hi~u la r c< ABB s,

cho kSt qua la m(>t quan h~ tren lugc d6 quan h~ R nhu sau:

r c<ABB S = {u I U E r va::Jv E S v6i u[A] 8 v[B]}

Phep m:ra kSt-8 cua hai quan h~ r va S co th~ dugc tinh tu phep kSt-8 vaphep chiSu OOu sau:

r c< ABB S= DR (r CC ABB s)

Phep m:ra kSt-8 khong co tinh giao hoan

2.6.10 Phep nu'a k~t tt}'nhien

Cho quan h~ r tren lugc d6 quan h~R, quan h~ Stren lugc d6 quan h~ Sva

X=RnS*-0.

Phep m:ra kSt t\1 nhien cua r va s, ki hi~u la r c< s, cho kSt qua la m(>t quan

h~ tren lugc d6 quan h~ R nhu sau:

r c< S = {u I U E r va::Jv E S v6i u[X] =vEX]}

Phep m:ra kSt t\1 OOien cua hai quan h~ r va S co th~ dugc tiOO tu phep kStt\1 nhien va phep chiSu OOu sau:

r c< S =DR (r cc s)

Phep m:ra kSt t\1 nhien khong co tiOOgiao hoan

2.6.11 Phep chia

Cho quan h~ r tren lugc d6 quan h~ R (AI, A 2, , Ak, Ak+I, , Am) va quan

h~Stren lugc d6 quan h~S(AJ, A 2, , Ak).

Phep chia quan h~ r cho S v6i S *- O, ki hi~u la r + s, cho kSt qua la m(>t

quan h~ tren lugc d6-quan h~ T-(A k +-I, -, Am) bao g6m cac b(> (Uk+I, , um) sao

cho d6i v6i t<1tca cac b(>(uJ, " Uk) thu(>c s thi b(>(UI, , Uk, Uk+I, ,' Um) thu(>c r.

Phep chia quan h~ r cho s co th~ dugc tinh tu cac phep chiSu, phep tich,phep hi~u

Phep chi a khong co tinh giao hoan

Trang 36

ChU'O'Dg2: Van ph~mdiu SELECT ella Oracle va Microsoft SQL 31

K~t Luan: Chuang nay da: gi6i thi~u duqc van phl;lm diu truy vein cua Oracle vaMicrosoft SQL D6ng thai cling trinh bay nhiing diSm khac bi~t giua hai diutruy vein Vi~c thlJc hi~n chuySn d6i se duqc neu ra trong chuang 3

Trang 37

,,, ;;{;t A s:.

Chtrongd:, QUA TRINH CHUYEN DOl CAU TRUY VAN

Cau troy vfut Oracle

KiSm tra 16iCau troy van dung

Phfin tich cau truy van thanh cay cu phap & cay toan tu

Truy vfut da duQ'Cphan tich

thanh cay cu pha & cay toan tu

ChuySn d6i cac diSm khac nhau vS hamCay toan tu co cac ham

da duQ'cchuySn d6i

ThlJc hi~n chuySn d6i cac diSm khac bi~t vS tu khoa

Cay toan tu co cac tu khoa

da duQ'cchuySn d6i

ChuySn d6i cac diSm khac nhau vS toan tu

Cay toan tu co cac toan tu

da duQ'CchuySn d6i

ChuySn d6i cac diSm khac bi~t con l~i

Truy van d~i s6 quan h~

Trang 38

Vi dl} 3.2

Select id, last_name, MAX( salary)

From s_emp

Goup by id;

-> L6i: last_name khong n~m trong ham

nhom va cling khong n~m trong Group

3.2.1 Ki~m tra lai

~ Du li~u vao: cau truy vfuI Oracle

~ Du li~u ra: cau truy vfin Oracle da kiSm tra 16i

Cac buac kiSm tra:

Trang 39

Dun

Select nameFrom s_dept

Select e.id, e.1ast_nameFrom s_emp e, s_dept d

Select last nameFrom s_emp;

Select id, last_nameFrom s_emp;

-> L6i: khon tBn t~i ban

Select last name

From s_dept;

=> L6i: last name khong tBn t~i trong table

s de t

Select id, e.1ast_name

From s_emp e, s_dept d

Select id, last_name

From emp;

=> L6i: id la ki~u number, khong th~ so sanh duQ'c

vm bi~u thuc chu6i

Select name

From s_dept

Where id ='abc'.,

• SlJ tBn t~i cua cac d6i tuqng dii li~u

cac cQt duQ'c su d\lllg co tBn t~i trong cac bang tuang trng trong cau truy vfuI haykhong NSu khong tBn t~i, Oracle se bao 16i va dUng xu ly

Vi dy 3.4

Chtr01lg 3: Qua trinh chuy~n dAi diu truy vin

3.2.1.2 Ki~m tra S,! hC}'P I~

• Ki~u dii li~u

Ki~m tra xem ki~u dii li~u cua mQt phep toan co tuang thich v6i ki~u dii

16i va ngung xu ly

Vi dy 3.3

Trang 40

tUng token

1 Class token: chua thong tin xac dinh m~nh de Clla cau

35

s dept deu co cQt id

Where a.id = b.id;

=> L6i: khong d~t bi danh cho bang khi su d\lng

inner join

3.2.2 Phan tich cau truy v~n

Cach thlfC hienBl: Hinh thanh cac token chua cac m~nh dS clla cau truy vfin

B1.1: Xac dinh vi tri Clla cac m~nh dS trong cau truy vfinB1.2: Xac dinh cac chu6i sau m~nh dS

khoa, toan tu t6n ~i trong cau truy vfin

B3: Xac dinh cfiu truc ham CllatUng token

B4: Gom cac node co trong cac token hinh thanh cay toan tu clla

Ngày đăng: 01/09/2023, 22:05

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w