Professional Documents
Culture Documents
Cc kiu d liu s
Bng sau m t mt cc kiu d liu s trong MySQL: Kiu TINYINT SMALLINT Min gi tr c du -128 to 127 -32768 to 32767 Min gi tr khng du Lu tr 0 to 255 0 to 65535 0 to 16777215 1 byte 2 bytes 3 bytes
FLOAT
DOUBLE [PRECISION]/REAL
8 bytes
DEC/DECIMAL/NUMERIC/FIXED
Cc kiu d liu xu
Trong MySQL, xu c th lu mi th t d liu vn bn ti d liu nh phn nh nh, file. Xu c th c so snh v tm kim da trn mu s dng mnh LIKE hoc biu thc chnh quy. Bng pha di l cc kiu d liu xu trong MySQL: Kiu d liu xu M t CHAR Mt chui k t c di c nh VARCHAR Mt chui k t c di c th thay i BINARY Mt chui nh phn di c nh VARBINARY Mt chui nh phn di c th thay i TINYBLOB Mt i tng nh phn rt nh BLOB Mt i tng nh phn nh MEDIUMBLOB Mt i tng nh phn c trung bnh LONGBLOB Mt i tng nh phn c ln TINYTEXT Mi chui vn bn rt nh TEXT Mi chui vn bn nh MEDIUMTEXT Mi chui vn bn c trung bnh LONGTEXT Mi chui vn bn rt di
2. To bng
to bng, s dng cu lnh CREATE TABLE. Cu lnh c cu trc nh sau
1 CREATE TABLE [IF NOT EXISTS] table_name( 2 column_list 3 ) type=table_type
MySQL h tr ty chn IF NOT EXISTS trnh li to bng tn ti trong CSDL table_name l tn bng mun to. Sau l nh ngha tp cc ct. Cc ct c lit k vi cc thuc tnh nh kiu d liu, kch c, d liu khng c php trng (NOT NULL) C th xc nh kiu bng mun to, nu khng xc nh th MySQL s s dng kiu bng ngm nh. MySQL h tr cc kiu bng lu tr khc nhau, cho php ti u CSDL theo mc ch s dng. Mt s kiu bng trong MySQL nh MyISAM, InnoDB, BerkeleyDB (BDB), MERGE, HEAP
MyISAM: Cc bng MyISAM lm vic rt nhanh, nhng khng h tr giao dch. Thng c s dng trong cc ng dng Web, l kiu bng ngm nh trong cc phin bn MySQL trc 5.5 InnoDB: Cc bng InnoDB h tr giao dch an ton, h tr kha ngoi. InnoDB l kiu lu tr ngm nh t phin bn MySQL 5.5 V d to bng employees
CREATE TABLE employees ( employeeNumber into(11) NOT NULL, lastName varchar(50) NOT NULL, firstName varchar(50) NOT NULL, extension varchar(10) NOT NULL, email varchar(100) NOT NULL, officeCode varchar(10) NOT NULL, reportsTo int(11) default NULL, jobTitle varchar(50) NOT NULL, PRIMARY KEY (employeeNumber) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Xc nh kha chnh ca bng s dng t kha PRIMARY KEY. Nu bng c nhiu hn mt kha chnh, c th khai bo nh sau:
CREATE TABLE payments ( customerNumber int(11) NOT NULL, checkNumber varchar(50) NOT NULL, paymentDate datetime NOT NULL, amount double NOT NULL, PRIMARY KEY (customerNumber,checkNumber) ); CREATE TABLE city ( city_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, city VARCHAR(50) NOT NULL, country_id SMALLINT UNSIGNED NOT NULL, last_update TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (city_id), CONSTRAINT `fk_city_country` FOREIGN KEY (country_id) REFERENCES country (country_id) ON DELETE RESTRICT ON UPDATE CASCADE )
T kha FOREIGN KEY c dng xc nh kha ngoi. Trong v d trn xc nh ct country_id lm kha ngoi, tham chiu n kha chnh ca bng country.
Hin th m t bng
hin th thng tin v cu trc bng, c th s dng cu lnh DESCRIBE nh sau:
DESCRIBE table_name;
V d:
DESCRIBE employees;
Kt qu tr v t MySQL server
+----------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------------+--------------+------+-----+---------+-------+ | employeeNumber | int(11) | NO | PRI | NULL | | | lastName | varchar(50) | NO | | NULL | | | firstName | varchar(50) | NO | | NULL | | | extension | varchar(10) | NO | | NULL | | | email | varchar(100) | NO | | NULL | | | officeCode | varchar(10) | NO | | NULL | | | reportsTo | int(11) | YES | | NULL | | | jobTitle | varchar(50) | NO | | NULL | | +----------------+--------------+------+-----+---------+-------+
Cu lnh SHOW CREATE TABLE Table_Name s hin th v cu lnh s dng khi to bng
MySQL cho php nhiu hnh ng sa i bng ti mt thi im phn cch nhau bi du phy.
4. Xa bng
xa bng khi CSDL, s dng cu lnh DROP TABLE
DROP TABLE [IF EXISTS] table_name [, table_name,...]
MySQL cho php xa nhiu bng cng lc bng cch lit k tn cc bng cch nhau bi du phy. Ty chn IF EXISTS c s dng trnh xa bng khng tn ti trong CSDL
5. Bi tp thc hnh
To CSDL Classicmodels gm cc bng sau: