nhập môn hệ quản trị Cơ sở dữ liệu phần 5 potx

21 386 0
nhập môn hệ quản trị Cơ sở dữ liệu phần 5 potx

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

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

Thông tin tài liệu

Nhp môn H qun tr c s d liu DB2 84 Hình 7.12 – Xut kt qu lý l$ch / nh#p mt lý lch ã c tùy ch-nh t* Tr giúp cu hình, kích vào trình n Configure, sau ó ch&n Import Profile -> Customize, nh c mô t trong Hình 7.13 Hình 7.13 – Nh#p mt lý lch Hình 7.14 mô t nhng trng cn c hoàn thành  nh#p mt lý lch Nhp môn H qun tr c s d liu DB2 85 Hình 7.14 – Nhp lý l$ch c tùy ch,nh Nhp môn H qun tr c s d liu DB2 86 Bài tp nhanh #4 – S" dng Tr giúp thit lp cu hình Mc tiêu Chng trình Tr giúp thit l#p cu hình có th c s dng  cu hình các kt ni c s d liu t* xa mt cách nhanh chóng và d0 dàng. Trong bài t#p nhanh này, bn s, to ch- mc cho mt c s d liu nm trên mt máy ch DB2  xa (remote DB2 server - c th hin bng máy trm ca ngi ng+i bên cnh bn, s dng c hai cách Tìm kim và Khám phá ). Mt khi c s d liu ó ã c lit kê, bn s, có th truy c#p c s d liu này ging nh là nó ang  ngay trên h thng máy ca mình. DB2 thc hin tt c các quá trình giao tip mt cách thm lng. Ghi chú Bài t#p nhanh này gi nh rng bn ang làm vic trong 1 mng máy tính. Nu không phi nh v#y, bn luôn có th s dng chính máy tính ca mình v*a làm máy ch v*a làm máy khách và làm theo các ch- d%n cho công vic cu hình di ây  kt ni n chính h thng ca bn. Th tc 1. H"i ngi bên cnh (hay ngi hng d%n bn) các thông tin sau ây : Thông tin c s d liu t* xa: (PR) Giao thc _TCPIP__ (IP) /a ch- IP hay tên máy ch _________ (PN) S cng ca th hin (instance) _________ (DB) Tên ca c s d liu _SAMPLE_ Các m7o : - Trong môi trng Windows,  ly tên ca máy ta gõ lnh hostname t* ca s dòng lnh - Trong môi trng Windows,  ly a ch- IP ta gõ lnh ipconfig t* ca s dòng lnh 2. M chng trình Tr giúp thit l#p cu hình (M7o: chng trình này có th truy c#p thông qua lnh Start) 3. M bng ch&n Selected và ch&n mc Add Database Using Wizard 4. Trong trang Source ca trình tr giúp, ch&n mc Manually Configure a Connection to a Database. Nhn nút Next  di chuyn n trang tip theo ca trình tr giúp. 5. Trong trang Protocol ca trình tr giúp, ch&n mc TCP/IP. Nhn nút Next  di chuyn n trang tip theo ca trình tr giúp. 6. Trong trang TCP/IP ca trình tr giúp, nh#p vào tên y  ca máy ch hoc là a ch- IP mà bn ã ghi li trong bc 1. Nh#p vào s cng bn ã ghi trong bc 1. Nhn nút Next  di chuyn n trang tip theo ca trình tr giúp. Ghi chú: Tùy ch&n Service Name có th c s dng nu bn có mt mc (entry) trong t#p tin Services ni b vi mt cng có s c nh ngh'a da trên cng mà máy ch t* xa ang lng nghe. Khi bn s dng tùy ch&n này, DB2 s, tìm kim trong t#p tin dch v trên máy ca bn ch không phi trên máy ch. Bn cn phi thêm mt mc vào t#p tin này nu bn mun s dng tùy ch&n trên. Nhp môn H qun tr c s d liu DB2 87 7. Trong trang C s d liu ca trình tr giúp, nh#p vào tên ca c s d liu c nh ngh'a trên máy ch t* xa mà bn ã ghi li trong bc 1  trng Database Name. / ý vic trng Database Alias c in mt cách t ng vi cùng giá tr ó nh th nào. Bí danh c s d liu (database alias) là mt cái tên mà nhng ng dng ni b trên máy ca bn s, s dng  kt ni n c s d liu này. Bi vì bn ã có mt c s d liu trên máy ca mình c nh ngh'a s)n vi tên là SAMPLE, DB2 s, không cho phép bn to tên mt c s d liu khác có cùng tên. Vì th bn phi s dng mt tên bí danh khác. Trong ví d này, hãy i bí danh c s d liu thành SAMPLE1. Bn có th nh#p vào mt li chú thích tùy ý v c s d liu này nu bn mun. Nhn nút Next  di chuyn n trang tip theo ca trình tr giúp. 8. Trong trang Data source ca trình tr giúp, bn có th (không bt buc) ng ký c s d liu (ngu+n d liu) mi này nh mt ngu+n d liu ODBC. Vic này s, t ng ng ký c s d liu ó trong chng trình qun lý ODBC ca Windows (Windows ODBC Manager) cho bn. Trong ví d này, b" du ánh  mc “Register this database for ODBC” ti vì bn s, không s dng ODBC. Nhn nút Next  di chuyn n trang tip theo ca trình tr giúp. 9. Trong trang Node Options ca trình tr giúp, xác nh h iu hành ca máy ch ni mà c s d liu t* xa ang nm ti ó. Bi vì tt c các máy trm trong phòng máy này u s dng Microsoft Windows, hãy m bo rng mc Windows trong danh sách s xung c ch&n. Trng Instance name nên c t là DB2. Nu trng này cha c t thì hãy t giá tr cho nó là DB2. Nhn nút Next  di chuyn n trang tip theo ca trình tr giúp. 10. Trang System Options ca trình tr giúp cho bn c hi  m bo rng h thng và tên máy ch ã c in chính xác và xác nh#n nhng cài t ca h thng. Nhn nút Next  di chuyn n trang tip theo ca trình tr giúp. 11. Trang Security Options ca trình tr giúp cho phép bn xác nh ni bn mun vic xác thc ngi dùng xy ra và phng thc bn mun s dng. Ch&n mc Use authentication value in server’s DBM Configuration. Cách làm này s, s dng phng thc c xác l#p bi tham s AUTHENTICATION trong t#p tin cu hình ca th hin (instance)  xa. Nhn nút Finish  to danh mc c s d liu t* xa và óng trình tr giúp li. Mt hp thoi xác nh#n s, hin ra. Nhn nút Test Connection  m bo bn có th kt ni thành công n c s d liu. Thêm vào ó,  m bo tên ngi dùng và m#t kh u mà bn cung cp là hp l trên máy ch  xa (bi vì có th tham s AUTHENTICATION ca máy ch c t giá tr là SERVER). Nu vic th kt ni thành công, bn ã to danh mc c s d liu  xa mt cách thành công. Nu vic kt ni không thành công, bn hãy quay tr li trình tr giúp và m bo rng tt c các giá tr ã c xác l#p úng (Nhn nút Change  quay li nhng cài t trong trình tr giúp) 12. M trung tâm iu khin và th xem nhng bng khác nhau trong c s d liu t* xa v*a mi c to danh mc 13. Quay tr li chng trình Tr giúp thit l#p cu hình và th to danh mc vi mt c s d liu khác, ln này s dng tu ch&n Search the Network. Làm t*ng bc trong trình tr giúp ging nh bn ã cu hình kt ni bng tay. Lu ý rng, trên nhng mng ln, vic tìm kim có th s, tn thi gian  tr v các kt qu Nhp môn H qun tr c s d liu DB2 88 8 Chng 8 - Làm vic vi các i tng d liu Chng này tho lu#n các i tng d liu nh là dng s + (schemas), dng bng (table), khung nhìn (view), ch- mc (indexes), chui (sequences)… Mt s các i tng d liu cao cp nh là các b%y s kin (triggers), các hàm do ngi dùng nh ngh'a (UDFs) và nhng th tc c lu tr s, c tho lu#n trong chng 14, SQL PL lu tr các th tc, và chng 15, trong dòng SQL PL, UDFs, Triggers. 8.1 S  S + là không gian tên (name spaces) cho t#p hp các i tng d liu. Chc nng chính ca chúng nh sau: - Cung cp cho bn các ch- d%n ca quyn s hu các i tng hay các mi quan h i vi mt ng dng. - Gom nhóm các i tng có mi quan h vi nhau. Tt c các i tng d liu trong DB2 có hai phn tên theo tiêu chu n; s + là na phn u tiên ca tên: <tên_s >.<tên_i tng> Tên i tng theo quy chu n phi là duy nht. Khi bn kt ni c s d liu và to hay tham chiu n mt i tng mà không nh rõ tên s +, DB2 s, ly mã tài khon mà bn kt ni vi c s d liu làm tên s +. Ví d, nu bn kt ni d liu m%u vi tên s dng là “arfchong”, và to mt bng bng cách s dng phát biu CREATE TABLE CREATE TABLE artist … Tên theo quy chu n y  ca bng c to ra s, là arfchong.artists. 8.2 Bng Mt bng là mt t#p hp các d liu có mi quan h vi nhau mt cách hp lý theo các ct và hàng. Phát biu bên di cung cp cho bn ví d v vic làm cách nào  to ra mt bng bng cách s dng phát biu CREATE TABLE CREATE TABLE artists { artno SMALLINT not null, name VARCHAR (50) with default ‘abc’, classification CHAR (1) not null, bio CLOB (100K) logged, picture BLOG (2M) not logged compact } Nhp môn H qun tr c s d liu DB2 89 In mytblsl Trong các phn tip theo ây, chúng ta có th mô t các phn chính ca phát biu CREATE TABLE này. 8.2.1 Kiu d liu Hình 8.1 Danh sách các kiu d liu c h tr trong DB2 Hình 8.1 – Các kiu d liu ca DB2 Các kiu d liu i tng ln (LOB) Các kiu d liu i tng ln c dùng  lu tr các chui lý t ln, các chui nh phân ln, hay các t#p tin c ch- ra trong hình 8.2 Nhp môn H qun tr c s d liu DB2 90 Hình 8.2 – Các kiu d liu LOB Các i tng kiu nh phân ln này thng c vit tt  cho d0 hiu: Mt i tng nh phân ln phi là mt BLOB, mt i tng ký t ln là CLOB, và i tng ký t ln 2 byte c.ng c bit nh là DBCLOB. Các kiu d liu c $nh ngh-a bi ngi dùng DB2 cho phép bn có th t nh ngh'a kiu d liu ca chính mình, da trên kiu d liu ca h thng. /iu này c xem nh là vic có b kiu d liu do ngi dùng t nh ngh'a (UDTs). UDTs c dùng khi: - Có nhu cu thit l#p ng cnh cho các giá tr - Có nhu cu cn ép kiu d liu DB2. Các phát biu theo sau âu mô t mt ví d v vic s dng UDTs nh th nào và khi nào CREATE DISTINCT TYPE POUND AS INTEGER WITH COMPARISIONS CREATE DISTINCT TYPE KILOGRAM AS INTEGER WITH COMPARISIONS CREATE TABLE person { F_name VARCHAR (30), Weight_p POUND NOT NULL, Weight_k KILOGRAM NOT NULL } Trong ví d này, có 2 UDTs c to ra là: POUND and KILOGRAM. C hai u c xây ng da trên kiu d liu s)n có ca h thng INTEGER. Mnh  WITH COMPARISIONS c nh ngh'a nh là phn cú pháp ch- ra rng vic thay các hàm vi cùng tên c.ng ging nh vic các kiu d liu s, c to ra. Bng person dùng 2 UDTs mi trong ct weight_p và weight_k theo tun t. Nu bây gi chúng ta a ra phát biu sau: SELECT F_NAME FROM PERSON WHERE weight_p > weight_k Nhp môn H qun tr c s d liu DB2 91 Bn s, nh#n c mt thông báo li vì vic so sánh 2 ct vi kiu d liu khác nhau. Th#m chí weight_p và weight_k dùng d liu là POUND và KILOGRAM, theo th t, c hai trng này u c da trên kiu d liu là INTEGER. Tuy nhiên bng vic to UDTs thì bn không th thc hin loi so sánh này. /ây chính là nhng gì bn mun, bi vì trong cuc sng thc, làm th nào  so sánh gia pound và kilogram? Nó s, vô lý. Trong ví d k tip, bn mun so sánh ct weight_p vi kiu d liu integer. Tuy nhiên hai kiu d liu này khác nhau, vì th bn s, nh#n c thông báo li tr* khi bn s dng mt hàm ã ép kiu. Nh bn thy trong phát biu bên di, chúng tôi s, dùng hàm ép kiu POUND()  iu so sánh này có th thc hin c. Nh ã nêu  trên hàm ép kiu POUND() c to ra vi UTD khi triu g&i WITH COMPARISIONS ca phát biu CREATE DISTINCT TYPE. SELECT F_NAME FROM PERSON WHERE weight_p > POUND (30) Các giá tr$ NULL Mt giá tr null i din cho mt rng thái không xác nh. Tuy nhiên, phát biu CREATE TABLE có th nh ngh'a mt ct bng cách s dng mnh  NOT NULL. /iu này m bo rng ct này s, cha giá tr d liu c bit n. Bn c.ng có th ch- nh giá tr mc nh cho ct nu NOT NULL c khai báo. Phát biu k tip cung cp ví d cho iu này: CREATE TABLE Staff { ID SMALLINT NOT NULL, NAM E VARCHAR (9), DEPT SMALLINT NOT NULL with default 10, JOB CHAR (5), YEARS SMALLINT, SALARY DECIMAL (7, 2), COMM DECIMAL (7, 2) with default 15 } 8.2.2 Ct khoá chính (Identity columns) Ct khoá chính này là mt con s c to ra t ng, s này là duy nht cho mi dòng. Ch- có mt ct khoá chính cho mt bng. Có hai cách to ra giá tr cho ct khoá chính, iu này ph thuc vào vic nó c nh ngh'a nh th nào: - Luôn luôn c sinh ra: nhng giá tr luôn luôn c DB2 sinh ra. Các ng dng thì không c phép cung cp nhng giá tr c th. - Sinh ra mc nh: giá tr có th c cung cp c th bi mt ng dng hoc, nu không có giá tr cho trc, thì DB2 s, sinh ra. DB2 không th m bo c tính duy nht. Tùy ch&n này c d nh phc v cho vic truyn d liu, và cho vic unload và reload ca mt bng. Hãy xem qua ví d sau: Nhp môn H qun tr c s d liu DB2 92 CREATE TABLE subscriber (subscriberID INTEGER GENERATED ALWAYS AS IDENTITY (START WITH 100 INCREMENT BY 100), firstname VARCHAR (50), lastname VARCHAR (50)) Trong ví d này, ct subscriberID là mt INTEGER c nh ngh'a nh là mt ct khoá chính thuc loi luôn luôn c sinh ra t ng. Giá tr c sinh ra s, bt u t* 100, và nó s, c tng lên vi bc là 100. 8.2.3 Các  tng tun t (Sequence object) Các i tng tun t sinh ra mt con s duy nht da vào c s d liu. Không ging nh các ct khóa chính, các i tng tun t này là nhng bng c l#p, xem ví d minh h&a  phát biu sau: CREATE TABLE t1 (salary int) CREATE SEQUENCE myseq START WITH 10 INCREMENT BY 1 NO CYCLE INSERT INTO t1 VALUES (nextval for myseq) INSERT INTO t1 VALUES (nextval for myseq) INSERT INTO t1 VALUES (nextval for myseq) SELECT * FROM t1 SALARY 10 11 12 3 record(s) selected SELECT prevval for myseq FROM sysibm.sysdummy1 1 12 1 record(s) selected PREVVAL cung cp cho bn giá tr hin ti ca dãy tun t, trong khi NEXTVAL cung cp giá tr k tip. Ví d bên trên c.ng s dng SYSIBM.SYSDUMMY1. ây là mt bng danh mc h thng mà nó ch- có mt ct và mt hàng. Nó có th c dùng trong tình hung nh mt câu truy vn yêu cu tr v ch- mt giá tr. Các bng danh mc h thng c mô t trong phn k tip. 8.2.4. Các bng danh sách h thng Mi c s d liu có các bng danh sách h thng ca riêng nó. Các bng này lu tr siêu d liu v các i tng c s d liu. Bn có th truy vn nhng bng này nh bt k bng c s d liu bình thng khác. Ba s + c s dng  nh#n dng các bng danh sách h thng: • SYSIBM: các bng c s, ti u hóa s dng DB2 • SYSCAT: khung nhìn (view) da trên bng SYSIBM, ti u s d0 s dng. Nhp môn H qun tr c s d liu DB2 93 • SYSSTAT: các s liu thng kê c s d liu Sau ây là mt vài ví d v các khung nhìn ca danh mc: • SYSCAT.TABLES • SYSCAT.INDEXES • SYSCAT.COLUMNS • SYSCAT.FUNCTIONS • SYSCAT.PROCEDURES 8.2.5. Khai báo các bng tm thi Khai báo bng tm thi là các bng c to ra trong b nh, c s dng bi mt ng dng và c t ng xóa khi ng dng kt thúc. Nhng bng này ch- có th c truy nh#p bi ng dng to ra chúng. Không có bn ghi nào c sinh trong bng danh sách ca DB2. Truy nh#p nhng bng này có hiu qu rt cao bi vì không có s tranh chp danh sách, các hàng không b khóa, không ghi nh#t ký (tùy ch&n), và không kim tra quyn. C.ng có h tr ch- mc cho các bng tm thi này, ó là, bt c ch- mc chu n nào c.ng có th c to trên mt bng tm thi. Bn c.ng có th chy lnh RUNSTATS vi các bng này. Khai báo các bng tm thi  bên trong mt không gian s dng ca bng tm thi, ây là cái phi c nh ngh'a trc khi to ra bt c bng tm thi nào. Các phát biu di ây cung cp mt ví d làm th nào  to ba khai báo bng tm thi: CREATE USER TEMPORARY TABLESPACE apptemps MANAGED BY SYSTEM USING ('apptemps'); DECLARE GLOBAL TEMPORARY TABLE temployees LIKE employee NOT LOGGED; DECLARE GLOBAL TEMPORARY TABLE tempdept (deptid CHAR(6), deptname CHAR(20)) ON COMMIT DELETE ROWS NOT LOGGED; DECLARE GLOBAL TEMPORARY TABLE tempprojects AS (fullselect) DEFINITION ONLY ON COMMIT PRESERVE ROWS NOT LOGGED WITH REPLACE IN TABLESPACE apptemps; Khi mt khai báo bng tm thi c to ra, s + ca nó là SESSION, và phi c ch- tng minh. ID ngi dùng c s dng  to mt bng tm thi s, có tt c quyn trên bng. Mi ng dng to mt bng tm thi s, quyn c l#p ca riêng nó c ch- ra trong Figure 8.5. [...]...Nh p môn H qu n tr c s d li u DB2 94 Figure 8 .5 – Ph m vi c a các b ng t m th i toàn c c công khai Bài t p nhanh #5 - Kh i t o m t b ng m i M c tiêu / n ây, b n có th s d ng nh ng b ng có s)n trong c s d li u SAMPLE minh h&a các khái ni m Cu i cùng, b n s, c n... employee_copy ALL IMMEDIATE UNCHECKED N u b n thích làm vi c v i Trung tâm i u khi n h n, b n có th th c hi n công c LOAD và SET INTEGRITY nh trong hình 9.4 và 9 .5 t ng ng Hình 9.4 - Th c hi n công c LOAD Nh p môn H qu n tr c s d li u DB2 104 Hình 9 .5 - Th c hi n công c SET INTEGRITY 9.4 Công c db2move T i m t th i i m, công c EXPORT, IMPORT, và LOAD ch- làm vi c trên m t b ng M c dù b n có th vi t m t k... t hình nh c nh ngh'a nh m t c t “NULLABLE” B n có ngh' t i sao c t c nh ngh'a nh th ? 5 4 ây, t t c thông tin b t bu c cho vi c t o b ng u c cung c p B ng cách nh y sang các trang khác, b n coi nh ang ch&n các giá tr m c nh cho nh ng tùy ch&n ó B n có th thêm các khóa và ràng bu c sau khi m t b ng v*a c t o Nh p môn H qu n tr c s d li u DB2 96 6 Thêm m t ràng bu c t i b ng h n ch các giá tr trên c... nh hình 8.6: Hình 8.6 – Th c hi n tr giúp thi t k t& Trung tâm i u khi n Hình 8.7 Cho th y tr giúp thi t k Theo sau là các b thi t k g i ý t* DB2 ch ng d%n t c cách Nh p môn H qu n tr c s d li u DB2 98 Hình 8.7 – Tr giúp thi t k 8 .5 Tính toàn v.n tham chi u Toàn v7n tham chi u cho phép c s d li u qu n lý c các quan h gi a các b ng B n có th thi t l#p ki u cha-con (parent-child) c a các quan h gi a... là SUPPLIES B n c.ng có th gõ vào m t ghi chú tùy ý Nh n vào nút Next ti p t c t i trang sau c a h ng d%n 4 T* trang này, b n có th thêm các c t vào b ng Nh n nút ADD thêm các c t Nh p môn H qu n tr c s d li u DB2 95 Gõ “product_id” vào Column name và ch&n ki u là INTEGER B" d u ki m Nullable, và nh n vào nút Apply nh ngh'a c t L p l i b c này cho nh ng c t còn l i c a b ng s d ng các tùy ch&n c chc... empno foreign key workdept reference department on delete no action) in DMS01 Hình 8.8 - Ví d v toàn v.n tham chi u gi a các b ng Trong toàn v7n tham chi u, th ng s d ng các khái ni m sau: PHONENO Nh p môn H qu n tr c s d li u DB2 Khái ni m B ng cha (Parent table) B ng ph thu c (Dependant table) Khóa chính (Primary key) Khóa ngo i (Foreign key) 99 Mô t B ng d li u i u khi n ch a khóa chính B ng d li... c áp t d li u phù h p v i c tính nào ó ho c các quy t c trong kinh doanh c a d li u Ví d , n u m t c t c a b ng là gi i tính, nó có th c ép ch a m t trong hai giá tr là “M” cho nam và “F” cho n Nh p môn H qu n tr c s d li u DB2 100 9 Ch ng 9 – Công c di chuy n d li u Nh ng công c hay câu l nh c mô t trong ph n này c s d ng di chuy n d li u trong cùng m t c s d li u hay qua nh ng c s d li u khác nhau... ng Công c LOAD thì nhanh h n vì nó i tr c ti p n nh ng trang c s d li u mà không c n t ng tác n h th ng DB2; tuy nhiên, ph ng th c này không th t o ra nh ng ki m tra ràng bu c i v i d li u, và s, Nh p môn H qu n tr c s d li u DB2 101 không th c hi n c các b%y s ki n (n u có) / m b o m t cách kiên nh vi c n p d li u dùng công c LOAD, l nh SET INTEGRITY th ng c s s ng theo sau Nh ng ph n ti p theo sau... (popup menu) t* ó b n có th ch&n Export Sau khi ch&n m c này, c a s h ng d%n t*ng b c s, hi n lên Ch- c n n gi n làm theo nh ng b c cung c p s)n trong h ng d%n này hoàn thành quá trình th c hi n Nh p môn H qu n tr c s d li u DB2 102 9.2 Công c IMPORT (nh p) Công c IMPORT c dùng n p d li u t* m t t p sang m t b ng nh ã nói tr c ây / ng sau nó, m t thao tác SQL INSERT c th c thi th c s Khi m t l nh... c theo 3 giai o n: LOAD, BUILD và DELETE Ví d sau ây n p t t c các d li u t* t p employee.ixf có nh d ng IXF vào trong b ng employee_copy L a ch&n REPLACE là m t trong nh ng l a ch&n có s)n trong Nh p môn H qu n tr c s d li u DB2 LOAD Trong tr ng h p này, nó trong b ng employe_copy 103 c s d ng REPLACE t t c các d li u có LOAD FROM employee.ixf OF IXF REPLACE INTO employ_copy Sau khi th c thi câu l . nó c ch- ra trong Figure 8 .5. Nhp môn H qun tr c s d liu DB2 94 Figure 8 .5 – Phm vi ca các bng tm thi toàn cc công khai Bài tp nhanh #5 - Khi to mt bng mi Mc. c hoàn thành  nh#p mt lý lch Nhp môn H qun tr c s d liu DB2 85 Hình 7.14 – Nhp lý l$ch c tùy ch,nh Nhp môn H qun tr c s d liu DB2 86 Bài tp nhanh. DEPT SMALLINT NOT NULL with default 10, JOB CHAR (5) , YEARS SMALLINT, SALARY DECIMAL (7, 2), COMM DECIMAL (7, 2) with default 15 } 8.2.2 Ct khoá chính (Identity columns) Ct khoá

Ngày đăng: 08/08/2014, 20:21

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan