Bi 1 CC KHI NIM C BN ................................................................................ 1
I. Cc khi nim ....................................................................................................... 1 1. C s d liu ..................................................................................................... 1 2. H qun tr c s d liu ................................................................................... 1 II. Thit k c s d liu ........................................................................................... 1 1. C s d liu quan h ....................................................................................... 1 2. Quy trnh thit k c s d liu ........................................................................ 2 3. Cc bc chun ho .......................................................................................... 4 Bi 2 TNG QUAN V CSDL MYSQL ...................................................................... 6 I. Tng quan v MySQL .......................................................................................... 6 1. M hnh Client/Server ...................................................................................... 6 2. Quy trnh ci t (trn Windows) ..................................................................... 6 3. Khi ng & tt dch v MySQL ................................................................... 13 4. Thao tc ti client ............................................................................................ 13 5. Thay i password cho ti khon root ............................................................ 14 II. Cc thao tc c bn trn CSDL .......................................................................... 14 1. Xem cc c s d liu ..................................................................................... 14 2. To c s d liu mi ..................................................................................... 15 3. Xo c s d liu ............................................................................................ 15 4. Thm ti khon ngi dng (user) .................................................................. 15 Bi 3 BNG - TABLE ................................................................................................. 16 I. nh ngha .......................................................................................................... 16 II. Cc kiu d liu .................................................................................................. 16 1. Kiu d s (numeric) ...................................................................................... 16 2. Kiu chui k t (string) .................................................................................. 16 3. Kiu hn hp (Miscellaneous) ........................................................................ 17 4. Kiu ngy gi .................................................................................................. 17 5. Cc t kho nh ngha ct (modifiers) .......................................................... 18 III. Cc thao tc trn bng ..................................................................................... 18 1. To bng ......................................................................................................... 18 2. Xem thng tin ca CSDL, Bng ..................................................................... 19 3. Xo bng ......................................................................................................... 19 4. Thay i cu trc bng .................................................................................... 19 5. Chn d liu vo bng .................................................................................... 19 Bi 4 THAO TC TRN CSDL ................................................................................. 21 I. Import d liu ..................................................................................................... 21 1. Import t file text ............................................................................................ 21 2. Import t file sql ............................................................................................. 22 3. Import t file Access ....................................................................................... 23 II. Export d liu ..................................................................................................... 25 1. Chng trnh mysqldump ............................................................................... 25 2. Lnh Select Into Outfile ............................................................................. 25 3. Chng trnh mysql client .............................................................................. 25 Bi 5 TRUY VN QUERY ...................................................................................... 26 I. nh ngha .......................................................................................................... 26 1. nh ngha ....................................................................................................... 26 2. Cc t kho ..................................................................................................... 26 II. Cc thao tc truy vn d liu .............................................................................. 26 1. Truy vn chn d liu ..................................................................................... 26 2. Truy vn thng k d liu ............................................................................... 27 3. Truy vn lng .................................................................................................. 28 4. Mnh Join ................................................................................................... 28 5. Truy vn chn d liu ..................................................................................... 28 6. Truy vn xo d liu ....................................................................................... 28 7. Truy vn cp nht d liu ............................................................................... 28 III. Ton t & hm ................................................................................................ 28 1. Ton t ............................................................................................................ 28 2. Hm ton hc .................................................................................................. 29 3. Hm iu kin ................................................................................................. 29 4. Hm logic ........................................................................................................ 29 5. Hm chui ....................................................................................................... 30 6. Hm thi gian ................................................................................................. 30 Bi 6 FUNCTION PROCEDURE TRIGGER ....................................................... 33 I. Function .............................................................................................................. 33 1. Cu trc to Function ...................................................................................... 33 2. S dng Function ............................................................................................ 33 II. Procedure ............................................................................................................ 34 1. Cu trc to Procedure .................................................................................... 34 2. S dng Procedure .......................................................................................... 34 III. Trigger ............................................................................................................ 34 Bi 7 BO MT V QUN TR ............................................................................... 36 I. Bo mt CSDL ................................................................................................... 36 1. Phng thc bo mt trong MySQL ............................................................... 36 2. To ti khon ngi dng ............................................................................... 36 3. Xo ti khon ngi dng ............................................................................... 36 4. Cp quyn & xo quyn cho ti khon ngi dng ........................................ 36 II. Qun tr ............................................................................................................... 37 1. Backup (sao lu) d liu ................................................................................. 37 2. Restore (phc hi) d liu ............................................................................... 37 3. Cc hm trn h thng ca MySQL ................................................................ 37 4. S dng mysqladmin ...................................................................................... 37 Bi 8 S DNG CNG C GIAO DIN HO - MySQL GUI TOOLS ........... 39 I. Gii thiu: ........................................................................................................... 39 II. MySQL Administrator ........................................................................................ 39 III. MySQL Query Browser .................................................................................. 40 Bi Tp ........................................................................................................................... 42
Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 1 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. Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 2 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): Quan h 1 1 Quan h 1 n Quan h n n 2. 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. Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 3 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. Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 4 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) Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 5 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.
Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 6 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 Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 7 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. Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 8
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 Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 9
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.
Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 10
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 ()
Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 11
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). Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 12
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. Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 13 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).
Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 14
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. xem tnh trng ca server, ta thc hin lnh status; 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; Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 15 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');
Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 16 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) B nh (memory space) bytes Vng gi tr (value range) Vng gi tr dng (Unsigned) Tinyint 1 -128 172 0 255 Smallint 2 -32768 32767 0 65535 Mediumint 3 -8388608 8388607 0 16777215 Int 4 -2147483648 2147483647 0 4294967295 Bigint 8 -9223372036854775808
9223372036854775807 0 18446744073709550 615 Float (M,D) 4 Double (M,D) 8 Decimal (M,D) M + 2 2. Kiu chui k t (string) Tn kiu Kch thc ti a (bytes) Khong lu tr (bytes) Char(x) 255 X Varchar(x) 255 X + 1 Tinytext 255 X + 1 Tinyblob 255 X + 2 Text 65535 X + 2 Blob 65535 X + 2 Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 17 Mediumtext 1.6 MB X + 3 Mediumblog 1.6 MB X + 3 Longtext 4.2 GB X + 4 Longblob 4.2 GB X + 4 3. Kiu hn hp (Miscellaneous) 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 enumnhng 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 nh dng chun Gi tr 0 DATETIME YYYY-MM-DD HH:MM:SS 0000-00-00 00:00:00 DATE YYYY-MM-DD 0000-00-00 TIME HH:MM:SS 00:00:0 YEAR YYYY 0000 TIMESTAMP (Xem phn sau) 00000000000000 (di nht)
nh dng kiu TIMESTAMP Tn kiu nh dng TIMESTAMP(14) YYYYMMDDHHMMSS TIMESTAMP(12) YYMMDDHHMMSS TIMESTAMP(10) YYMMDDHHMM TIMESTAMP(8) YYYYMMDD TIMESTAMP(6) YYMMDD TIMESTAMP(4) YYMM TIMESTAMP(2) YY Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 18 5. Cc t kho nh ngha ct (modifiers) T kho Kiu d liu thch hp ngha Auto_Increment Int T ng tng d liu ca ct Binary Char, Varchar Thit lp lu tr chui nh phn (phn bit ch hoa thng) Default Tt c tr text, blob Thit lp gi tr mc nh cho ct Not null Tt c Khng cho php gi tr null Null Tt c Cho php gi tr null Primary key Tt c Thit kho chnh cho ct Unique Tt c Gi tr duy nht Unsigned Kiu numeric Ch lu gi tr s nguyn Zerofill Kiu numeric 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_namefrom table_name vd : create temporary table select * from Customers To bng sao chp t mt bng khc Create table table_nameselect column_namefrom table_name_1 vd : create table Customers_copy select * from Customers Kim tra s tn ti ca bng trc khi to Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 19 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_namechange 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_namechange column_name column_name new_datatype; Vd : ALTER TABLE Customers CHANGE Last_Name Last_Name VARCHAR(50); i tn bng Alter table table_nameRename new_table_name; Vd : ALTER TABLE Customers RENAME Customer_Table; Thm ct vo bng Alter table table_nameadd column_name datatype; Vd : ALTER TABLE Customer ADD Last_Name VARCHAR(30); Xo mt ct Alter table table_nameDrop column_name; Vd : ALTER TABLE Customers DROP Last_Name; Thm kho chnh Alter table table_nameAdd Primary Key (column_names); Vd : ALTER TABLE Customers ADD PRIMARY KEY (Customer_ID); Xo kho chnh Alter table table_nameDrop Primary Key; 5. Chn d liu vo bng Chn mt dng d liu Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 20 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');
Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 21 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 ngha -d hoc --delete Xo tt c d liu ang c trong bng trc khi chn d liu mi -f hoc --force Tip tc chn d liu khi gp li -i hoc --ignore B qua nhng dng d liu chn ging vi nhng dng c d liu duy nht -L hoc -local Ch nh s dng file import trn my cc b -l hoc -lock-tables Kho cc bng trc khi chn -r hoc -replace Thay th cc dng d liu duy nht bng dng d liu chn --fields-enclosed-by=char Ch nh k t ng d liu ( vd : 'ABC') --fields-escaped-by=char Ch nh k t loi tr cho cc k t c bit --fields-optionally-terminated- by=char Ch nh k t phn chia cc gi tr --fields-terminated-by=char Ch nh k t phn chia cc gi tr --lines-enclosed-by=str Ch nh k t kt thc mt dng d liu Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 22 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); Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 23 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).
Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 24
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. Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 25 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 I nto 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
Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 26 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 Cc t kho ca ngn ng truy vn SQL Create On Limit Into Or Alter Order by Drop Where Like Insert Join Delete Group by As Select Cross Join Update Left Join From Right Join Set And 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"; Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 27 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; Chn d liu t nhiu bng 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(). Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 28 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_nameSET 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; Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 29 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; Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 30 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" UCASE, LCASE : chuyn ch thng thnh in hoa v ngc li. REVERSE : o ngc chui. 6. 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 Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 31 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 (1 st , 2 nd ) %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 Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 32 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 nh dng d liu SECOND Giy MINUTE Pht HOUR Gi DAY Ngy MONTH Thng YEAR Nm MINUTE_SECOND "Pht : Giy" HOUR_MINUTE "Gi : Pht" DAY_HOUR "Ngy Gi" YEAR_MONTH "Nm Thng" HOUR_SECOND "Gi : Pht : Giy" DAY_MINUTE "Ngy Gi : Pht" DAY_SECOND "Ngy Gi : Pht : Giy"
Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 33 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(); Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 34 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] [I NSERT | UPDATE | DELETE] FOR EACH ROW BEGIN
END Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 35 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
Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 36 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 Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 37 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 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. 4. 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. Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 38 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
Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 39 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. Mn hnh chnh ca chng trnh : 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. Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 40
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 :
Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 41 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 . Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 42 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 Kiu d liu Thuc tnh MaTP CHAR(2) Primary key, Not Null TenTP VARCHAR(30) Not Null, Default ' '
Bng DonVi Tn ct Kiu d liu Thuc tnh MaDV CHAR(2) Primary key, Not Null TenDV VARCHAR(30) Not Null, Unique
Bng NhaCungCap Tn ct Kiu d liu Thuc tnh MaNCC INT Primary key, Not Null, Auto_Increment TenNCC VARCHAR(30) Not Null, Unique DiaChi VARCHAR(60) Not Null, Default ' ' DienThoai VARCHAR(11) Not Null, Default ' '
Bng MatHang Tn ct Kiu d liu Thuc tnh MaMH INT Primary key, Not Null, Auto_Increment Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 43 TenMH VARCHAR(30) Not Null, Unique DonViTinh VARCHAR(20) Not Null, Default ' ' DonGia INT Not Null, Unsigned, Default 0 HinhSP TEXT Null MaNCC INT Not Null
Bng KhachHang Tn ct Kiu d liu Thuc tnh MaKH VARCHAR(10) Primary key, Not Null TenKH VARCHAR(40) Not Null, Unique, Default ' ' DiaChi VARCHAR(60) Not Null, Default ' ' DienThoai VARCHAR(11) Not Null, Default ' ' MaTP CHAR(2) Not Null
Bng NhanVien Tn ct Kiu d liu Thuc tnh MaNV INT Primary key, Not Null, Auto_Increment HoLot VARCHAR(30) Not Null, Default ' ' TenNV VARCHAR(20) Not Null, Default ' ' Phai ENUM('F','M') Not Null, Default 'F' LuongCB INT Not Null, Unsigned, Default 0 NgayNViec DATE Not Null DiaChiNV VARCHAR(60) Not Null, Default ' ' DienThoaiNV VARCHAR(11) Null, Default ' ' HinhNV TEXT Null
Bng DonDatHang Tn ct Kiu d liu Thuc tnh MaDDH CHAR(5) Primary key, Not Null MaKH VARCHAR(10) Not Null MaNV INT Not Null NgayDH DATE Not Null NgayGiao DATE
Bng ChiTietDDH Tn ct Kiu d liu Thuc tnh MaDDH CHAR(5) Primary key, Not Null MaMH INT Primary key, Not Null SoLuong INT Not Null GiamGia DATE Default 0
Bng ChamCong Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 44 Tn ct Kiu d liu Thuc tnh Thang TINYINT Primary key, Not Null, Unsigned Nam SMALLINT Primary key, Not Null, Unsigned MaNV INT Primary key, Not Null NgayCong TINYINT 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
Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 45 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. Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 46 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*(1- GiamGia) 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. Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 47 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).
Gio trnh C s d liu MySQL Bin son Nguyn Minh Thnh 48 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