1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Giáo trình thực hành sql

7 23 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 1 MB

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

Nội dung

được và để l.ìạn íự íìm ra vấn đề... Các cflu lệnh nào dưói đây sẽ thực h iện đư ợc?

Trang 1

BÀI 2 CÂU LỆNH SELECT

M ụ c đích;

0 bài nàv chúng ta sẽ nói về:

• Cách viết m ột truy vấn SQL

• Lựa chọn và hiển thị tất cả các h à n a và cột trong b a n c

• L ự a c h ọ n và h i ể n íhị c hì c á c CỘI c h ỉ đi nl i t r o n g b ả n g

• Lưa chọn 1 • \ầ h iể n thị các cột từ n h iều b ả n e• • W

Đ ể sừ d ụ n s được đầy đủ sức m ạ n h của m ộ t C S D L q u a p / h ệ thì b ạ n cần phài giao tiếp vói nổ thông qua các truy vấn (query) M ộ t Iruv vấn S Q L k h ò n g

n h ất thiết chỉ ià m ộ í yêu cầu iíy dữ liệu từ CSDL, lìó có thể lù m ộ t c.lu !ộnh dể làm m ộ t iro n s các việc sau:

• T ạo ra hoặc xoá đi m ột bảng

• T h è m ^'ào, sửa đổi hoặc xoá đi các hàng, các CỘI

• T im kiếm m ộ t vài bản g tlioả m ãn th ô n s-tin nào đó và trá về k é i ũ u à ih ec thứ tự cu thể

• Sửa đổi ih ô n ^ tin an toàn

Đ ể ihực hiện mỗi công viậc như vậv ta phải tạo ra m ộr )''êu cáu 2Ửi đ ế n ỉv|' CỊunn trị CSDL Yỗii cầu đó Vỉổ’t dưới d ạ n s m ộ t câu lệnh cùa n g ồ n n g ữ S Q L mh

ns ư ò i - ĩ a r,ọi ìà Query Chúns ta sẽ d ị c h 't h u ậ t n g ữ này ỉà “ truv vấii" N h ư vậv iruy vấn là cách thức mà naười sử cỉụp.2 s ia o tiếp với bộ xừ ly SQL

Q uy íắc c h u n g về cú

Ta sẽ thấy, cú pháp của SQL thực sự là ỉinli hoạt, m ậ c đù nó cũr.ỉ: có các kiậi pììâi tiiíìn theo như bất kv m ội níĩôn n e ữ iâp trình nà o khnc M ột tru v vấn do'n aiân ỉĩiinh hoạ cho cú phấD cơ bản của câu lệnh SQ L S E L E C T - H ã v thộí chú

ỷ vào chữ hoa dấu cách, và sự phản cách họp ỉý củci từ n s thàiih p h án Iro n s m ỗ i

iru\ vấn với các lừ Idioá của SQL

SELECT KAME, , STAR7TER^C, ' ERDTERK ' ' ■ ' ^

FROM PRESIDENTS'

T ro n g ví dụ này tă't cả các chữ đều được viết hoa, Iiliưng idiónỉí n h âí th iế i phải

n h ư vậ)- Truy v;ín trẽn đáy c ũ ns giống như truy vấn dưới ncu nó đ ư ợc viết n hu

Trang 2

s e l e c t name, S t a r t t e r m , endf-erm

i ' r o m presidents

i.-4'iere n a m e = 'LINCOLN';

Lmi ý !ă chữ L IN C O L N trong cả hai ví d ụ đều viết hoa M ặc dù r á ' ’ lẹiih SOL là Idiông phân biệt chữ h o a với chữ thường n h ư n g các tham chic.r ■ t díi ỉiệu thì có V í dụ, có rất nhiều công ty lưu trữ dữ liệu của họ với chữ ị)ì 'ÌOI^

