Bài giảng SQL
Giaùo trỗnh thổỷc haỡnh SQL7UDQJ*,lv,7+,j864/6WUXFWXUHG4XHU\/DQJXDJHODQJQQJÔFVGXÊQJFKRFDFKÊTXDQWUF VGOLÊX TXDQKÊ 1JQ QJ 64/ FKXQ ÔF D UD EL $16,$PHULFDQ1DWLRQDO 6WDQGDUGV ,QVWLWXGH YD ,62 ,QWHUQDWLRQDO 6WDQGDUGV 2UJDQL]DWLRQ YLSKLQ EDQ PL QKÂW KLÊQ QD\ OD SKLQ EDQ 64/ SKLQ EDQ ÔF D UD QP0ÊFGXFRQKLXQJQQJNKDFQKDXÔFDUDFKRFDFKÊTXDQWU&6'/TXDQKÊ64/ODQJQQJÔFVGXÊQJUÔQJUDLKLÊQQD\WURQJUÂWQKLXKÊWKÂQJ&6'/WKQJPDÊLQK2UDFOH64/6HUYHU'%0LFURVRIW$FFHVV7KQJTXD64/QJLVGXÊQJFRWKGĂGDQJQKQJKDÔFGOLÊXWKDRWDFYLGOLÊX0ÊWNKDF\ODQJQQJFRWQKNKDLEDRQQQRGĂVGXÊQJYDFXQJYYÊ\PDWUQQSKELÂQ*LDRWULQKQD\QKPFXQJFÂSFKREDÊQWDLOLÊXWKDPNKDRWQJÂL\XYFDFFXOÊQK JLDRWDF 64/ V GXÊQJFKRKÊ TXDQ WU &6'/ 0LFURVRIW64/ 6HUYHU*LDRWUQKEDRJPEÂQFKQJ&KQJJLLWKLÊXPÔWVÂFXOÊQKVGXÊQJWURQJYLÊFQKQJKDFDFÂLWÔQJGOLÊXQKEDQJGOLÊXNKXQJQKQYDFKPXÊF &KQJ WUQK ED\ EÂQ FX OÊQK WKDR WDF G OLÊX OD 6(/(&7 ,16(5783'$7(YD'(/(7(WURQJRWÊSWUXQJFKX\ÂXFXOÊQK6(/(&7&KQJFÊSÂQKDLFXOÊQKLXNKLQOD*5$17YD5(92.(VGXÊQJWURQJYLÊFFÂSSKDWYDKX\ERTX\QFXDQJLVGXÊQJ&6'/ &KQJ JLL WKLÊX Y WKX WXÊF OX WU YD WULJJHU j\ OD QKQJ ÂL WÔQJ&6'/ÔFVGXÊQJQKPWQJKLÊXQQJNKLVGXÊQJ&6'/7URQJFKQJSKXÊOXÊFFKXQJWLJLLWKLÊXFÂXWUXFYDGOLÊXFXDFDFEDQJVGXÊQJWURQJFDFYGXÊFKQJEDÊQWLÊQWUDFXYDÂLFKLÂXYLFDFYGXÊDQX1JRDLUDWURQJFKQJQD\FRQFRFDFKDPWKQJVGXÊQJWURQJ64/6HUYHUFDFEDÊQWKDPNKDRWURQJWKÊFKDQK0ÊFGXDUÂWFÂJQJQKQJJLDRWUQKNKQJWKWUDQKXÔFFDFVDLVRW5ÂWPRQJQKÊQÔFVÊJRS\FXDFDFEDÊQJLDRWUQKQJD\FDQJKRDQWKLÊQKQ Trỏửn Nguyón PhongCChhổổồồnngg 11:: NNGGNN NNGGặặẻẻ ậậNNHH NNGGHHẫẫAA DDặặẻẻ LLIIUU1JQQJQKQJKDGOLÊXEDRJPFDFFXOÊQKFKRSKHSQJLVGXÊQJQKQJKD&6'/YDFDFÂLWÔQJWURQJ&6'/QKFDFEDQJFDFNKXQJQKQFKPXÊF7DREDQJGOLX'OLÊXEQWURQJPÔW&6'/ÔFWFKFOXWUWURQJFDFEDQJ%QWURQJFDFEDQJGOLÊXÔFWFKFGLGDÊQJFDFGRQJYDFDFFÔW0ĂLPÔWGRQJELXGLĂQPÔWEDQJKLGX\QKÂWYDPĂLPÔWFÔWELXGLĂQFKRPÔWWUQJ&DFWKXFWQKOLQTXDQQEDQJ.KLWDÊRYDODPYLÊFYLFDFEDQJGOLÊXWDFQSKDL\ÂQFDFWKXÔFWQKNKDFWUQEDQJQKNLXGOLÊXFDFUDQJEXÔFFDFNKRDFDFTXLWF&DFWKXÔFWQKQD\ÔFVGXÊQJQKPWDÊRUDFDFUDQJEXÔFWRDQYHÊQWUQFDFFÔWWUQJWUQEDQJFXQJQKWDÊRUDFDFWRDQYHÊQWKDPFKLÂXJLDFDFEDQJGOLÊXWURQJ&6'/D.LXGOLX0ĂLPÔWFÔWWUQJFXDPÔWEDQJXSKDLWKXÔFYDRPÔWNLXGOLÊXQKÂWQKDÔFQKQJKDWWUF0ĂLPÔWNLXGOLÊXTXLQKFDFJLDWUGOLÊXÔFFKRSKHSÂLYLFÔWR&DFKÊTXDQWU&6'/WKQJFXQJFÂSFDFNLXGOLÊXFKXQQJRDLUDFRQFRWKFKRSKHSQJLVGXÊQJQKQJKDFDFNLXGOLÊXNKDFGÊDWUQFDFNLXGOLÊXDFR'L\ODPÔWVÂNLXGOLÊXWKQJÔFVGXÊQJWURQJJLDRWDF64/BinaryBitCharDatetimeDecimalFloatImageIntMoneyNcharNtextNvarcharRealSmalldatetimeSmallintSmallmoneyTextTinyintVarbinaryVarcharE&DFUDQJEXF&21675$,1767UQFDFEDQJGOLÊXFDFUDQJEXÔFÔFVGXÊQJQKPFDFPXÊFFKVDX 4XLQKFDFJLDWUGOLÊXKD\NKXQGDÊQJGOLÊXÔFFKRSKHSFKÂSQKÊQWUQFDFFÔWFXDEDQJUDQJEXÔF&+(&. 4XLQKJLDWUPÊFQKFKRFDFFÔWUDQJEXÔF'()$8/7 Giaùo trỗnh thổỷc haỡnh SQL7UDQJ 7DÊRQQWQKWRDQYHÊQWKÊFWKWURQJPÔWEDQJGOLÊXYDWRDQYHÊQWKDPFKLÂXJLDFDF EDQJ G OLÊX WURQJ &6'/ UDQJ EXÔF 35,0$5< .(< 81,48( YD)25(,*1.(<&KXQJWDVHWPKLXFKLWLÂWKQYFDFUDQJEXÔFQD\SKQWUQKED\YFXOÊQK&5($7(7$%/(7DREDQJEQJWUX\YQ64/7DÊRFDFEDQJODPÔWNKXTXDQWURQJWURÔQJWURQJTXDWUQKWKLÂWNÂYDFDLGÊWFDF&6'/%QWURQJFDF&6'/PĂLPÔWEDQJWKQJÔFVGXÊQJQKPELXGLĂQWKQJWKLYFDFÂLWÔQJWURQJWKÂJLLWKÊFYDKRÊFELXGLĂQPÂLTXDQKÊJLDFDFÂLWÔQJRjFRWKWFKFWÂWPÔWEDQJGOLÊXEDÊQWQKÂWFQSKDL[DFQKÔFFDF\XFXVDX %DQJÔFVGXÊQJQKPPXÊFFKJYDFRYDLWURQKWKÂQDREQWURQJ&6'/" %DQJVHEDRJPQKQJFÔWQDRYDNLXGOLÊXFKRFDFFÔWRODJ" 1KQJFÔWQDRFKRSKHSFKÂSQKÊQJLDWU18// &RVGXÊQJFDFUDQJEXÔFFDFPÊFQKKD\NKQJYDQÂXFRWKVGXÊQJXYDQKXWKÂQDR" 1KQJFÔWQDRVHRQJYDLWURODNKRDFKQKNKRDQJRDLNKRDGX\QKÂW"1KQJGDÊQJFKPXÊFQDRODFQWKLÂWYDFQXD7DREDQJGOLXjWDÊRPÔWEDQJWURQJ&6'/EDÊQVGXÊQJFXOÊQK&5($7(7$%/(FRFXSKDSQKVDX CREATE TABLE table_name ( {colname_1 col_1_properties [constraints_1 ] [,{colname_2 col_2_properties [constraints_2 ]] . [,{colname_N col_N_properties [constraints_N ]] [table_constraints] )7URQJR- table_name:7QEDQJ FQWDÊR 7QFXD EDQJ SKDL GX\QKÂWWURQJPĂL&6'/YDSKDLWXQWKHRFDFTXLWFYQKGDQK- colname_i:7QFXDFÔWWKLWURQJEDQJ&DFFÔWWURQJPĂL Tráön Nguyãn PhongEDQJSKDLFRWQNKDFQKDXYDSKDLWXQWKHRFDFTXLWF YQK GDQK 0¡L P¤W EDQJSKDL FR WQK¢WP¤WF¤W- col_i_properties:&DFWKX¤FWQKFXDF¤WWKLTXLQKNL XGOL£XFXDF¤WYDFKQKF¤W FRFKRSKHSFK¢SQK£QJLDWU18//KD\NKQJ- constraints_i:&DF UDQJ EX¤F Q¢X FR WUQ F¤W WK L QK FDFUDQJEX¤FYNKRDFDFP£FQKFDFTXLQKYNKXQGD£QJGOL£X- table_constraint:&DFUDQJEX¤FWUQEDQJGOL£X9GX&XO£QKGL\WK£FKL£QKYL£FWD£REDQJ1+$19,(1EDRJPFDFF¤W0$19+27(11*$<6,1+',$&+,',(17+2$,CREATE TABLE nhanvien(manv char(10) not null,hoten char(30) not null,ngaysinh datetime null,diachi char(50) null,dienthoai char(6) null)E6GXQJFDFUDQJEXFWURQJEDQJGOLXDDDD5DQJEXF&+(&.5DQJEX¤F&+(&.¤FVGX£QJ FKQKFDFJLDWUKD\NKXQGD£QJGOL£XFRWK ¤F FK¢S QK£Q ¢L YL P¤W F¤W 7UQ P¤W F¤W FR WK FR QKLX UDQJ EX¤F&+(&.j NKDLEDRP¤WUDQJEX¤F&+(&.¢LYLP¤WF¤WQDRRWDVGX£QJFXSKDSQKVDX [CONSTRAINT constraint_name] CHECK (expression)7URQJRH[SUHVVLRQODP¤WEL XWKFORJLFTXLQKJLDWUKD\NKXQGD£QJFXDGOL£X¤FFKRSKHS.KLRFKQKQJJLDWUGOL£XQDRODPFKRH[SUHVVLRQQK£QJLDWUXQJPL¤FFK¢SQK£Q9GXj TXLQKL£QWKRD£LFXDQKQYLQSKDLFRGD£QJFKQJKD£QFXO£QKYGX£¤FYL¢WQKVDXCREATE TABLE nhanvien( Giaùo trỗnh thổỷc haỡnh SQL7UDQJ manv char(10) not null, hoten char(30) not null, ngaysinh datetime null, diachi char(50) null, dienthoai char(6) nullconstraint check_dienthoai check (dienthoai like '[0-9][0-9][0-9] [0-9][0-9] [0-9]'))DDDD5DQJEXF'()$8/75DQJEXÔF'()$8/7ÔFVGXÊQJTXLQKJLDWUPÊFQKFKRPÔWFÔW*LDWUQD\VHWÊÔQJÔFJDQFKRFÔWQD\NKLQJLVGXÊQJEVXQJPÔWEDQJKLPDNKQJFKQKJLDWUFKRFÔW7UQPĂLFÔWFKFRWKFRQKLXQKÂWPÔWUDQJEXÔF'()$8/7WFODFKFRWKFRWÂLDPÔWJLDWUPÊFQKj NKDL EDR PÔW JLD WU PÊF QK FKR PÔW FÔW WD FK QK PÔW UDQJ EXÔF'()$8/7FKRFÔWEQJFDFKVGXÊQJFXSKDSVDX [CONSTRAINT constraint_name] DEFAULT {const_expression nonarguments_function NULL}9 GX &X OÊQK GL \ FK QK JLD WU PÊF QK OD NKQJ ELÂW FKR FÔW',$&+,WURQJEDQJ1+$19,(1YGXÊCREATE TABLE nhanvien(manv char(10) not null,hoten char(30) not null,ngaysinh datetime null,diachi char(50) default 'khọng bióỳt',dienthoai char(6) null)DDDD5DQJEXF35,0$5<.(<muYGXÊQD\FKXQJWLNKQJÊWWQFKRUDQJEXÔF'()$8/7.KLRKÊTXDQWU&6'/VHWÊÔQJÊWWQFKRUDQJEXÔFQD\7X\QKLQGĂGDQJFKRYLÊFTXDQWUEDÊQQQÊWWQFKRFDFUDQJEXÔF Tráön Nguyãn Phong5DQJEX¤F35,0$5<.(<¤FVGX£QJ QKQJKDNKRDFKQKFXDEDQJ0¤WUDQJEX¤F35,0$5<.(<DPEDRUQJNKQJFRFDFJLDWUWUXQJO£S¤FDYDRWUQFDFF¤W+D\QRLFDFKNKDFJLDWUFXDNKRDFKQKVHJLXSFKRWD[DFQK¤FGX\QK¢WP¤WGRQJEDQJKLWURQJEDQJGOL£X0¡LP¤WEDQJFKFRWK FRGX\QK¢WP¤WNKRDFKQKYDEDQWKQNKRDFKQKNKQJFK¢SQK£QJLDWU18//5DQJEX¤F35,0$5<.(<ODFVFKRYL£FDPEDRWQKWRDQYH£QWK£FWK FXQJQKWRDQYH£QWKDPFKL¢Xj NKDLEDRP¤WUDQJEX¤F35,0$5<.(<ED£QVGX£QJFXSKDSVDX [CONSTRAINT constraint_name ] PRIMARY KEY [CLUSTERED|NONCLUSTERED] [( colname [,colname2 [ .,colname16]])]1¢XNKRDFKQKFXDP¤WEDQJFKODP¤WF¤WNKLRED£QNKQJFQWKL¢WSKDLFKQKGDQKVDFKFDFF¤WVGX£QJUDQJEX¤FPFF¤W7URQJWUQJK¤SNKRDFKQKODP¤WW£SK¤SWKDLF¤WWUOQED£QSKDLFKQKGDQKVDFKFDFF¤WVGX£QJUDQJEX¤FPFEDQJ9GXWD£REDQJ1+$19,(1YLNKRDFKQKOD0$19CREATE TABLE nhanvien(manv char(10) primary key,hoten char(30) not null,ngaysinh datetime null,diachi char(50) null,dienthoai char(6) null)FXO£QKWUQFRWK YL¢WQKVDXCREATE TABLE nhanvien(manv char(10) not null,hoten char(30) not null,ngaysinh datetime null,diachi char(50) null,dienthoai char(6) nullconstraint pk_nv primary key(manv)) Giaùo trỗnh thổỷc haỡnh SQL7UDQJD 5DQJEXF81,48(7KD\YVGXÊQJNKRDFKQKEDÊQFRWKVGXÊQJUDQJEXÔF81,48(DPEDRWQKWRDQYHÊQWKÊFWK6GXÊQJUDQJEXÔF81,48(WUQPÔWKD\QKLXFÔWEWEXÔFFDFJLDWUGOLÊXWUQPÔWKD\QKLXFÔWQD\NKQJÔFWUXQJOÊSQKDXjNKDLEDRPÔWUDQJEXÔF81,48(EDÊQVGXÊQJFXSKDSOÊQKVDX\ [CONSTRAINT constraint_name] UNIQUE [CLUSTERED | NONCLUSTERED] [colname1 [,colname2 [ .,colname16]])]D 5DQJEXF)25(,*1.(<&DFEDQJEQWURQJPÔW&6'/WKQJFRPÂLTXDQKÊYLQKDX&DFPÂLTXDQKÊQD\ÔF[DFQKGÊDWUQWQKEQJQKDXJLDPÔWKD\QKLXWUQJFXDEDQJQD\YLPÔWKD\QKLXWUQJFXDEDQJNKDF1ÂXPÔWKD\QKLXFÔWQDRRFXDPÔWEDQJFRJLDWUÔF[DFQKWPÔWKD\QKLXWUQJNKRDFXDEDQJNKDFWKFDFFÔWRÔFJRÔLODFRUDQJEXÔFNKRDQJRDÊLIRUHLJQNH\&DFUDQJEXÔF)25(,*1.(<ÔFVGXÊQJNÂWKÔSYLFDFUDQJEXÔF35,0$5<.(<YD81,48(QKPDPEDRWQKWRDQYHÊQWKDPFKLÂXJLDFDFEDQJÔFFKQKjNKDLEDRNKRDQJRDÊLEDÊQVGXÊQJFXSKDSOÊQKQKVDX [CONSTRAINT constraint_name ] [FOREIGN KEY (colname [,colname2 [ .,colname16]])] REFERENCES reference_table [(ref_colname [,ref_colname2 [ .,ref_colname 16]])] 9 GX 7DÊR KDL EDQJ 1+$19,(10$19 +27(1 1*$<6,1+ ',$&+,',(17+2$,0$'9YD'219,0$'97(1'9WKHRKQKGL\CREATE TABLE donvi(1+$19,(10$19+27(11*$<6,1+',$&+,',(17+2$,0$'9'219,0$'97(1'9+QK Tráön Nguyãn Phong madv char(2) primary key, tendv char(20) not null)CREATE TABLE nhanvien( manv char(10) primary key, hoten char(20) not null, ngaysinh datetime null, diachi char(50) default 'khong biet', dienthoai char(6) check(dienthoai like '[0-9][0-9][0-9] [0-9][0-9][0-9]'), madv char(2) foreign key(madv) references donvi(madv))6DLEDQJ6DXNKLDWD£REDQJED£QFRWK WL¢QKDQKVD LF¢XWUXFKD\WKX¤FWQKFXDEDQJQKE VXQJF¤WE VXQJNKRDWKD\ LFDFUDQJEX¤Fj FRWK VXD LEDQJED£QVGX£QJFXO£QK$/7(5FRFXSKDSQKVDXALTER TABLE table_name [ADD {col_name column_properties [column_constraints] [[,]table_constraint ] } [,{next_col_name|next_table_constraint}] .] [DROP [CONSTRAINT] constraint_name1 [, constraint_name2] .]9GX7D£RP¤WUDQJEX¤FFKREDQJ'219,WUQF¤W0$'9TXLQKPDQYSKDLFRGD£QJKDLFKV¢YGX£ ALTER TABLE donvi ADD CONSTRAINT check_madv CHECK (madv LIKE ‘[0-9][0-9]’) Giaùo trỗnh thổỷc haỡnh SQL7UDQJ&KPXFLQGH[&DFFKPXÊFÔFVGXÊQJQKPKĂWUÔYLÊFWUX\FÊSÂQFDFGRQJGOLÊXÔFQKDQKFKRQJGÊDWUQFDFJLDWUFXDPÔWKD\QKLXFÔW&KPXÊFÔFFKLDUDODPKDLORDÊLFKPXÊF WXÊ QKRPFOXVWHUHG LQGH[YD FKPXÊF NKQJ WXÊ QKRP QRQFOXVWHUHGLQGH[ 0ÔWFKPXÊFWXÊQKRPODPÔWFKPXÊFPDWURQJRWKWÊORJLFFXDFDFNKRDWQJWÊQKWKWÊYÊWO\FXDFDFGRQJWQJQJWQWDÊLWURQJEDQJ0ÔWEDQJFKFRWKFRWÂLDPÔWFKPXÊFWXÊQKRP 0ÔWFKPXÊFNKQJWXÊKRPODPÔWFKPXÊFPDWURQJRWKWÊORJLFFXDFDFNKRDNKQJQKWKWÊYÊWO\FXDFDFGRQJWURQJEDQJ&DFFKPXÊFWXÊQKRPKĂWUÔYLÊFWUX\FÊSÂQFDFGRQJGOLÊXQKDQKKQQKLXVRYLFDFFKPXÊFNKQJWXÊQKRP.KLWDNKDLEDRPÔWNKRDFKQKKD\NKRD81,48(WUQPÔWKD\QKLXFÔWQDRRFXDEDQJKÊTXDQWU&6'/VHWÊÔQJWDÊRFKPXÊFWUQFDFFÔWR%DÊQFRWKWDÊRWKPFDFFKPXÊFNKDFEQJFDFKVGXÊQJFXOÊQKFRFXSKDSQKVDX CREATE [CLUSTEREDNONCLUSTERED] INDEX index_name ON table_name(column_name [, column_name] .)9GX&XOÊQKGL\VHWDÊRPÔWFKPXÊFNKQJWXÊQKRPWUQFÔW0$'9FXDEDQJ1+$19,(1 CREATE NONCLUSTERED INDEX idx_nhanvien_madv ON nhanvien(madv).KXQJQKQ9LHZ0ÔWNKXQJQKQFRWKFRLQKODPÔWeEDQJDRfFRQÔLGXQJÔF[DFQKWPÔWWUX\YÂQ0ÔWWUX\YÂQTXHU\ODPÔWWÊSFDFFKGĂQLQVWUXFWLRQQKPWUX\[XÂWYDKLQWKGOLÊXWFDFEDQJWURQJ&6'/&DFWUX\YÂQÔFWKÊFKLÊQEQJFDFKVGXÊQJFXOÊQK6(/(&7ÔFFÊSÂQWURQJFKQJ0ÔWNKXQJQKQWURQJJLÂQJQKPÔWEDQJYLPÔWWÊRFDFWQFÔWYDFDFGRQJGOLÊX7X\QKLQNKXQJQKQNKQJWQWDÊLQKODPÔWFÂXWUXFOXWUGOLÊXWURQJ&6'/'OLÊXEQWURQJNKXQJQKQWKÊFFKÂWODGOLÊXÔF[DFQKWPÔWKD\QKLXEDQJFVYDGRRSKXÊWKÔFYDRFDFEDQJFV&DFNKXQJQKQWKQJÔFVGXÊQJEQWURQJ&6'/QKPFDFPXÊFFKVDX\ 6GXÊQJNKXQJQKQWÊSWUXQJWUQGOLÊXÔF[DFQK Tráön Nguyãn Phong• 6GX£QJNKXQJQKQ QJLDQKRDWKDRWDFGOL£X• 6GX£QJNKXQJQKQ WX\EL¢QGOL£X• 6GX£QJNKXQJQKQ [X¢WNK XH[SRUWGOL£X• 6GX£QJNKXQJQKQ EDRP£WGOL£Xj WD£RNKXQJQKQED£QVGX£QJFXO£QKFRFXSKDSQKVDX CREATE VIEW view_name[(column_name [, column_name] .)] AS select_statement7URQJRVHOHFWBVWDWHPHQWODP¤WFXO£QK6(/(&7GXQJ WUX\[X¢WGOL£XWP¤WKD\QKLXEDQJ.KLWD£RNKXQJQKQFQOX\P¤WV¢L PVDX• 7QNKXQJQKQSKDLWXQWKHRFDFTXLWFYQKGDQKYDSKDLGX\QK¢W¢LYLP¡LQJLVGX£QJ• .KQJWK UDQJEX¤FFDFP£FQKFDFTXLWFFKRNKXQJQKQ• .KQJWK [\G£QJFKPX£FFKRNKXQJQKQ• 7URQJFXO£QK&5($7(9,(:NKQJFQWKL¢WSKDLFKQKWQF¤W7QFXDFDFF¤WFXQJQKNL XGOL£XFXDFKXQJVHWQJQJYLFDFF¤WWURQJGDQKVDFKFKR¤QFXDFXO£QK6(/(&7• %D£QSKDL[DFQKWQF¤WWURQJFXO£QK&5($7(9,(:WURQJFDFWUQJK¤SVDX− 0¡LF¤WFXDNKXQJQKQ¤FSKDWVLQKWP¤WEL XWKFV¢KR¤FP¤WKDPFDLVQKD\P¤WKQJ− +DLKD\QKLXF¤WFXDNKXQJQKQFRWUXQJWQ− %D£QPX¢QWKD\ LWQF¤WWURQJNKXQJQKQNKDFYLWQF¤WFXDEDQJFV9GX&XO£QKGL\VHEO¡LGRWQFXDF¤WWKNKQJ[DFQK¤F CREATE VIEW thongtin_nv AS SELECT manv,hoten,datediff(year,ngaysinh,getdate()),tendv FROM nhanvien,donvi WHERE nhanvien.madv=donvi.madvj FXO£QKWUQFRWK WK£FKL£Q¤FED£QSKDL£WWQFKRFDFF¤WFXDNKXQJQKQQKVDX CREATE VIEW thongtin_nv(manv,hoten,tuoi,donvi) [...]... hơn nhiều so với việc sử dụng một tập các câu lệnh giao tác SQL theo những cách thông thường Thủ tục lưu trữ cho phép chúng ta thực hiện cùng một yêu cầu bằng một câu lệnh đơn giản thay vì phải sử dụng nhiều dòng lệnh SQL Điều này sẽ làm giảm thiểu sự lưu thông trên mạng Thay vì cấp phát quyền trực tiếp cho người sử dụng trên các câu lệnh SQL, ta có thể cấp phát quyền cho người sử dụng thông qua các... trỗnh thổỷc haỡnh SQL FROM donvi WHERE nhanvien.madonvi = donvi.madonvi AND donvi.dienthoai ='848484' Trỏửn Nguyón Phong Chổồng 3: NGN NGặẻ IệU KHIỉN GRANT ALL | statement [, ,statementN ] TO account [, ,accountN] GRANT ALL | permission [, ,permissionN] ON table_name |view_name [(column1 [, ,columnN])] |ON stored_procedure TO account [, ,accountN] Giaùo trỗnh thổỷc haỡnh SQL GRANT CREATE... hơn (nếu có thể được) Tiêu đề cột trong kết quả của phép hợp sẽ là tiêu đề cột được chỉ định trong truy vấn đầu tiên 1.8.2 Sử dụng UNION với các giao tác SQL khác Các nguyên tắc sau phải được tuân theo khi sử dụng phép hợp với các câu lệnh giao tác SQL khác: Truy vấn đầu tiên trong câu lệnh UNION có thể có INTO để tạo một bảng từ kết quả cuối cùng Mệnh đề ORDER BY và COMPUTE dùng để xác định thứ tự... SELECT nhằm loại bỏ ra khỏi kết quả truy vấn những dòng dữ liệu có giá trị giống nhau Ví dụ 2.8: nếu ta sử dụng câu lệnh: SELECT hsluong FROM nhanvien Ta sẽ có kết quả như sau: Giaùo trỗnh thổỷc haỡnh SQL hsluong 1.92 1.86 1.92 1.86 2.11 3.21 Nhưng nếu ta sử dụng câu lệnh: SELECT DISTINCT hsluong FROM nhanvien kết quả của truy vấn sẽ là: hsluong -1.92 1.86 2.11 3.21 1.6 Tạo bảng mới bằng... clause] [HAVING clause] Ví dụ 2.12: Giả sử ta có hai bảng như sau: R S A B C E F abc 3 5 edf 15 jks 5 7 hht 1 bdg 10 5 abc 3 Hht 12 0 adf 2 Thì phép hợp: SELECT A,B FROM R UNION Giaùo trỗnh thổỷc haỡnh SQL SELECT * FROM S Có kết quả như sau: A B - abc 3 adf 2 bgd 10 edf 15 hht 1 hht 12 jks 5 Theo mặc định, phép toán UNION sẽ loại bỏ những dòng giống nhau trong kết quả Nếu ta sử dụng tùy chọn...Giaùo trỗnh thổỷc haỡnh SQL AS SELECT manv,hoten,datediff(year,ngaysinh,getdate()),tendv FROM nhanvien,donvi WHERE nhanvien.madv=donvi.madv Trỏửn Nguyón Phong Chổồng 2: NGN NGặẻ THAO TAẽC Dặẻ LIU Để truy xuất dữ liệu từ các dòng... được sử dụng Các toán tử so sánh dưới đây được sử dụng để xác định điều kiện nối Phép toán ý nghĩa = Bằng > Lớn hơn >= Lớn hơn hoặc bằng < Nhỏ hơn Không lớn hơn !< Không nhỏ hơn 1.9.2 Các loại phép nối * Phép nối bằng và phép nối tự nhiên Một phép nối bằng (equijoin) là một phép nối trong đó giá trị của các cột được sử dụng để nối được so... cũng cần giữ lại những thông tin không hợp lệ bằng cách cho phép những dòng không hợp lệ có mặt trong kết quả của Trỏửn Nguyón Phong phép nối Để làm điều này, ta có thể sử dụng phép nối ngoài Giao tác SQL cung cấp hai phép nối ngoài: Phép nối ngoài trái (*=) : Phép nối này cho phép lấy tất cả các từ bảng có tên đầu tiên Phép nối ngoài phải (=*) : Phép nối này cho phép lấy tất cả các dòng từ bảng có... SELECT * FROM R,S WHERE R.A = S.E Cho kết quả là: A B C - - D E F G - - aaa 2 4 aaaa aaa 3 xxx 2 12 gdf xxx 23 26 0 k3h sss 20 3 sss 45 Còn câu lệnh: (null) Giaùo trỗnh thổỷc haỡnh SQL SELECT * FROM R,S WHERE R.A *= S.E Cho kết quả là: A B C - - - aaa 2 4 aaaa aaa (null) fff 8 4 f2 (null) (null) (null) ggg 2 7 g4 (null) (null) (null) xxx 2 12 gdf ggg 2 12 khf 0... - aaa 2 4 aaaa aaa 3 (null) xxx 2 12 gdf xxx 23 26 3 6 (null)(null) (null) (null) abc (null)(null) (null) (null) (null)12 sss 45 0 k3h sss (null) 20 3 Các giới hạn của phép nối ngoài Giao tác SQL không cho phép hai phép nối ngoài lồng nhau và phép nối trong lồng vào trong phép nối ngoài Tuy nhiên, một bảng có thể tham gia trong một phép nối trong và là bảng ngoài (outer table) trong một phép . Sử dụng UNION với các giao tác SQL khácCác nguyên tắc sau phải được tuân theo khi sử dụng phép hợp với các câu lệnhgiao tác SQL khác: Truy vấn đầu tiên. 4XLQKFDFJLDWUGOLÊXKDNKXQGDÊQJGOLÊXÔFFKRSKHSFKÂSQKÊQWUQFDFFÔWFXDEDQJUDQJEXÔF&+(&. 4XLQKJLDWUPÊFQKFKRFDFFÔWUDQJEXÔF'()$8/7 Giaùo trỗnh thổỷc haỡnh SQL7 UDQJ 7DÊRQQWQKWRDQYHÊQWKÊFWKWURQJPÔWEDQJGOLÊXYDWRDQYHÊQWKDPFKLÂXJLDFDF EDQJ