You are on page 1of 51

Mc Lc

Bi 1 I. 1. 2. II. 1. 2. 3. Bi 2 I. 1. 2. 3. 4. 5. II. 1. 2. 3. 4. Bi 3 I. II. 1. 2. 3. 4. 5. III. 1. 2. 3. 4. 5. CC KHI NIM C BN ................................................................................ 1 Cc khi nim ....................................................................................................... 1 C s d liu ..................................................................................................... 1 H qun tr c s d liu ................................................................................... 1 Thit k c s d liu ........................................................................................... 1 C s d liu quan h ....................................................................................... 1 Quy trnh thit k c s d liu ........................................................................ 2 Cc bc chun ho .......................................................................................... 4 TNG QUAN V CSDL MYSQL ...................................................................... 6 Tng quan v MySQL .......................................................................................... 6 M hnh Client/Server ...................................................................................... 6 Quy trnh ci t (trn Windows) ..................................................................... 6 Khi ng & tt dch v MySQL ................................................................... 13 Thao tc ti client ............................................................................................ 13 Thay i password cho ti khon root ............................................................ 14 Cc thao tc c bn trn CSDL .......................................................................... 14 Xem cc c s d liu ..................................................................................... 14 To c s d liu mi ..................................................................................... 15 Xo c s d liu ............................................................................................ 15 Thm ti khon ngi dng (user) .................................................................. 15 BNG - TABLE ................................................................................................. 16 nh ngha .......................................................................................................... 16 Cc kiu d liu .................................................................................................. 16 Kiu d s (numeric) ...................................................................................... 16 Kiu chui k t (string) .................................................................................. 16 Kiu hn hp (Miscellaneous) ........................................................................ 17 Kiu ngy gi .................................................................................................. 17 Cc t kho nh ngha ct (modifiers) .......................................................... 18 Cc thao tc trn bng ..................................................................................... 18 To bng ......................................................................................................... 18 Xem thng tin ca CSDL, Bng ..................................................................... 19 Xo bng ......................................................................................................... 19 Thay i cu trc bng.................................................................................... 19 Chn d liu vo bng .................................................................................... 19

Bi 4 I. 1. 2. 3. II. 1. 2. 3. Bi 5 I. 1. 2. II. 1. 2. 3. 4. 5. 6. 7. III. 1. 2. 3. 4. 5. 6. Bi 6 I. 1. 2. II. 1. 2. III.

THAO TC TRN CSDL ................................................................................. 21 Import d liu ..................................................................................................... 21 Import t file text ............................................................................................ 21 Import t file sql ............................................................................................. 22 Import t file Access ....................................................................................... 23 Export d liu ..................................................................................................... 25 Chng trnh mysqldump ............................................................................... 25 Lnh Select Into Outfile ............................................................................. 25 Chng trnh mysql client .............................................................................. 25 TRUY VN QUERY ...................................................................................... 26 nh ngha .......................................................................................................... 26 nh ngha....................................................................................................... 26 Cc t kho ..................................................................................................... 26 Cc thao tc truy vn d liu .............................................................................. 26 Truy vn chn d liu ..................................................................................... 26 Truy vn thng k d liu ............................................................................... 27 Truy vn lng .................................................................................................. 28 Mnh Join ................................................................................................... 28 Truy vn chn d liu ..................................................................................... 28 Truy vn xo d liu ....................................................................................... 28 Truy vn cp nht d liu ............................................................................... 28 Ton t & hm ................................................................................................ 28 Ton t ............................................................................................................ 28 Hm ton hc .................................................................................................. 29 Hm iu kin ................................................................................................. 29 Hm logic ........................................................................................................ 29 Hm chui ....................................................................................................... 30 Hm thi gian ................................................................................................. 30 FUNCTION PROCEDURE TRIGGER ....................................................... 33 Function .............................................................................................................. 33 Cu trc to Function ...................................................................................... 33 S dng Function ............................................................................................ 33 Procedure ............................................................................................................ 34 Cu trc to Procedure .................................................................................... 34 S dng Procedure .......................................................................................... 34 Trigger ............................................................................................................ 34

Bi 7 I. 1. 2. 3. 4. II. 1. 2. 3. 4. Bi 8 I. II. III.

BO MT V QUN TR ............................................................................... 36 Bo mt CSDL ................................................................................................... 36 Phng thc bo mt trong MySQL............................................................... 36 To ti khon ngi dng ............................................................................... 36 Xo ti khon ngi dng ............................................................................... 36 Cp quyn & xo quyn cho ti khon ngi dng ........................................ 36 Qun tr ............................................................................................................... 37 Backup (sao lu) d liu ................................................................................. 37 Restore (phc hi) d liu............................................................................... 37 Cc hm trn h thng ca MySQL................................................................ 37 S dng mysqladmin ...................................................................................... 37 S DNG CNG C GIAO DIN HO - MySQL GUI TOOLS ........... 39 Gii thiu: ........................................................................................................... 39 MySQL Administrator ........................................................................................ 39 MySQL Query Browser .................................................................................. 40

Bi Tp ........................................................................................................................... 42

Gio trnh C s d liu MySQL

Bi 1

CC KHI NIM C BN

I. Cc khi nim
1. C s d liu C s d liu (CSDL) hay cn gi l database l tp hp d liu c t chc mt cch c cu trc phc v cho nhiu mc ch khc ca ngi dng. Vd : Cng ty c tp tin lu tr danh sch nhn vin trn my tnh, cng lc ban gim c cn xem xt cc nhn vin khen thng phng ti v li cn lp bng lng thng cho cc nhn vin. Nh vy danh sch nhn vin c c ban gim c v phng ti v khai thc cng mt lc, d nhin thng tin v nhn vin phi nht qun ngha l d u - ban gim c hay phng ti v - thng tin y l phi nh nhau. Nh vy, vic qun tr mt cng ty c s nht qun ta cn phi t chc d liu, thng tin ca cng ty mt cch ng nht - ngha l phi t chc CSDL cho cng ty.

2.

H qun tr c s d liu

H qun tr CSDL l cc phn mm cung cp cc cng c xy dng CSDL, v cc thao tc trn cc CSDL . V d nh Foxpro, Access, Microsoft SQL Server, MySQL..

II. Thit k c s d liu


1. C s d liu quan h a. nh ngha Mt c s d liu quan h l mt c s d liu c to nn bi cc bng. Mi bng bao gm nhiu ct, v cc bng c mi quan h vi nhau da vo nhng gi tr kho. Vd : mt c s d liu v bn hng s c mt bng l n t Hng bao gm cc thng tin nh M s n t hng, ngy t hng, ngy giao hng, V mt bng khc l Khch Hng bao gm cc thng tin nh h tn, a ch, Hai bng ny s c lin quan vi nhau, v khng th mt n t hng m khng c khch hng.
Bin son Nguyn Minh Thnh 1

Gio trnh C s d liu MySQL b. Thc th & Thuc tnh Thc th l mt i tng c th hay tru tng trong th gii thc v c chuyn i vo trong CSDL thnh mt bng. Trong mt CSDL ta phi qun l nhiu i tng d liu, mi i tng c chuyn i t cc thc th trong th gii thc vo CSDL. Vd : Trong mt trng hc c cc thc th: gio vin, hc sinh, mn hc Trong mt th vin c cc thc th: sch, loi sch, nh xut bn Trong mt cng ty bun bn c cc thc th: mt hng (c th), cng n (tru tng). Mi mt thc th nh vy s l mt bng trong CSDL. Mi thc th c cc tnh cht ring gi l cc thuc tnh. Vd : thc th hc sinh c cc thuc tnh nh : h tn, ngy sinh, qu qun Mi mt thuc tnh s c th hin thnh mt ct tng ng trong bng th hin thc th . c. Kho phn bit cc i tng (thnh phn) trong cng mt thc th, ta s chn ra nhng thuc tnh dng phn bit chng, nhng thuc tnh gi l kha. Ta c th chn ra trong cc thuc tnh ca thc th mt hoc nhiu thuc tnh lm kho hoc cng c th t ra mt thuc tnh mi (thng c gi l M) lm kho cho thc th . Vd : phn bit gia cc sinh vin trong cng mt thc th sinh vin, ta t ra thuc tnh MaSV, v mi sinh vin c mt m s duy nht phn bit vi cc sinh vin khc. Do , MaSV l kha ca thc th SinhVien. d. Mi quan h Mi quan h (hay cn gi l rng buc) dng th hin s lin quan d liu gia cc bng vi nhau. C 3 loi quan h (s c trnh by chi tit phn sau): 2. Quan h 1 1 Quan h 1 n Quan h n n

Quy trnh thit k c s d liu

Bc 1: Xc nh mc ch ca CSDL Xc nh c mc ch ca CSDL, s gip chng ta quyt nh a nhng thng tin no vo CSDL V d: Mt cng ty cn qun l nhng thng tin v bun bn ca cng ty. Nh vy, cc thng tin cn lu tr l n t hng, mt hng, khch hng, nhn vin bn hng. Bc 2: xc nh cc bng (table) cn thit. Khi xc nh c mc ch ca CSDL, chng ta c th chia thng tin theo cc ch phn bit. Mi ch l mt bng (table) trong CSDL.
Bin son Nguyn Minh Thnh 2

Gio trnh C s d liu MySQL