!'i 'Tig ví dụ iíên, giả sử rằng cộ t tôn lưu Irữ.iỊội d u n g dữ liệu vói ch ữ in hí 1 1 i

- 0 -nột t;’ỉy vấn tìm kiếm chữ 'Lincoln' trong c ộ t lên sẽ kliông tim ínấv i r- i íhoầ m ãn N ầư vộv là trong các câu lệ n h tron g S Q L ta k liô n s p h ân biệl chu loo

nhữ íhưòvp, C ũ n g khôn g có gì 'đặc biệt với các ỉchoảng trắng, m iền I:‘| '-ác

ớiokìp^ khô n g chia cắt các thành p h ầ n c ú pháp D ò n s mã lệnli ;-.ai ,àv

, ' \ kếf quả g iố n s nliư cách viếc tiuớc:

I me, 3tart:term,■ ■ endterm

£i'u ji p r < 's id e n c s ,

w h e r e p.dJTie = ' L I N C O L N ' ;

'Tuy nJiiẻn, m ột vài k lio ả n s trắng và viết chữ hoa sẽ ỉàm cho câu lệnh của :a crở liên dễ- dọc hơn V ậy nếu sư q u a n trọng k h ô n ? p h ải ià ờ chỗ viếi h a y /liếu c á c h ihì -phán nàũ mới ỉà qu an trọng? Câu trả ỉời đó chính là cấc lù kiicá .'key w ord), hay những-từ ĩrong SQL đ JC d à n h riâns: n h ư là rnột phán cú

•háp T uỳ Ihuộc vào cAu ỉệnh SQL, m ộ t từ k h o á có thể là ỉệnh hoặc là ÌÍI ■' I.]',ọn ỉnưng từ kho á irong câu ỉệnh Iiàv là:

’ S E LE CÌ '

• ỈẾLECr và F R O M

■ í=n í'ó rỉ)út ít kinli n g h iệ m vái SQL, ta sẽ thấy rằng các rừ SE) M i' V

ĩị'. ụỉiiều liơii b ấ t kỳ từ nào k h á c 't r o n g b ả n ? từ vựng cị‘i.1 '■•ứi:- l: ứ. b á í dầií với lừ S E L E C T bởi vì hầu hết các câu lệnh của ta sè bắt r1;ìn

ĩiCĩ: ^ ^ ^ ^ ' ,, '

cú p h áp :

\ CELECT ' < t ê n ^ c á c c ộ t >

Đối vói các câu lệnh kể cả những cáu !ệnh c ơ bản nữa, thì cáìi

S E Ĩ.E C T kliônp ''hễ don piản hon được nữa T u y nh iên , SELECT khônp, chì ; v-ộc m ộ t ưiình Mếii Iiỉiư bạn chỉ 2Õ S E L E C T vào hệ th ốna pủa bạn,

■5QL> SELKCT;

bạn có thể nhận dược kếl quả như sau:

Trang 3

Hr

ERROR ac line 1;

ORA-00936: m i s sing expres s i o n

T h ô n g báo lỗi chỉ ra cho b ạ n m ộ t thànli phần nào đó bị ihiếu P h ần bị hiếu chínli ià m ệ n h đ ề F R O M N liư vậy, câu lệnh S E L E C T v à F R O M bắt đáu

n ở ra SỨQ m ạn h đ ằ n s sau C SD L c ủ a bạn

Bạn có thể sẽ tự hỏi cái gì p h â n biệt giữa m ộ t từ k h oá (k ey w o id i, m ộ t crlii lệnh (statem en t) và m ột m ệ n h đ ề (clause) C ác từ kho á SQL nói tớỉ các thaiih

p h án SQ L riêng rẽ n h ư S E L E C T và F R O M M ộ t m ệ n h đề ỉ'à m ôt phiin Xĩonẹ câu

!ệnh SQL; ví dụ, S E L E C T c ộ t l , cột2, ià m ộ t m ện h đề Các niệnh đé S Q L kết liọp với vói nỉiau để tạo n ê n m ộ t c â u lện h SQ L h o à n chỉnh Ví dụ bạn có thể kết

h ợ p m ộ t m ệ n h đ ề S E L E C T v à m ộ t m ệ n h đề F R O M đ ể viết nên m ột câu lệnh

S Q L

Tuỳ thuộc theo nhà phác triển, m ỗ i b ả n SQ L sẽ có m ộ t cách rièn s đ ê ỈSỈ

ĩ 1 lỗi V í dụ, M icro so ft Q u e ry nói rằn g nó k h ô n g thể hiện iruy vấr được và để l.ìạn íự íìm ra vấn đề Borland's In tc rb a s c dư a ra m ột liộp thoại uoim uó iihi rõ lỗi P erso n al O ra c le ? đưa ra cho b ạ n s ố h iệ u c ủ a ỉỗi và m ộ t siải thích n s ắ n gọn

về iỗi M S/SQ L server cũng c ó m ộ t k iểu thôna; bá o lỗi của m ình

Y í đ ụ ;

Sau đâ y là m ộ t ví dụ về m ộ t C S D L m à c h ú n a ta sẽ d ù n g niiiều đ ể m inh ỉhoạ c á c h d ù n g các m ệ n h đề S E L E C T và F R O M C h ú n g ta chưa bàn tói vân đề ỉàrn tliế nào đổ tạo ra CSD L n ày , n h ư n g đ ể p h ụ c vụ clio ,mục đ ích ỉà niỏ lả các h dùiig S E L E C T và F R O M n h ư t h ế nào, ở đ ây c h ú n g ta sỊÍả thiếí như đã có sẩn

C S D L đói, V í đụ n à y sẽ d ù n g b ả n g C H E C K S đ ể lấy- th ô ng tin về các hoẩ đơ n m à

m ỗi cá n h â n đ ã tao ra

3ng C H E C K S :

2

i

4

5

6

M a Beii

R ea d in g R R

M a Bell Local Utilities Joes Stale D en t Cash

Joans G as

150

? ^ 5 3 4

98 150 25 25.1

H av e sons next time

T rain to Chicago Ceiỉulnr Phone

G as

G roceries

W i l d N i ^ h r Oii£

Gas

ĐAy là truy vấn đáu tiên củ a ban

Trang 4

SQL> select from checks;

K ết quả sc ỉà

, 7 rows selected.

K ết quả trả về giống n h ư b ả n g tr o n s v í d ụ n ày H ã y lu\: )' là cột ỉ và cột 3 trong phần kết quả là căn lề phải và côí 2 và cộ t 4 ỉại c ă n lề bẽn irái Đ ịn h d ạ n c này tuân theo qu y ước về c ă n lề, theo q u v ư ó c này dữ liệu d ạ n c số sẽ đưọ'c càn ỉể phải và dữ liệu dạng k v tự sẽ căn lề b ê n trái

Dấu sao (*) trong S E L E C T * cộ n s liĩa là C S D L sẽ ira \'ề trú cả các côf

t r o a s các bảng-được đ ư a ra m ệ n h đ ề F R O M C S D L sẽ xác điĩih tliứ tự của cổc

K ế í thúc m ộ t câu lộnh SQL

Trong m ộ t vài cài đ ặt của SQL, dấu ch ấm p h ẩ y (;) ò' cuối câu lệnh có nelìĩa ỉà bạn đã viếl x o n g câu lênh đó V í đụ n h ư S Q L * P L U S cùa OvAck sẽ

k h ố n g thực hiện câu ỉệnli cho tói klii nó th ấ\' dấu (;) h o ặ c dấi! (/}. T u y nh iên ,