V d: vi nhng thng tin ca cng ty trn chng ta c th to cc bng nh sau: HA N, CHI TIT HA N, HNG HA, KHCH HNG, NHN VIN BN HNG Bc 3: Xc nh cc field (hay cn gi l trng hoc field) cho mi bng. Khi xc nh cc field cho bng ta cn ch mt s iu: Khng nn to field cha thng tin c th rt ra t nhng field khc, hoc cha kt qu c th tnh ton c. Nn tch thng tin ra phn nh nht; Cc field phi ph c cc thng tin cn thit. Xc nh kha chnh trong bng (Primary Key): Mt field l kha chnh khi m gi tr ca n trong bng l duy nht, khng trng lp. Trong mt bng c th c hai field (hoc hn) kt hp li to thnh mt kha chnh, gi tr hp ca cc field ny trong bng l duy nht. Field kha chnh phi c kch thc nh, tc truy xut CSDL c nhanh. Field kha chnh khng chp nhn gi tr rng. V d: trong bng HA N field M ha n l field kha chnh, v mi ha n c mt m ring. Bc 4: Xc nh mi quan h gia cc bng Chng ta lu tr cc d liu c quan h vi nhau trn nhiu bng ring l khc nhau. V vy chng ta cn xc nh mi quan h (Relationship) gia cc bng. t quan h gia hai bng: bng A v bng B, chng ta thm kha chnh ca mt bng n bng cn li, v vy kha ny xut hin trong c hai bng. Nhng chng ta phi xc nh s dng kha chnh ca bng no? xc nh mi quan h cho ng, chng ta phi hiu r cc loi quan h ca chng. C 3 loi quan h gia hai bng. Quan h 1-nhiu (One to Many): y l mi quan h ph bin trong CSDL quan h. Trong quan h ny mt mu tin trong bng A c th c quan h vi nhiu mu tin trong bng B. V d: Trong mt c quan, mi mt tnh thnh (ni sinh ca nhn vin) c nhiu nhn vin. Nhng mt nhn vin ch thuc mt tnh thnh (ni sinh) Quan h nhiu - nhiu (Many-to-Many): Mi mu tin trong bng A c quan h vi nhiu mu tin trong bng B, v ngc li mt mu tin trong bng B, cng c quan h vi nhiu mu tin trong bng A. Quan h ny kh th hin trong thit k. Trong trng hp ny ta phi to ra thm mt bng trung gian C. V chng ta s to mi quan h 1-nhiu gia A v C, v mi quan h 1-nhiu gia B v C.
Bin son Nguyn Minh Thnh 3

Gio trnh C s d liu MySQL

Quan h 1-1 (One-to-One): Mt mu tin trong bng A ch c quan h vi mt mu tin trong bng B. V trong mt mu tin trong bng B ch c mt mu tin trong bng A. y l trng hp bt thng trong quan h, bi v hu nh thng tin quan h theo kiu ny c th s c lu tr trn cng mt bng. Trong trng hp to quan h 1-1, trc ht bn xem c th a cc d liu vo cng mt bng c hay khng. Nu v mt l do no m khng th lm c iu , sau y l mt vi cch t quan h: Nu hai bng c cng ch , ta lp mi quan h bng cch s dng kha chnh cho c hai bng. Nu hai bng c ch khc nhau vi kha chnh khc nhau, ta chn mt trong hai bng v t field dng lm kha chnh ca n trong bng cn li nh l kha ngoi. Bc 5: Tinh ch li thit k Sau khi ta to cc bng, cc field trong tng bng, thit lp quan h gia cc bng, chng ta cn xem xt li mt s vn sau: Nhp mt s mu tin kim tra sai st nh c thiu st hoc d tha hoc trng lp thng tin trong CSDL khng? Xem c thiu field no khng chn kha chnh cho mi bng cha Kim tra nu c trng lp thng tin trong mt bng khng. Nu c, v c th chia bng ra thnh hai bng vi quan h 1- nhiu. C bng no nhiu field, m t mu tin hay khng v c field no b trng trong mt s mu tin hay khng. Nu c hy thit k li
3. Cc bc chun ho

thc hin tt vic tnh ch li thit k, ta s da vo 3 nguyn tc chun ho sau. Phng thc chun ho 1 (1NF First Normal Form)

Bin son Nguyn Minh Thnh

Gio trnh C s d liu MySQL Quan h l 1NF nu ko cha cc thuc tnh lp, cc thuc tnh phi l n, ngha l gi tr ca cc l giao ca hng v ct phi c gi tr n, nh vy, mi quan h u l 1NF. Nu bng d liu cha cc thuc tnh lp th ko phi quan h, chuyn bng d liu c lp thnh quan h, c th tch cc thuc tnh lp thnh mt hoc nhiu bng khc v nu cn thit th tng cng kha cho cc bng mi ny. Tip tc xem xt cac sbng mi m bo sao cho cc bng ny cng l quan h, tc l t chun 1. Phng thc chun ho 2 (2NF Second Normal Form) Mt quan h R l dng chun 2(2NF) nu n l 1NF v cc ph thuc hm gia cc thuc tnh ngoi kha v kha u l cc ph thuc hm s ng, ni cch khc, mi thuc tnh ngoi kha u ko c ph thuc hm vo b phn ca kha.Nu quan h R cha nhng thuc tnh c ph thuc hm vo mt b phn ca kha th cn tch cc nhm thuc tnh ph thuc vo b phn ca kha v b sung thm cho cc nhm ny mt phn kha m chng c ph thuc hm, thnh quan h. Nhm cn li ta thnh mt quan h vi kha nh c. Cc quan h c to lp u l 2NF. Phng thc chun ho 3 (3NF Third Normal Form) Mt quan h R l dng chun 3 (3NF) nu n l 2NF v cc ph thuc hm gia cc thuc tnh kha ngoi v kha u l cc ph thuc hm trc tip-ngha l ko tn ti nhng ph thuc hm ngoi kha.. Nu R khng phi l 3NF, ngha l trong R tn ti thuc tnh khng ph thuc hm trc tip vo kha, th tch cc nhm thuc tnh c ph hm vo thuc tnh kha thnh mt quan h. kha ca quan h mi ny chnh l thuc tnh m chng c ph thuc hm.

Bin son Nguyn Minh Thnh

Gio trnh C s d liu MySQL

Bi 2

TNG QUAN V CSDL MYSQL

I. Tng quan v MySQL


MySQL l mt h qun tr c s d liu a lung m ngun m theo m hnh client/server, v mc chuyn dng cho doanh nghip. MySQL c pht trin bi mt cng ty t vn v pht trin ng dng ca Thu in c tn l TcX. MySQL l mt h qun tr c s d liu c tc truy xut rt nhanh v uyn chuyn. MySQL c pht trin ph bin cho h iu hnh Linux, tuy nhin, vi cc phin bn mi hin nay, n c th s dng tt trn ca h iu hnh Windows. Chng ta cn phn bit gia MySQL v SQL, SQL l ngn ng dng truy xut c s d liu c hng phn mm IBM pht trin v c s dng a s cc h qun tr CSDL hin nay nh MySQL, Microsoft SQL Server, DB2, Sysbase Adapter Server, SQL Lite,Oraccle 1. M hnh Client/Server

M hnh client server (Client server model) l mt m hnh c s dng kh lu trong lnh vc lp trnh v pht trin ng dng, m hnh mng trong mt cng ty, c quan Trong m hnh ny, s c mt my ch (server) c cu hnh kh mnh v kh nng lu tr, b nh, tc x l c t lm trung tm lu tr tt c cc d liu, qun l cc my con trong c quan, cng ty hay quy trnh pht trin ng dng no . V tnh cht c th ca nhiu nhim v khc nhau nn my ch c chia lm nhiu loi : Database server (my ch yu lu tr, qun l c s d liu), Web server (my ch lu tr, qun l ng dng web), Network server (my ch qun l h thng mng) y, chng ta s ch bn n Database server. Cc Database server s c ci t mt hoc nhiu h qun tr CSDl khc nhau, dng lu tr v x l cc tin trnh truy cp, truy xut, thng k lin quan n d liu. Khi ny, client (my con, my khch) s ng vai tr gi cc yu cu, cu hi n server, khi server s tip nhn v x l cc yu cu v gi kt qu v cho client. M hnh ny cn c th gi l m hnh 2 tng (2-tiers). 2. Quy trnh ci t (trn Windows) a. Download MySQL ti ng dng MySQL ta truy cp vo a ch trang web http://dev.mysql.com/downloads/. Hin nay, ti thi im vit ti liu ny, phin bn mi nht ca MySQL l 5.4 beta, tuy nhin cc bn nn s dng phin bn 5.1 (phin bn c khuyn co s dng recommend), trong gio trnh ny s s dng phin bn 5.1. Bn phi chn phin bn ph hp vi h iu hnh (32bit hay 64bit). Nu bn s dng Windows 32bit (nh Win2000, WinXP, Win7 32bit, WinVista 32bit) th hy chn h iu hnh Windows, ngc li chn Windows x64. Sau khi chn h iu hnh, bn hy ti file Windows MSI Installer (file *.msi) cho tin vic ci t. b. Quy trnh ci t

Bin son Nguyn Minh Thnh

Gio trnh C s d liu MySQL Sau khi ti v, bn s double click vo file mysql-essential-5.1.39-win32.msi tin hnh ci t.

Mn hnh cho ca qu trnh ci t, click Next.

Mn hnh chn phng thc ci t, ta chn Typical (ci t mc nh), chng trnh s c ci t vo C:\Program Files\MySQL\MySQL Server 5.1. Click Next.

Mn hnh tin trnh ci t.

Bin son Nguyn Minh Thnh

Gio trnh C s d liu MySQL

Mn hnh gii thiu cc tnh nng ca MySQL, click Next.

Mn hnh tu chn sau ci t. o Configure MySQL Server now : tip tc tin hnh cu hnh server sau khi ci t xong. o Register the MySQL Server now : tip tc tin hnh ng k vi MySQL. Bn chn tu chn 1, b tu chn 2, click Next.

Mn hnh tin hnh cu hnh Server, click Next


Bin son Nguyn Minh Thnh 8

Gio trnh C s d liu MySQL

Mn hnh tu chn cch cu hnh : o Detailed Configuration : cu hnh chi tit server. o Standard Configuration : cu hnh theo chun mc nh. Chn tu chn 1, click Next.

Mn hnh la chn loi server thch hp : o Developer Machine : la chn ny MySQL s s dng t b nh nht, thch hp cho cc my pht trin cc ng dng, website ca cc lp trnh vin. o Server Machine : la chn ny thch hp cho cc hosting server, chuyn cung cp dch v lu tr CSDl online. o Deticated MySQL Server Machine : tu chn ny ch thch hp cho cc server chuyn chy MySQL, khng chy thm dch v no khc. MySQL s s dng trn b nh ca my tng tc truy xut CSDL. Bn chn tu chn 1, click Next.

Bin son Nguyn Minh Thnh

Gio trnh C s d liu MySQL

Mn hnh tu chn phng thc ti u ho CSDL: o Multifunctional Database : phng thc ti u ho chung, thch hp cho CSDL s dng vi nhiu mc ch khc nhau. o Transactional Database Only : Ti u ho s dng kiu bng InnoDB,thch hp cho CSDL s dng nhiu n Transaction. o Non-Transactional Database Only : ti u ho s dng bng kiu MyISAM, thch hp cho cc CSDL lu v phn tch log. Bn chn tu chn 1, click Next.

Mn hnh la chn ni lu tr CSDL, thng s c lu tr trong th mc MySQL Datafiles trong th mc ci MySQL (C:\Program Files\MySQL\MySQL Server 5.1\MySQL Datafiles). Bn c th i v tr lu bng cch click du ()

Bin son Nguyn Minh Thnh

10

Gio trnh C s d liu MySQL

Mn hnh la chn s lng kt ni n server. Bn hy tu chn theo s lng m bn c lng, tuy nhin s lng hp l l khong 15 20 cho cc CSDL ginh cho cc ng dng (nh Website).

Mn hnh tu chn phng thc kt ni n server, mc nh, click Next.

Mn hnh tu chn b k t (charset) cho CSDL. Chn tu chn Best Support for Multilingualism thch hp cho lu ting Vit (h tr UTF-8).

Bin son Nguyn Minh Thnh

11

Gio trnh C s d liu MySQL

Mn hnh la chn phng thc chy MySQL : o Install As Windows Service : chy MySQL nh l mt dch chy n. o Include Bin Directory in Windows PATH : chn ng dn gc ca MySQL vo cc bin mi trng ca Windows, khng cn khai bo ng dn khi chy. Chn c 2 tu chn, click Next.

Chn password cho ti khon cao nht ca MySQL (ti khon root). Hy nh tht k password ny.Khng chn tu chn 2 v l do bo mt.

Click Execute chy v khi ng dch v.


Bin son Nguyn Minh Thnh 12

Gio trnh C s d liu MySQL 3. Khi ng & tt dch v MySQL

Sau khi ci t, MySQL Server s chy nh l mt dch v (chng trnh chy n) trn Windows. By gi, my ca bn va ng vai tr l mt server va ng vai tr l mt client, v vy tn server ca my s l localhost. tt dch v MySQL Server ta s vo m Task Manager, chn th Proccess, tm n tin trnh mysqld, click chn v nhn End Task tt dch v.

khi ng li dch v, ta vo th mc ci t MySQL (C:\Program Files\MySQL\MySQL Server 5.1\bin), double click vo file MySQLInstanceConfig.exe, thc hin li tin trnh cu hnh Server v chy dch v.

4.

Thao tc ti client

Trong th mc ci t, th mc Bin cha tt c cc file thc thi, cc file lnh ca MySQL, cc file ny thng c chy giao din dng lnh (command line). chy cc thao tc pha client ta thc thi file mysql.exe command line vi cu lnh : mysql u root p (hoc vo Start Programs MySQL MySQL Command Line Client).

Bin son Nguyn Minh Thnh

13

Gio trnh C s d liu MySQL

Nhp password ng nhp MySQL server, do mi ch c ti khon root c to, nn bn hy nhp password ca root khi ci t ng nhp server vi ti khon root.

Mn hnh sau khi ng nhp thnh cng s l cu cho welcome thc hin truy vn CSDL ta g lnh v kt thc bng u ";". Cc lnh ca MySQL s c trnh by chi tit phn sau. Vd : thc hin lnh thot chng trnh ta g : quit; Hoc lnh : exit; Ch : trong MySQL cu khng phn bit ch hoa, ch thng. 5. Thay i password cho ti khon root

Mt khu ca root l rt quan trng, v root l ti khon cao nht ca MySQL Server, do nu mt khu b ngi khc bit s c th truy cp d liu v lm tt c cc thao tc trn . V vy vic thay i mt khu root khi cn thit l vic cn lm. thc hin thay i mt khu root, ta thc hin cu lnh sau : set password for root@localhost = password("new_password"); thay i password cho cc ti khon khc, ta thc hin lnh : set password for acount_name@server_name = password("new_password"); Trong : account_name : tn ti khon. server_name : tn server mun truy cp, nu server cng l my cc b, ta s dng localhost. status;

xem tnh trng ca server, ta thc hin lnh

II. Cc thao tc c bn trn CSDL


1. Xem cc c s d liu xem cc c s d liu hin c trn server, ta dng lnh : show database;

Bin son Nguyn Minh Thnh

14

Gio trnh C s d liu MySQL 2. To c s d liu mi

Sau khi phn tch v thit k c s d liu, ta c th xy dng c s d liu trn mt h qun tr. xy dng, thao tc u tin l to c s d liu, CSDL trn MySQL ta dng lnh : create database database_name; Trong : database_name l tn CSDL mun to. Vd : create database QLBanHang; Sau khi to CSDL, thc hin truy xut ln CSDL no , ta dng lnh : use database_name; vd : use QLBanHang; 3. Xo c s d liu xo mt CSDL, ta dng lnh : drop database database_name; vd : drop QLBanHang; 4. Thm ti khon ngi dng (user)