m ộ t số cài đặt khác ỉại k h ô n s d ù n g dấu c h ấ m p h ẩy n h ư là ITÌỘL k ý hiệu kêt thúc.V í dụ M icrosoft Q u ery và Borland's S Q L k h ồ n s v ê u cấu m ộ t dấu chấrn phẩv, bởi vi truy vấn của bạn được gõ ironíĩ m ộ t h ộ p s o ạ n lỉiáo và sC* d ư :: ỉ nực hiện khi bạn niiấn m ộ t nút đà quy địnli

T h a y đcSi thứ tự của các cột

V í d ụ trưó- c ủ a c â u l ệ n h S Q L s u a ụ n ẹ d ấ u c l i ọ n lự:, i ấ i c a c á c c ộ ! ù;

m ộ t bảng, thứ lự các cột xuấí hiên ở p h ầ n V"' đã đưọ'c CSDL xác định Đé chỉ ra thứ tự cùa các cọ:, bạn r-' ih" Ì.C; óoiia lệnh sau;

Lưu y Iằn£ ten cột phải được ghi trỏ n s m ệ n h đề S E L E C T , TỊiứ iư cấc cột

d ư ợ c g h i s ẽ là thư Lụ c h ú n g x u ấ t h i ệ n i r o n s k ế l q u ả Irả Vu K ltv ' liriỉ ý cả tói c á c

d ấ u p h ẩ y n í ă n c á c h g ỉ ữ r ren c á c c ộ t v ă k h u à i i i í L i ố n s s i ư a ler c ộ r c u ố ! c ù n c v ói