Sau khi to c c s d liu, ta c th to thm cc ti khon ngi dng khc s dng CSDL (khng nn ch ti khon root s dng). thm c ti khon ngi dng ln mt CSDL ta phi hiu cch MySQL qun l user trn cc CSDL nh th no. MySQL c mt CSDL mc nh cng mang tn mysql. Trong CSDL ny bao gm 3 bng : user, db, host. Bng user : dng qun l cc ti khon ngi dng, mt khu, thuc nhng host no, v ti khon c nhng quyn hn g. Bng db : dng qun l cc ti khon ngi dng c php truy cp nhng CSDL no. Bng host : dng qun l cc database thuc nhng hostname no. Trc tin, ta phi thm vo bng host dng d liu qun l CSDL va to c truy cp trn nhng hostname no. Vd : CSDL vi tn l QLDonDatHang, c to trn server localhost. use mysql; insert into host values('localhost','QLDonDatHang','Y','Y','Y','Y','Y','Y','Y','Y', 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); Tip theo, ta phi thm vo bng user ti khon mun to. insert into user values('localhost','inzaghithanh',password('9967722'),'Y','Y','Y', 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y', 'Y','Y','Y' ,'', '', '', '',20,20,20,20); Sau cng, ta s thm vo bng db cho php ti khon va to s dng CSDL. insert into db values('localhost','QLDonDatHang','inzaghithanh','Y','Y','Y','Y', 'Y', 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

Bin son Nguyn Minh Thnh

15

Gio trnh C s d liu MySQL

Bi 3

BNG - TABLE

I. nh ngha
Bng l ni lu tr d liu. Trc khi thc hin truy vn v s dng d liu, th nhim v u tin l phi lu tr n. Bng c th cha d liu v cc i tng thng tin nh HNG HA, NHN VIN. Mi dng (row) ca bng cha mt th hin ring ca i tng no . V d thng tin v mt hng ha, thng tin v mt nhn vin. Dng c thnh lp t cc ct (column), mi ct l mt thng tin v i tng c lu tr trong bn. V d trong bng NHANVIEN chng ta c cc field nh sau: Field MaNV(m nhn vin), field HoNV (h v ch lt), field TenNV (tn), field Nu (nam/n), field NgaySinh (ngy sinh)..

II. Cc kiu d liu


MySQL cung cp cc kiu d liu sau : 1. Kiu d s (numeric) Tn kiu (type name) Tinyint Smallint Mediumint Int B nh (memory space) bytes 1 2 3 4 -128 172 -32768 32767 -8388608 8388607 -2147483648 2147483647 -9223372036854775808 Bigint Float (M,D) Double (M,D) Decimal (M,D) 2. 8 4 8 M+2 9223372036854775807 0 255 0 65535 0 16777215 0 4294967295 0 18446744073709550 615 Vng gi tr (value range) Vng gi tr dng (Unsigned)

Kiu chui k t (string) Tn kiu Char(x) Varchar(x) Tinytext Tinyblob Text Blob Kch thc ti a (bytes) 255 255 255 255 65535 65535 Khong lu tr (bytes) X X+1 X+1 X+2 X+2 X+2
16

Bin son Nguyn Minh Thnh

Gio trnh C s d liu MySQL Mediumtext Mediumblog Longtext Longblob 3. Kiu hn hp (Miscellaneous) 1.6 MB 1.6 MB 4.2 GB 4.2 GB X+3 X+3 X+4 X+4

Enum : kiu d liu lit k, cho php nh ngha trc cc gi tr cho mt ct, ct s ch lu tr mt trong cc gi tr nh sn . Vd : CREATE TABLE Test( Return ENUM('Y','N') DEFAULT 'N', Size ENUM('S','M','L','XL','XXL'), Color ENUM('Black','Red','White') ) Set : kiu d liu lit k, tng t enum nhng cho php ct lu tr nhiu gi tr trong cc gi tr nh sn, mi gi tr cch nhau bi du ', ' Vd : CREATE Table Test( Advertiser SET('Web Page','Television','Newspaper') ) 4. Kiu ngy gi Tn kiu DATETIME DATE TIME YEAR TIMESTAMP nh dng chun YYYY-MM-DD HH:MM:SS YYYY-MM-DD HH:MM:SS YYYY (Xem phn sau) Gi tr 0 0000-00-00 00:00:00 0000-00-00 00:00:0 0000 00000000000000 (di nht)

nh dng kiu TIMESTAMP Tn kiu TIMESTAMP(14) TIMESTAMP(12) TIMESTAMP(10) TIMESTAMP(8) TIMESTAMP(6) TIMESTAMP(4) TIMESTAMP(2) nh dng YYYYMMDDHHMMSS YYMMDDHHMMSS YYMMDDHHMM YYYYMMDD YYMMDD YYMM YY

Bin son Nguyn Minh Thnh

17

Gio trnh C s d liu MySQL 5. Cc t kho nh ngha ct (modifiers) T kho Auto_Increment Binary Default Not null Null Primary key Unique Unsigned Zerofill Kiu d liu thch hp Int Char, Varchar Tt c tr text, blob Tt c Tt c Tt c Tt c Kiu numeric Kiu numeric ngha T ng tng d liu ca ct Thit lp lu tr chui nh phn (phn bit ch hoa thng) Thit lp gi tr mc nh cho ct Khng cho php gi tr null Cho php gi tr null Thit kho chnh cho ct Gi tr duy nht Ch lu gi tr s nguyn in gi tr 0 cho chiu di s

III. Cc thao tc trn bng


1. To bng To bng mi Create table table_name ( column_names datatypes modifiers) Vd : To bng Customers (khch hng)
CREATE TABLE Customers (Customer_ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT, First_Name VARCHAR(20) NOT NULL, Last_Name VARCHAR(30) NOT NULL, Address VARCHAR(50), City VARCHAR(20), State VARCHAR(2), Zip VARCHAR(20), E_Mail VARCHAR(20), Age INT, Race VARCHAR(20), Gender ENUM('M', 'F') DEFAULT 'F', Eye_Color VARCHAR(10), Hair_Color VARCHAR(10), Favorite_Activity ENUM('Programming', 'Eating', 'Biking', 'Running', 'None') DEFAULT 'None', Favorite_Movie VARCHAR(50),Occupation VARCHAR(30), Smoker CHAR(0));

To bng tm (bng ph) mi Create temporary table table_name (column_names datatypes modifiers) To bng tm (bng ph) t mt cu truy vn Create temporary table select column_name from table_name vd : create temporary table select * from Customers To bng sao chp t mt bng khc Create table table_name select column_name from table_name_1 vd : create table Customers_copy select * from Customers Kim tra s tn ti ca bng trc khi to
Bin son Nguyn Minh Thnh 18

Gio trnh C s d liu MySQL Create table If not Exists table_name (column_names datatypes modifiers) 2. Xem thng tin ca CSDL, Bng Xem cc bng ca CSDL Show tables [from database_name]; Xem cc ct ca bng Show columns [from table_name]; Xem cu trc ca bng Discribe table_name [from database_name]; 3. Xo bng Drop table table_name [from database_name]; 4. Thay i cu trc bng Thay i tn ct Alter table table_name change old_column_name new_column_name old_datatype; Vd : ALTER TABLE Customers CHANGE First_Name FirstName VARCHAR(20); Thay i kiu d liu Alter table table_name change column_name column_name new_datatype; Vd : ALTER TABLE Customers CHANGE Last_Name Last_Name VARCHAR(50); i tn bng Alter table table_name Rename new_table_name; Vd : ALTER TABLE Customers RENAME Customer_Table; Thm ct vo bng Alter table table_name add column_name datatype; Vd : ALTER TABLE Customer ADD Last_Name VARCHAR(30); Xo mt ct Alter table table_name Drop column_name; Vd : ALTER TABLE Customers DROP Last_Name; Thm kho chnh Alter table table_name Add Primary Key (column_names); Vd : ALTER TABLE Customers ADD PRIMARY KEY (Customer_ID); Xo kho chnh Alter table table_name Drop Primary Key; 5. Chn d liu vo bng Chn mt dng d liu
Bin son Nguyn Minh Thnh 19

Gio trnh C s d liu MySQL Insert into table_name (column_names) values (column_values); Vd : To bng mt bng c tn Test_Table v chn d liu CREATE TABLE Test_Table (Test_ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT, Test_Name VARCHAR(30), Test_Date DATETIME, Test_Giver VARCHAR(30)); INSERT INTO Test_Table (Test_ID, Test_Name, Test_Date, Test_Giver) VALUES (NULL, 'Test','2000-01-01','Glen'); Chn nhiu dng d liu Insert into table_name (column_names) values (column_values), (column_values), (); Vd : INSERT INTO Test_Table (Test_ID, Test_Name, Test_Date, Test_Giver) VALUES (NULL, 'John','2000-01-01','Glen'), (NULL, 'Thomas','2000-01-01','Jose');

Bin son Nguyn Minh Thnh

20

Gio trnh C s d liu MySQL

Bi 4

THAO TC TRN CSDL

I. Import d liu
Sau khi thit k v to CSDL, ta c th nhp d liu vo cc bng bng cc dng lnh, nhng phng php s khng kh thi nu chng ta c mt ngun d kh ln t trc. Ngoi ra, nu ta mun ly d liu t mt h qun tr khc, th ta cng khng th nhp tng dng lnh. V vy, cc h qun tr lun c chc nng Import cho php ngi dng chn mt lng d liu ln c trc vo trong CSDL mt cch nhanh nht v t tn thi gian. 1. Import t file text

thc hin Import d liu t mt file text, ta s dng chng trnh mysqlimport.exe trong th mc Bin ci t MySQL. Cu lnh import command line nh sau : Mysqlimport.exe database_name table_name.txt Vd : mysqlimport QLBanHang Customer.txt D liu trong file text s c ti vo bng c tn cng vi tn file text. Nu bng cha tn ti, chng trnh s t to bng mi. nh dng ca file text phi c trnh by theo quy nh sau : Mi dng d liu c trnh by trn 1 dng. Gi tr text phi c ng bng du nhy n (') hoc nhy kp ("). Cc gi tr cch bi du phy (,). Cc gi tr phi c sp theo th t tng ng

Vd : khi import vo bng c cc ct sau Customer_ID int, Last_Name varchar(25), First_Name varchar(15), d liu file text phi theo mu sau : 1, "Nguyen Minh","Thanh" Cc tu chn ca chng trnh mysqlimport Tu chn -d hoc --delete -f hoc --force -i hoc --ignore -L hoc -local -l hoc -lock-tables -r hoc -replace --fields-enclosed-by=char --fields-escaped-by=char --fields-optionally-terminatedby=char --fields-terminated-by=char --lines-enclosed-by=str
Bin son Nguyn Minh Thnh

ngha Xo tt c d liu ang c trong bng trc khi chn d liu mi Tip tc chn d liu khi gp li B qua nhng dng d liu chn ging vi nhng dng c d liu duy nht Ch nh s dng file import trn my cc b Kho cc bng trc khi chn Thay th cc dng d liu duy nht bng dng d liu chn Ch nh k t ng d liu ( vd : 'ABC') Ch nh k t loi tr cho cc k t c bit Ch nh k t phn chia cc gi tr Ch nh k t phn chia cc gi tr Ch nh k t kt thc mt dng d liu
21

Gio trnh C s d liu MySQL V d : mt file text c tn Orders.txt (Ho n) vi d liu theo nh dng sau : "1", "ORD89876", "1 Dozen Roses", "19991226" Cu lnh import c cu trc sau : Mysqlimport.exe frl fields-enclosed-by=" --fields-terminated-by=, QLBanHang Orders.txt 2. Import t file sql

Mt cch khc import d liu l thc thi hng loi cc cu lnh sql t mt file *.sql (hay cn gi l batching). Mt mu v d v file data.sql nh sau : USE QLBanHang; INSERT INTO Customers (Customer_ID, Last_Name, First_Name) VALUES(NULL, "Nguyen Minh","Thanh"); INSERT INTO Customers (Customer_ID, Last_Name, First_Name) VALUES(NULL, "Nguyen Thien","Nam"); INSERT INTO Customers (Customer_ID, Last_Name, First_Name) VALUES(NULL, "Nguyen Khoa","Danh"); thc thi file sql ta s s dng lnh sau : Load Data Infile filename.sql Into Table table_name; Vd : LOAD DATA INFILE "C:\MyDocs\data.sql" INTO TABLE Orders; Nu mun ch nh file sql nm trn my cc b, c nhn : Load Data Local Infile filename.sql Into Table table_name; thay th cc dng gi tr trng nhau : Load Data Local Infile filename.sql Replace Into Table table_name; Tuy nhin, ta cng c th s dng phng thc Load Data ny cho cc file text Load Data Infile filename.txt Into Table table_name; Cc tu chn c dng thm khi ti d liu t file text (c dng sau t kho Fields) : Terminated by char Enclosed by char Escaped by char Vd : LOAD DATA INFILE "Orders.txt" REPLACE INTO TABLE Orders FIELDS TERMINATED BY ',' ENCLOSED BY '"'; Ch nh cc ct c ti d liu: vd : LOAD DATA INFILE "/home/Order.txt" INTO TABLE Orders (Order_Number, Order_Date, Customer_ID);

Bin son Nguyn Minh Thnh

22

Gio trnh C s d liu MySQL 3. Import t file Access

import d liu t mt file Access, ta s dng phn mm Access xut d liu ra mt file text trc, ri dng file text ti vo trong MySQL. V d ta c mt bng d liu Orders sau trong Access :

Ta s dng chc nng Export (trong menu File), ca s Export s xut hin :

Nhp tn file trong filename v click vo nt chn Save Formatted lu gi cc nh dng ca d liu. Tip theo, ta s chn du phn cch gia cc gi tr (Delimited : phn cch bng du phy, Fixed Width : phn cch bng khong trng v c canh l).

Bin son Nguyn Minh Thnh

23

Gio trnh C s d liu MySQL

Chn ng dn cho file xut

Kt qu xut nh sau :

S dng cc tho tc import t file text import file d liu va xut.


Bin son Nguyn Minh Thnh 24

Gio trnh C s d liu MySQL

II. Export d liu


1. Chng trnh mysqldump export cu trc nh ngha v c d liu trong bng ra file .txt ta dng chng trnh mysqldump trong th mc Bin ca MySQL. File kt xut s nm trn server. Mysqldump.exe u username p database_name table_name > filename.txt vd : mysqldump u root p qlBanHang Customers > C:\Customer.txt Sau khi g lnh, ta s nhp password ca ti khon s dng. Nu bn khng mun to tng file .txt cho tng bng, m mun lm cho c CSDL, ta s dng lnh Mysqldump.exe u username p database_name > filename.txt 2. Lnh Select Into Outfile

thc hin kt xut d liu t mt cu truy vn (s trnh by chng sau) ra file .txt trn server, ta thc hin cu lnh sau : Select column_names from table_name Into Outfile filename.txt [ Fields Terminated by char Enclosed by char Line Terminated by char ] vd : SELECT * FROM Customer INTO OUTFILE 'c:\customers.txt'
FIELDS TERMINATED BY ',' ENCLOSED BY ' " ' LINES TERMINATED BY '\r\n';

Tuy nhin, cu lnh ny s kt xut file trn server. 3. Chng trnh mysql client

Hai thao tc trn u kt xut file trn server, nu bn pht trin ng dng trn my cc b (local) th my s va ng vai tr l mt server va ng vai tr l mt client. Tuy nhin, nu bn lm vic thc s trong mi trng server/client, th vic kt xut ny s lm mt thi gian l bn phi chp file v my. thc hin thao tc kt xut trc tip ln my client ta s dng chng trnh mysql nhng khng ng nhp theo cch chng ta hay lm. Cu lnh thc thi nh sau : Mysql.exe e "Select column_names from table_name" --skip-column-names \ database_name > filename.txt Vd : Mysql.exe -e "SELECT * FROM Customers" --skip-column-names \ QLBanHang > customers.txt

Bin son Nguyn Minh Thnh

25

Gio trnh C s d liu MySQL

Bi 5

TRUY VN QUERY

I. nh ngha
1. nh ngha Truy vn l s dng cc cu lnh ca ngn ng SQL (Structured Query Language ngn ng truy vn c cu trc) thc hin vic to (create), thm (insert), chn (select), xo (delete) v sa (Update, Alter) d liu, bng, ct, dng Cc bi trc chng ta cng s dng mt s cu lnh v to v chnh sa cu trc bng, lnh to CSDL v chn d liu bi ny, chng ta s tp chung vo vn truy vn d liu, tc l chn, thng k, xo v cp nht d liu. 2. Cc t kho Create Alter Insert Select From On Order by Join Cross Join Right Join Limit Drop Delete Update Set Into Where Group by Left Join And Or Like As

Cc t kho ca ngn ng truy vn SQL

Cu trc ca mt cu lnh truy vn d liu nh sau : SELECT * | column_names FROM table_names WHERE criterias GROUP BY column_names ORDER BY column_names

II. Cc thao tc truy vn d liu


1. Truy vn chn d liu Chn tt c ct trong bng SELECT * FROM table_name Vd : select * from Customers; Chn mt vi ct trong bng SELECT column_names FROM table_name Vd : select Lastname, Firstname from Customers; Chn d liu vi iu kin trch lc d liu SELECT * | column_names FROM table_name WHERE criteria_1 and|or criteria_2 Vd : Select * from Customers Where Fistname="Thnh" or Fistname="Nam";
Bin son Nguyn Minh Thnh 26

Gio trnh C s d liu MySQL Truy vn gn ging vi chui k t, ta s dng k t thay th (%) Vd : Select * from Customers Where Lastname like ="Nguyn%"; Gii hn s lng dng kt qu SELECT * | column_names FROM table_name WHERE criterias LIMIT number? Vd : Select * from Customers Limit 5; SELECT * | column_names FROM table_name_1, table_name_2 WHERE table_relationship Vd : Select * from Customers C, Orders O Where C.Customer_ID = O. Customer_ID; Sp xp d liu SELECT *|column_names FROM table_names WHERE table_relationships and|or criterias ORDER BY column_names ASC|DESC Vd : Select * from Customers C, Orders O Where C.Customer_ID = O. Customer_ID; Order by OrderID; t tn mi cho ct - bng : Table_name AS new_table_name Column_name AS new_column_name Vd : Select Lastname as HoLot, Firstname as Ten, Order_ID as MaHoaDon From Customers As C, Orders As O Where C.Customer_ID = O. Customer_ID; Order by Order_ID; 2. Truy vn thng k d liu SELECT column_names, Aggregate_function(#column_name) FROM table_names where table_relationships and|or criterias GROUP BY column_names Vd : Select Customer_ID, Count(Order_ID) From Customers C, Orders O Where C.Customer_ID = O.Customer_ID Group by Customer_ID; Cc Aggregate_function (hm thng k) : Max(), Min(), Sum(), Count(Distinct), Avg(), Std(). Chn d liu t nhiu bng

Bin son Nguyn Minh Thnh

27

Gio trnh C s d liu MySQL Mnh Group by trong truy vn thng k c tc dng gom nhm cc d liu ging nhau ca cc ct v cc hm thng k s thng k trn cc nhm d liu . 3. Truy vn lng

Khi mt truy vn c s dng trong mt truy vn khc, th l cu truy vn lng. Cu truy vn bn trong gi l truy vn con (subquery). Vd : Select Customer_ID, Max(TongTri) as TongTriLonNhat From (Select Customer_ID, Sum(ThanhTien) As TongTri From Orders Group by Customer_ID) as A Group by Customer_ID; 4. Mnh Join Dng thit lp quan h gia cc bng khi thc hin truy vn. Inner Join : cc dng d liu c 2 bng s c gi li lm kt qu. y l mnh thng c dng nht. Vd : Select Lastname, Firstname, Order_ID From Customer as C (INNER) Join Order as O On C.Customer_ID = O.Customer_ID; Left Join : tr v cc dng d liu ca bng bn tri v cc dng c kt ni bn bng bn phi. Nu cc dng bn tri khng c kt ni vi ct no bn phi, th cc ct ca bng bn phi s l null. Vd : Select Lastname, Firstname, Order_ID From Customer as C LEFT Join Order as O On C.Customer_ID = O.Customer_ID; 5. Truy vn chn d liu INSERT INTO table_name(column_names) VALUES(column_values) Vd : Insert Into Customers(Customer_ID, Firstname, Lastname) Values(null, "Thnh","Nguyn Minh"); 6. Truy vn xo d liu DELETE FROM table_names WHERE criterias Vd : Delete From Customers Where Customer_ID=2; 7. Truy vn cp nht d liu UPDATE table_name SET column_name=value, WHERE criterias Vd : Update From Customers Set Firstname="Danh" Where Customer_ID=3;

III. Ton t & hm


1. Ton t Php cng / tr / nhn / chia : dng tnh ton 2 ct d liu s Vd_1 : Select ThanhTien + Thue as TongSoTien From Orders as HoaDon; Vd_2 : Select ThanhTien - GiamGia as TongSoTien From Orders as HoaDon;
Bin son Nguyn Minh Thnh 28

Gio trnh C s d liu MySQL Vd_3 : Select SoLuong * DonGia as ThanhTien From Orders as HoaDon; Php ghp chui : Vd : Select Lastname & Firstname as Fullname From Customers; Php IN : xc nh mt gi tr c nm trong mt tp hp Vd : Select Customer_ID, Lastname, Firstname From Customer Where Customer_ID In (Select Customer_ID, Count(Order_ID) From Customer C, Order O Where C.Customer_ID = O.Customer_ID Group by Customer_ID Order By Count(Order_ID)) 2. Hm ton hc Mod (s b chia, s chia) : ly phn d ca php chia. Vd : Select Mod(ThanhTien,2) From Orders as HoaDon; Round(s, v tr lm trn) : hm lm trn s. Vd : Select Round(ThanhTien,1) From Orders as HoaDon; V tr lm trn : 2 : 2 s thp phn 1 : 1 s thp phn 0 : 0 s thp phn -1 : hng n v -2 : hng chc 3. Hm iu kin IF(logic_expression,true_result,false_result) : hm kim tra iu kin ng/sai. Vd : Select If(SoLuong>20,5%,2%) as GiamGia From Orders; IFNULL(result_1,result_2) : hm tr v kt qu result_1 nu n khng null ngc li s tr v result_2. Vd : Select IfNull(10/0,1) as Exam CASE value WHEN expression THEN result_1 ELSE result_2 : hm tr v result_1 khi expression ng, ngc li tr v result_2. Vd : Select CASE 1 WHEN Column1="Y" THEN 1 WHEN Column2="Y" THEN 2 WHEN Column3="Y" THEN 3 ELSE "NONE"; 4. Hm logic Cc hm logic c dng trn cc biu thc iu kin (logic_expression). AND : php v. OR : php hoc. NOT : php ph nh. Vd : Select * From Orders O, OrderDetails D, Products P Where O.Order_ID = D.Order_ID AND D.Product_ID = P. Product_ID;

Bin son Nguyn Minh Thnh

29

Gio trnh C s d liu MySQL 5. Hm chui LTRIM, RTRIM, TRIM : ct b nhng khong trng tha. Vd : Select LTRIM(" ABC") "ABC" Vd : Select RTRIM("ABC ") "ABC" Vd : Select TRIM(" ABC ") "ABC" Ta cng c th s dng ct b chui k t c ch nh vi cc t kho ( SUBSTRING(chui, v tr bt u) : ly mt chui con t v tr bt u Vd : Select Substring("Hello World",7) "World" LOCATE(chui 1, chui 2, v tr bt u) : xc nh v tr chui 1 trong chui 2 t v tr bt u. Vd : Select Locate("lo","Hello World",1) 4 REPLACE(chui 1, chui 2, chui 3) : thay th chui 2 bng chui 3 trong chui 1. Vd : select Replace("Filename.xxx","xxx","123") "Filename.123" 6. UCASE, LCASE : chuyn ch thng thnh in hoa v ngc li. REVERSE : o ngc chui.

Hm thi gian MONTHNAME(date) : tr v tn thng ca date. Vd : Select monthname(20000105) January DAYOFYEAR(date) : tr v s ngy tnh t u nm n date. Vd : Select dayofyear(20000201) 32 Vd : Select dayofyear("2000/02/01") 32 DAYOFMONTH(date) : tr v s ngy tnh t u thng n date. Vd : Select dayofyear(20000201) 1 Vd : Select dayofyear("2000/02/01") 1 Vd : Select dayofyear("00-02-01") 1 DAYOFWEEK(date) : tr v s ngy tnh t u tun n date. Vd : Select dayofyear(20000201) 3 Vd : Select dayofyear("0-2-1") 3 YEAR(date) : tr v nm ca date. QUARTER(date) : tr v qu ca date. MONTH(date) : tr v thng ca date. DAY(date) : tr v ngy ca date. WEEK(date) : tr v s tun ca date tnh t ngy u tin ca nm. YEARWEEK(date) : tr v s tun ca date tnh t ngy u tin ca nm. NOW() , SYSDATE(), CURRENT_TIMESTAMP : tr v ngy gi h thng. Vd : Select NOW() 2009-10-28 18:05:11

Bin son Nguyn Minh Thnh

30

Gio trnh C s d liu MySQL Vd : Select NOW()+0 20091028180511 CURDATE() , CURRENT_DATE : tr v ngy ca h thng. CURTIME() , CURRENT_TIME : tr v ngy ca h thng. HOUR(time) : tr v gi ca time. MINUTE(time) : tr v pht ca time. SECOND(time) : tr v giy ca time. DATE_FORMAT(date,format) : nh dng date theo format. TIME_FORMAT(time,format) : nh dng date theo format. Bng tham s nh dng %r 12-gi (hh:mm:ss AM|PM) %T 24-gi (hh:mm:ss AM|PM) %Y nh dng nm, 4 ch s %y nh dng nm, 2 ch s %m Gn s 0 vo u thng (01, 02) %c B s 0 u thng (1, 2) %M Tn thng (y ) %b Tn thng (vit tt) %D Ngy (1st, 2nd) %d Ngy c s 0 u (01, 02, 03) %e Ngy khng c s 0 u (1, 2, 3) %W Ngy trong tun (Sunday, Monday) %a Ngy trong tun (vit tt) %H Gi (00, 0123) %k Gi (0, 1, 2,23) %h Gi (01, 02, 12) %L Gi (01, 02, 12) %I Gi (1, 2, 12) %i Pht (00, 01,59) %S Giy (00, 01,59) %s Giy (00, 01,59) %P AM | PM %U S tun trong nm (vi Sunday l ngy u tin) $u S tun trong nm (vi Monday l ngy u tin) %X&%V Nm v s tun (vi Sunday l ngy u tin) %x&%v Nm v s tun (vi Month l ngy u tin) %j S ngy trong nm (001, 002,366) %w S ngy trong tun (0 = Sunday, 1 = Monday) %% nh dng % Vd : Select Date_Format("1999-12-31 23:00:00","%r on % W") kt qu : 11:00:00 PM on Friday TO_DAYS(date) : tr v s ngy t ngy u tin sau Cng Nguyn n date. Vd : TO_DAYS("2000-01-01") 730485
Bin son Nguyn Minh Thnh 31

Gio trnh C s d liu MySQL FROM_DAYS(number) : tr v ngy sau Cng Nguyn number ngy. Vd : FROM_DAYS(1000000) 2737-11-28 TIME_TO_SEC(time) : tr v thi gian tnh bng giy t 0:00:00 n time. SEC_TO_TIME(seconds) : tr v thi im sau 0:00:00 mt khong thi gian l seconds giy. DATE_ADD(date, INTERVAL expression type) : cng thm mt khong thi gian vo date. ADDDATE(date, INTERVAL expression type) : cng thm mt khong thi gian vo date. DATE_SUB(date, INTERVAL expression type) : bt i mt khong thi gian trong date. SUBDATE(date, INTERVAL expression type) : bt i mt khong thi gian trong date. Vd: ADDDATE("1980-07-04",INTERVAL 15 YEAR) 1995-07-04 Vd: SUBDATE(20001201, INTERVAL "10 4" YEAR_MONTH) 1990-08-01 Bng cc gi tr Type trong cng thc Type SECOND MINUTE HOUR DAY MONTH YEAR MINUTE_SECOND HOUR_MINUTE DAY_HOUR YEAR_MONTH HOUR_SECOND DAY_MINUTE DAY_SECOND nh dng d liu Giy Pht Gi Ngy Thng Nm "Pht : Giy" "Gi : Pht" "Ngy Gi" "Nm Thng" "Gi : Pht : Giy" "Ngy Gi : Pht" "Ngy Gi : Pht : Giy"

Bin son Nguyn Minh Thnh

32

Gio trnh C s d liu MySQL

Bi 6

FUNCTION PROCEDURE TRIGGER

I. Function
Function l phng thc dng nh ngha ra cc hm mi do chnh ngi qun tr CSDL to ra. Function dng to ra cc hm tng t nh nhng hm c trnh by trn (NOW(), TRIM()), Function s c nh ngha bi mt chng trnh (cc dng lnh ca MySQL ghp li, mi dng lnh s c kt thc bng du ;) thc hin mt yu cu tnh ton no v tr v mt gi tr (kt qu) m ta cn. to c Function bn cn c quyn CREATE ROUTINE. Vd : to hm tnh gi tr tui trung bnh ca khch hng trong Customers. 1. Cu trc to Function CREATE FUNCTION function_name(arguments) RETURNS datatype characteristics BEGIN RETURN value; END Trong : Function_name : tn function mun to Arguments : danh sch cc tham s cn thit cho function Datatype : kiu d liu m function tr v Characteristics : cc c trng ca function DETERMINISTIC, NO SQL, READS SQL DATA RETURN : kt qu tr v ca function. Vd : to hm tnh gi tr tui trung bnh ca khch hng trong Customers. CREATE FUNCTION TuoiTB() RETURNS Float Reads SQL Data BEGIN RETURN select avg(Year(Birthday)) From Customer; END 2. S dng Function

Ta c th dng Function mi to nh cc function c sn ca MySQL ( bi 3). Function s c lu li trong chnh CSDL ang s dng. Tuy nhin, chng ta khng th lit k danh sch cc Function, v vy chng ta phi nh cc Function to. Vd : Select TuoiTB();

Bin son Nguyn Minh Thnh

33

Gio trnh C s d liu MySQL

II. Procedure
Procedure l phng thc dng to ra cc hm x l tuy nhin Procedure khng tr v gi tr (kt qu) nh Function. Procedure thng c dng thao tc ln CSDL nhiu hn. i vi Function, ta khng th chnh sa d liu, nh i vi Procedure ta c th to ra cc hm dng chnh sa, xod liu. Kt qu ca Procedute khng phi l mt gi tr nh Function, m l mt b gi tr (kt qu ca mt truy vn) 1. Cu trc to Procedure CREATE PROCEDURE procedure_name(IN | OUT | INOUT arguments) BEGIN . END Trong : Procedure_name : tn Procedure mun to Arguments : cc tham s cn thit cho procedure, cc tham s phi s dng cc t kho In, Out, InOut ch nh loi argument (In tham s ch cho gi tr vo, Out tham s ch cho gi tr ra, InOut tham s cho gi tr vo v ra).

Vd : lit k danh sch cc khch hng theo phi. CREATE PROCEDURE GetCustomersByGender(IN gen varchar(1)) BEGIN Select * From Customer Where Gender = gen; END 2. S dng Procedure thc thi mt Procedure c to ta s dng t kho Call nh sau : CALL procedure_name(argument_values); Vd : Call GetCustomersByGender(F);

III. Trigger
Trigger l phng thc to cc rng buc cho CSDL khi CSDL c s thay i nh thm, xo, sa d liu. Cc trigger s t ng c CSDL thc thi khi nhng hnh ng thay i xy ra. Cu trc to Trigger : CREATE TRIGGER trigger_name [BEFORE | AFTER] [INSERT | UPDATE | DELETE] FOR EACH ROW BEGIN END
Bin son Nguyn Minh Thnh 34

Gio trnh C s d liu MySQL Trong : Trigger_name : tn trigger. Before | After : thao tc trc hay sau. Insert | Update | Delete : thao tc khi chn mi | cp nht | xo o NEW : ch nh dng mi c chn, cp nht. o OLD : ch nh dng mi c xo. Vd: Trong bng Customers c mt ct AGE (tui), ct ny khng nhp nhng s c t tnh t ct Birthday khi chn thng tin mt khch hng mi CREATE TRIGGER Update_Age_Customer AFTER INSERT FOR EACH ROW BEGIN Update Customers Set Age = Year(NEW.Birthday) WHERE Customer_ID = New.Customer_ID; END

Bin son Nguyn Minh Thnh

35

Gio trnh C s d liu MySQL

Bi 7

BO MT V QUN TR

I. Bo mt CSDL
1. Phng thc bo mt trong MySQL Nh trnh by trong bi 2 (phn II.4), MySQL c mt CSDL c bit c tn mysql. Trong CSDL ny c cc bng cha thng tin v server, c bit chng ta bit n 3 bng l db,host, user. Ngoi ra cn cc bng nh func, column_priv, tables_priv miu t v quyn hn v chc nng ca cc ti khon ngi dng. Ngi duy nht c truy cp vo cc bng ny l ngi qun tr CSDL hay ngi nm ti khon root. Tt c cc d liu trn server c lu tr trong th mc data (c cha trong th mc ci t mysql). 2. To ti khon ngi dng Ti khon vi tt c cc quyn truy cp trn my cc b. GRANT ALL PRIVILEGES ON *.* | database.table TO username@localhost IDENTIFIED BY "password" Vd : GRANT ALL PRIVILEDES ON *.* TO inzaghithanh@localhost IDENTIFIED BY "9967722"; Ti khon vi tt c cc quyn truy cp t xa. GRANT ALL PRIVILEGES ON *.* | database.table TO username@host IDENTIFIED BY "password" Vd : GRANT ALL PRIVILEDES ON *.* TO inzaghithanh@"saoviet.edu.vn" IDENTIFIED BY "9967722"; Vd : GRANT ALL PRIVILEDES ON *.* TO inzaghithanh@"%" IDENTIFIED BY "9967722"; Vd : GRANT ALL PRIVILEDES ON *.* TO inzaghithanh@"203.162.4.190" IDENTIFIED BY "9967722"; 3. Xo ti khon ngi dng Xo ti khon trong bng user DELETE FROM user WHERE user="value" and host="value" Vd : DELETE FROM user WHERE user="inzaghithanh" and host="localhost"; 4. Cp quyn & xo quyn cho ti khon ngi dng Cp quyn : GRANT privilege_list ON *.* | database.table TO username@host IDENTIFIED BY "password" Vd : GRANT select, insert On *.* TO khoadanh@localhost IDENTIFIED BY "9967722"; Xo quyn : REVOKE ALL | PRIVILEGE_TYPE
Bin son Nguyn Minh Thnh 36

Gio trnh C s d liu MySQL ON *.* | Database.Table From user@host Vd : REVOKE ALL ON *.* From khoadanh@localhost

II. Qun tr
1. Backup (sao lu) d liu sao lu li c s d liu, ta s dng thao tc Export d liu (bi 4 phn II) ra mt file text hay file sql v lu tr li. 2. Restore (phc hi) d liu

phc hi li c s d liu, ta s dng thao tc Import d liu (bi 4 phn I) t mt file text hay file sql a d liu vo. 3. Cc hm trn h thng ca MySQL 4. DATABASE() : tr v CSDL ang s dng. USER(), SYSTEM_USER(), SESSION_USER() : tr v ti khon ang s dng. VERSION() : xem thng tin phin bn MySQL PASSWORD(string) : tr v gi tr string c m ho.

S dng mysqladmin

Chng trnh mysqladmin cha cc lnh qun l CSDL MySQL, chng trnh c thc thi ch dng lnh Cc lnh ca mysqladmin Create database_name : to CSDL vi tn ch nh. Drop database_name : xo CSDL vi tn ch nh. Status : xem tnh trng server. Version : xem phin bn MySQL. Extended-status : xem thng tin m rng ca server. Variables : xem cc bin thng s c gi tr. Processlist : xem cc kt ni n server. Password new_password : thay i password. Flush-hosts : lu tt c cc host trong b m. Flush-logs : lu tt c cc nht k. Flush-tables : lu tt c cc bng. Flush-privileges : cp nht li cc bng cp quyn. Kill id1, id2 : tt cc lung x l ca MySQL. Ping : gi tnh hiu n MySQL kim tra cc hm. Reload : ti li cc quyn t cc bng lu tr quyn. Refresh : lu li tt c cc bng quyn, ng li v m cc file nht k. Shutdown : tt server.
37

Bin son Nguyn Minh Thnh

Gio trnh C s d liu MySQL Cc tham s ca mysqladmin -#, --debug : xut ra file nht k kim tra. -f, --force : xo -u, --user=username : ch nh ti khon s dng mysqladmin. -p, --password[=password] : ch nh password s dng mysqladmin. -h, --host=hostname : kt ni n mt host ch nh. -C, --compress : s dng giao thc nn gia client/server. -P, --port[=portname] : ch nh port cho kt ni. -?, --help : hng dn, gip . -V, --version : xem phin bn v thot.

Vd : mysqladmin u root p create qlBanhang Vd : mysqladmin status

Bin son Nguyn Minh Thnh

38

Gio trnh C s d liu MySQL

Bi 8

S DNG CNG C GIAO DIN HO - MySQL GUI TOOLS

I. Gii thiu:
MySQL GUI Tool l b cng c vi giao din ho thn thin, gip ngi s d dng thao tc trn MySQL hn so vi thao tc bng giao din cu lnh. Ta c th ti MySQL GUI Tools trn trang web chnh thc ca MySQL (http://dev.mysql.com/downloads/gui-tools/5.0.html). B cng c bao gm 3 cng c chnh : MySQL Administrator : cng c qun tr MySQL Server. MySQL Query Browser : cng c thc hin cc cu truy vn trc quan. MySQL Migration Toolkit : cng c cho php chuyn i gia cc h CSDL khc nhau.

II. MySQL Administrator


Sau khi ci t MySQL GUI Tools, ta vo : Start Program MySQL MySQL Administrators Mn hnh ng nhp h thng server :

Server Host : nhp a ch MySQL server mun ng nhp Username : ti khon ng nhp. Password : mt khu ng nhp. Server Information : thng tin v server. Service Control : qun l dch v MySQL chy trn Server. Startup Variables : qun l cc bin thng s t chy. User Administrator : qun l ti khon ngi dng.

Mn hnh chnh ca chng trnh :

Bin son Nguyn Minh Thnh

39

Gio trnh C s d liu MySQL

Server Connections : qun l cc kt ni trn n server. Health : qun l ti nguyn trn server. Server Logs : nht k ghi nhn trn server. Replication Status : qun l tnh trng tr li t server cho cc client. Backup : thc hin sao lu d liu. Restore : thc hin phc hi d liu. Catalogs : danh mc cc CSDL trn server.

III. MySQL Query Browser


Sau khi ci t MySQL GUI Tools, ta vo : Start Program MySQL MySQL Administrators Mn hnh ng nhp h thng server :

Bin son Nguyn Minh Thnh

40

Gio trnh C s d liu MySQL Server Host : nhp a ch MySQL server mun ng nhp Username : ti khon ng nhp. Password : mt khu ng nhp. Default Schema : C s d liu s dng mc nh.

Mn hnh chnh ca chng trnh :

s dng, ta nhp cu truy vn vo textbox pha trn v nhn phm Execute thc thi. Ngoi ra, ta cng c th chn Procedure ca s Schemata thc thi cu Procedure .

Bin son Nguyn Minh Thnh

41

Gio trnh C s d liu MySQL

Bi Tp
Bi Tp Thc Hnh S 1 1. Ci t MySQL 5.1 trn Windows vi cc yu cu sau : - Chn th mc cha d liu MySQL Datafiles trong th mc gc ci t MySQL. - Thit lp password cho root@localhost l : saovietadmin. 2. S dng MySQL Command Line Client, ng nhp Server vi ti khon root. Xem cc CSDL hin c trn Server. Xem tnh trng ca Server. i password ca root@localhost l : saoviet. Thot khi chng trnh. 3. S dng cmd (command line) ca Windows ng nhp MySQL Server vi ti khon root. To CSDL mi c tn l : Test. S dng CSDL va to. Xo CSDL va to. Bi Tp Thc Hnh S 2 : To Bng 1. To CSDL c tn : QuanLyBanHang. 2. S dng CSDL QuanLyBanHang, to cc bng sau : Bng TinhTP Tn ct MaTP TenTP Bng DonVi Tn ct MaDV TenDV Kiu d liu CHAR(2) VARCHAR(30) Thuc tnh Primary key, Not Null Not Null, Unique Kiu d liu CHAR(2) VARCHAR(30) Thuc tnh Primary key, Not Null Not Null, Default ' '

Bng NhaCungCap Tn ct MaNCC TenNCC DiaChi DienThoai Kiu d liu INT VARCHAR(30) VARCHAR(60) VARCHAR(11) Thuc tnh Primary key, Not Null, Auto_Increment Not Null, Unique Not Null, Default ' ' Not Null, Default ' '

Bng MatHang Tn ct MaMH Kiu d liu INT Thuc tnh Primary key, Not Null, Auto_Increment
42

Bin son Nguyn Minh Thnh

Gio trnh C s d liu MySQL TenMH DonViTinh DonGia HinhSP MaNCC VARCHAR(30) VARCHAR(20) INT TEXT INT Not Null, Unique Not Null, Default ' ' Not Null, Unsigned, Default 0 Null Not Null

Bng KhachHang Tn ct MaKH TenKH DiaChi DienThoai MaTP Kiu d liu VARCHAR(10) VARCHAR(40) VARCHAR(60) VARCHAR(11) CHAR(2) Thuc tnh Primary key, Not Null Not Null, Unique, Default ' ' Not Null, Default ' ' Not Null, Default ' ' Not Null

Bng NhanVien Tn ct MaNV HoLot TenNV Phai LuongCB NgayNViec DiaChiNV DienThoaiNV HinhNV Kiu d liu INT VARCHAR(30) VARCHAR(20) ENUM('F','M') INT DATE VARCHAR(60) VARCHAR(11) TEXT Thuc tnh Primary key, Not Null, Auto_Increment Not Null, Default ' ' Not Null, Default ' ' Not Null, Default 'F' Not Null, Unsigned, Default 0 Not Null Not Null, Default ' ' Null, Default ' ' Null

Bng DonDatHang Tn ct MaDDH MaKH MaNV NgayDH NgayGiao Kiu d liu CHAR(5) VARCHAR(10) INT DATE DATE Thuc tnh Primary key, Not Null Not Null Not Null Not Null

Bng ChiTietDDH Tn ct MaDDH MaMH SoLuong GiamGia Kiu d liu CHAR(5) INT INT DATE Thuc tnh Primary key, Not Null Primary key, Not Null Not Null Default 0

Bng ChamCong
Bin son Nguyn Minh Thnh 43

Gio trnh C s d liu MySQL Tn ct Thang Nam MaNV NgayCong Kiu d liu TINYINT SMALLINT INT TINYINT Thuc tnh Primary key, Not Null, Unsigned Primary key, Not Null, Unsigned Primary key, Not Null Default 0

3. M hnh quan h gia cc bng :

4. Thc hin mt s cu lnh trn bng : Xem danh sch cc bng ca CSDL QuanlyBanHang. Xem danh sch ca cc ct trong tng bng. Xem cu trc ca tng bng. 5. Nhp d liu vo bng Bng TinhTP

Bng DonVi

Bin son Nguyn Minh Thnh

44

Gio trnh C s d liu MySQL Bng NhaCungCap

Bng MatHang

Bng KhachHang

Bang NhanVien (Import t file NhanVien.txt) Bang ChamCong (Import t file ChamCong.txt) Bng DonDatHang (Import t file DonDatHang.txt) Bng ChiTietDDH (Import t file ChiTietDDH.txt) Bi Tp Thc Hnh S 3 : Truy vn Thc hin cc cu truy vn chn sau : 1. Lit k danh sch cc mt hng, bao gm cc thng tin sau : MaMH, TenMH, DonViTinh, DonGia. 2. Lit k cc mt hng c n gi >=62 thng tin gm cc ct sau: MaMH, TenMH, DonViTinh, DonGia. 3. Lit k cc mt hng m nh cung cp c MaNCC l 4 hoc 2 thng tin gm cc ct sau: MaNCC, TenNCC, MaMH, TenMH, DonViTinh, DonGia.
Bin son Nguyn Minh Thnh 45

Gio trnh C s d liu MySQL 4. Lit k cc mt hng m nh cung cp c a ch ti TP.HCM thng tin gm cc ct sau: MaNCC, TenNCC, DiaChi, MaMH, TenMH, DonViTinh, DonGia. 5. Lit k cc n hng trong khong thi gian t ngy 01/01/1997 n ngy 31/01/1997 thng tin gm cc trng sau: MaDDH, NgayDH, MaKH, TenKH, MaMH, TenMH, SoLuong. 6. Lit k cc n hng trong thng 2 nm 1997 thng tin gm cc trng sau : MaDDH, NgayDH, NgayGiao, MaNV, HoTenNV. 7. Lit k cc n t hng giao trc ngy 01/03/1997 v nhn vin phc v c MaNV l 4 hay 5. Thng tin gm cc trng sau : MaDDH, NgayDH, MaKH, TenKH, MaNV, HoTenNV. 8. Lit k cc nhn vin thuc phi Nam. Thng tin gm cc trng sau: MaNV, HoLot, TenNV, DiaChi, NgayNViec, Phai 9. Lit k cc nhn vin nhn vic t ngy 01/07/1991 n ngy 30/11/1992 v lng c bn <300 thng tin gm cc Field sau: MaDV, MaNV, HoLot, TenNV, Phai, LuongCB, NgayNV. 10. Lit k cc nhn vin N c tr ti Q1 Hay Nam. Thng tin gm cc field sau: MaNV, HoLot, Ten,NV, Phai, DiaChi. 11. Lit k cc nhn vin c ngy cng lm vic trong thng 1 nm 1999 nh hn 25 ngy thng tin gm cc Field sau: MaNV, HoLot, TenNV, MaDV, TenDV, Thang, Nam, NgayCong. Thc hin cc cu truy vn chn (c biu thc) sau : 12. Lit k cc n hng m nhn vin phc v thuc phi n thng tin gm cc trng sau: MaDDH, NgayDH, NgayGiao, MaNV, HoTenNV, Phai. 13. L it k cc n hng c hn giao trong vng 15 ngy sau khi t hng. Thng tin gm cc trng sau: MaDDH, NgayDH, NgayGiao, MaKH, TenKH, Thi gian (T ngy t hng n ngy giao hng) 14. L it k cc n t hng. Thng tin gm cc trng sau : MaDDH, NgayDH, MaMH, tenMH, SoLuong, DonGia, ThanhTien (Bit ThanhTien = SoLuong*DonGia*(1GiamGia) 15. Lit k cc n hng c t trong qu 1 nm 1997. Thng tin gm cc trng sau : Nam, Quy, NgayDH, MaDDH, MaKH, TenKH, MaNV, TenNV 16. Lit k cc n t hng c cha cc mt hng c m nh sau: 1,3,5,7 thng tin gm : MaDDH, NgayDH, MaMH, TenMH Thc hin cc cu truy vn thng k sau : 17. m tng s khch hng theo tng TinhTp. Thng tin gm: MaTP, TongsoKH. 18. m tng s nhn vin theo tng n V. Thng tin gm: MaDV, TenDV, TongSoNV. 19. m s n hng. Thng tin gm : Nam, MaKH, TenKH, TongSoDDH. 20. Tnh tng tr (Thnh tin) ca tng n hng. Thng tin gm : Nam, MaDDH, MaKH, NgayDH, NgayGiao, TongTri.
Bin son Nguyn Minh Thnh 46

Gio trnh C s d liu MySQL 21. Tnh tng thnh tin ca tng khch hng trong tng nm. Thng tin gm : Nam, MaKH, TenKH, TongTien 22. Lit k danh sch khch hng c tng tr t hng nhiu nht trong nm 1998. thng tin gm : MaKH, TenKH, Nam, TongTienMax. 23. Lit k danh sch cc mt hng c tng gi tr t hng nhiu nht trong 1997 thng tin gm : MaMH, TenMH, Nam, TongTienMax 24. Cui nm cng ty mun tng lch cho khch hng vi quy nh nh sau: 1 n t hng 2 cun lch. To truy vn gm cc thng tin sau: MaKH, TenKH, DiaChi, SoDDH, SoLichTang. 25. Thng k tng lng nhn vin ca tng n v trong nm 1999. thng tin gm : MaDV, TenDV, Thang, TongLuong. 26. Li t k n v c tng lng trong nm 1999. ln nh t thng tin gm : MaDV, TenDV, Thang, TongLuongMax. Thc hin cc cu truy vn hnh ng sau : 27. To Table LuuDDH gm cc n t hng trong nm 1997,1998 v 1999 gm cc trng sau : MaDDH, MaKH, NgayDH, NgayGiao, MaMH, SoLuong, GiamGia. 28. Xa Trong Table LuuDDH cc n t hng 1997 29. Tng 2% gim gi trong Table LuuDDH cho cc n t hng trong nm 1999 30. To table Luong9901 (bng lng thng 1 nm 1999) gm cc Field sau: Thang, Nam, MaNV, HoTen, LuongCB, NgayCong, Luong. (bit lng = Lung cn bn * Ngy cng) 31. Tng lng cc nhn vin trong bng lng Luong9901 tng 10% i vi cc nhn vin Nam v 20% i vi cc nhn vin n v iu kin l c ngy cng > 20 ngy. 32. Lit k cc mt hng khng c t hng trong khong thi gian [t 1/5/1997] [n 1/5/1998] Bi Tp Thc Hnh S 3 : Function Procedure - Trigger 1. To Function tnh tng doanh thu ca nm 1997. 2. To Function tnh tng doanh thu ca mt nm (c truyn tham s). 3. To Function tnh tng thnh tin ca mt n t hng (c truyn tham s). 4. To Function tnh tng doanh thu ca mt nhn vin (c truyn tham s). 5. Thc hin li cc cu truy vn trn vi Procedure. 6. To Procedure lit k danh sch nhn vin theo phi (c truyn tham s). 7. To Procedure lit k danh sch mt hng theo n t hng (c truyn tham s). 8. To Procedure lit k danh sch mt hng theo n t hng (c truyn tham s). 9. To Procedure lit k danh sch mt hng theo nh cung cp (c truyn tham s). 10. To Procedure lit k danh sch n t hng c t t ngy A n ngy B (A, B c truyn tham s).

Bin son Nguyn Minh Thnh

47

Gio trnh C s d liu MySQL Bi Tp Thc Hnh S 4 : Bo Mt 1. To ti khon mi (ch truy cp trn local) vi y quyn c tn : saoviet mt khu : saoviet. 2. Thc hin ng nhp vi ti khon saoviet. 3. Thc hin cho php ti khon saoviet c th truy cp bt k u. 4. To ti khon mi (ch truy cp trn local) ch c quyn chn (select) : tn : abc mt khu : 123456. 5. ng nhp vi ti khon abc. V thc hin chn, chn d liu vo bng MatHang. 6. ng nhp vi ti khon root, xo ti khon abc. 7. S dng cc hm h thng xem thng tin Server. 8. Thc hin Backup ton b d liu ca QuanLyBanHang ra file QuanLyBanHang.sql

Bin son Nguyn Minh Thnh

48

You might also like