m ệ n h đề tiếp theo (tro n s ví aụ ha 1? m é a h đề F R O M ; K i i qiia ira vể sẽ nỉur sau:

Trang 5

P A Y E E REÌ-mRKS • ' A M O U N T C H E C K ịệ

7 rows selected.

M ộ t c á c h viết k h á c của c â u lệ n h là n h ư sau:

S E L E C T payee, rerrtarks, amount, check#

F R O M checks;

T a th ấy m ệ n h đ ề F R O M đ ã đ ư ợ c c h u y ể n xuốna: d ò n s ihứ 2 K ết quà trá về

ỉà g iố n g n h a u vì chỉ có d ạ n g c â u lệ n h là th ay đổi

'C h ọ n c á c c ộ t riên g rẽ

Bâv g iờ k hi m à bạn đ ã có th ể k iể m so át đư ợc thứ tự c ủ a c ác cột bạn sẽ c ó tlìỏ c h ì ra b ạn m u ố n x e m cột nào G iả sử là b ạn k liồ n g m u ố n rihìn ihấy tất cà cá c cột ironsĩ C S D L Bạn đã sử d u n g lện h S E L E C T * đ ể x e m th ô n ^ tin đã có sẩn và bây ơicí b ạn m u ố n tạp trung vào s ố ỉioá đ ơ n và tổ n g số Bạn gõ; ■

S E L E C T CHECK#, amount from checks ;

K ế t q u à íiả về bủỵ giờ sẽ là

CHECK# ■ AÌ40ƯMT

,, , ^

2 2 4 5 3 4

3 2 0 0 3 2

7 rov/s selected.

B ây g iờ b ạn đ ã có các c ộ t m à b ạ n m u ố n x e m Cái gì sẽ xảy ra n ế u b ạ n

L ự a c h ọ n các b ả n g kh ác nh au

G iả sử là b ạ n đ ã có m ột b ả n g kliác là D E P O S IT S với c ấu trúc như sau:

Trang 6

3 C r e d i t U; Oh 5G0 L o a i

Ơ1Ỉ cần b ạn thay đổi m ệỉili đề F R O M đ ể có đư ợc b ả n s m o n s m u ố n và cõ lệnh n h ư sau:

select * from d e p o s i t s

K ết quả là;

1 R i c h U n c l e 2 0 0 T a k e c f f - 1 s t

2 E m p l o y e r 1C0Ũ 1 5 J u n e

3 C r e d ' i ' r U n i o n 50 0 L o a n

3 r o v ; s s e l e c t e d

N l i ư v Ạ \ c h i v ó i m ộ l i l i a v d o i n h ỏ g i ữ đ á v b ạ n đ ũ l u;' nlụiỊ) ù i i ọ r ÌIIOÍ

i i g u ồ n d ừ liỘLi m ó i

Đ ặ t truy vấn vói vêu cầu lấy các giá irỊ k h á c n h a u ( D i s t i n c l i o r ,

Nếu xem lại b ả n s C H E C K S , b ạn sẽ ihấv co m ộ t vaỉ dĩi iiẹu bị ỉặp lại \ ' í clụ nêu ban d ù n s cfiu lênh sau nỉiin vào côt A M O U i N T :

K ê ì q u a ỉ à

.

15C

2 4 5 3 4

2 0 C 3 2

98

1 5 0

0 c , 25^1

rov.’s selected.

SỐ 150 bị lặp lại L à m t h ế n à o n ế u bạn m u ố n x e m liẹi có bao n h iêu s ố tiền k h ấc nhai' í rong cột nà)'? H ã y thử g õ cáu ỉệnh;

select r i S T I N T T amount from checks

Trang 7

K ế t quà sẽ là;

AKCUi'JT

245.34

2 0 0 2 2

25 1

6 rov.'s selected.

Báy s iừ chỉ có 6 bản íihi dưạ'c ch ọ n Bửi vì b ạ n đã gõ D IS T IN C T , chỉ có

m ộ t g i á trị t r o n g d ữ l i ệ u k é p đ ư ợ c h i ể n thị, đ i ề u đ ó c ó n s h l a là s ẽ c ó b ó l đi m ộ t

bản ohi được li-ả về A L L là từ khoá n s ầ m đ ịn h tro n g câu lệnh S E L E C T cơ bản Bạn liáu như sẽ k h ô n g nhìn lhấ_v từ A L L bởi vì S E L E C T < b ả n c > and S E L E C T

A L L < b ả n g > c ù n s có kết quả nlur n h au W- - *

T ó m tắt bài 1

T ừ k h o á S E L E C T và F R O M c h o p h é p viết iruv vấn để láy d ữ liệu Bạn có ihể tạo ra m ội câu lện h đáy đủ vìi eộp tấĩ cả cá c b ả n e với m ộ t câu ỉệnli S E L E C T

h o ặ c bạn c ó Ihể sấp xếp hoặc lấy d ữ liệiỉ từ các b ả n s n h at định T ừ kh o á

D IS T IN C T giói h ạ n k ết quả trả về d o vậy b ạ n sẽ k h ô n g nhìn íhấv các s iá trị trùng nlĩau trong m ộ l cột, ,

Câu hoi

1 C á c c â i i l ệ n h d i ĩ ó i đ â y s ẽ Irả N'c k ế t q u ả í i ố n s : h a \ ' kl ìa C IIỈIUU '?

SELECT=^= F R O M C H E C K S

2 Các truy vấn k liônc thực hiện đư ợc lại sao?

a Select *

6 Seỉeci a m o u n L n a m e payee F R O M c h e c k s

3 Các cflu lệnh nào dưói đây sẽ thực h iện đư ợc?

a select

from chexks

b s e l e c t f r o m checks;

Bài tập

1 H ã v sử d ụ n g bảnơ C H EC K S ở bài h ô m n ay , viết truv vấn chỉ đ ể h iển thị số hoá đơn và cột rem arks

2 H ãy viết lại truy vấn ờ bài 1 sao c h o c ộ t re m a rk s sẽ x u ãì hiện là CỘI đầu

ú ẽ n trong kêì q u ả cửa bạn

3 D ù n e b ản g C H ECK S, viết m ột tru y vấn đ ể trá vể ưú ca s iá trị re m ark s

d u y nhất

Ngày đăng: 18/03/2021, 19:19

TỪ KHÓA LIÊN QUAN