PHP ?? ?? ???? ??, ?? ??, ?? ? ???
??? ??
MySQL? ???? ?????. ????? ??? ??? ???????. ?? ??? ??? ??? ??? ?????. ??? ??? ????? ?? ??? ??? ???? ???. ?? ??? ??? ?? ????? ??????.
MySQL??? ??? ??? ?? ???? ????.
?? ??(??, ?? ???)
??? type
?? ?? ??
?? ??
?? ??
???? ??? ??? ????. ????? PHP Academy???.
MySQL? ???????? ?? ??? ? ?? ??? ???? ?? ? ??? ??? ?? ?? ??? ??? SQL ??? ?????. ?? ?? ?? ??? INT(6)? ????
? ???????? ??? ? 6?? ??? ?? ???? ???? ????? ???. ?? ???? ???? ??? ??? ??? ? ?? ?? ???? ??? ??? ????.
??:
??? ??? ??? ? ?? ?? ?? ??? ???? ??? ??? ? ????. 0? ??? ???? 1? ??? ?????. ? ? ??? ????? 2? ??????.
??? ??? ????? ??? ??? ??? ? ?? ?? ??? ??? ? ????. ?? ???? ????
??? ?? ?????. ?? ??? ???? ?? ?? ??? ?????? ???? ??? ? ??? ?? ??? ??? ?????.
?? ????
??:
?? ???? ???? ???? ???? ??? ?? ? ????.
??? ???? ?? ??? ??? ???. MySQL??? ????? ???? ?????. ?? ?? ? ?? ? ?? ???? ?? ?? ??? ????? ?? ?? ??? ?? ??? ?? ?? ??(?? ??? ??) ??? ???? ?? ????.
?? ??
*CHAR * ??? ?? ?? ???? ???? ?? ?? ?? ???? ???? ???? ???. ? ?? ???? ??? 0-255???. ??? ???? ? ?? ???, ??? ???? ?? ?? ???? ?????.
*VARCHAR * ? ??? ?? ??? ???? ??? ???? ?? ?? ??? ???? ?????. ?? VARCHAR ??? ?? ????? ???? ???? ???? ? ??? ??? ??? ?????.
??? ???? ???? ??? ????? ? ?? ?? ?????. ?????.
VARCHAR ??? ?? ??? ?? ??? ?? ??? ???? ??? ? ???? ??? ??? ?? ?? ???? ?? ?? VARCHAR ??? ???? ??? ??? ?? ???? ?? ???? ???? ? ????.
??? ?? ? blob ?? ?? ?? ?? ??? 255? ???? ?? MySQL? TEXT? BLOB? ? ?? ??? ?????. ??? ?? ??? ???? ??? ?? ?? ?? ?? ??? ????. ??? ??? ???? ??? ???? ???, ??? ??? ?? ???? ??? ??? ???? ? ?????.
TEXT?? BLOB?? ??? ??? ??? ????. BLOB ??? ????? ????? TEXT? ????? ???? ????. ??? BLOB ? TEXT ?? ???? ?? ???? ???? ????.
?? ??
??:
?? ??? ? ????? ?? ???? ????. int? ???? ??? ???? ?? ?????. ?? ??? ? ??? ??? ? ???? ??? Unix ?????? ?????. ????? ?????? ?? ?? ??? ???? Unix ?????? ???? ??? ? ?? ???? ?????. ?? ??? ?? ?? ??? ???? ? ?????????? ???? ??? ???? ?? ?? ??/?? ??? ???? ??? ???? ??? ????.?? ??
MySQL? ENUM ?? ???? ???? ?? ???? ???? ????, ? ?? ??? ?? ?????. ?? ? ????? ?? ?? ??? 0? ??? ?? ???? ??? ???? ??? ???? ?? ? ??? ?????.
2.SET ?? SET ??? ENUM ??? ????? ????? ????. SET ??? ?? ??? ????? ??? ?? ?? ?? ? ????. ??? ENUM ??? ????? SET ?? ??? ?? ???? ?? ?? ????? ?? MySQL? ? ???? ???? ???. ???? ??? ???? ??? ?? ??? ???? ???? MySQL? ???? ??? ???? ???? ??? ?????.
SET ???? ?? 64?? ??? ??? ? ????. SET ???? ?? ?? ??? ???? "??"? ?? ???? ?????. ??? ??? ??? ?? ???? ??? ???? ???? ?????.
?? ??? ??? ????? SET ??? ? ?? ??? ??? ???? ?? ??????.
SET ?? ???? ??? ???? ???? ? ????? ?? ? 0? ??? ?? ??? ???.
??? ?????
???? ?? ?? ??? ????, ????? ??? ? ?? ??? ???? ???.
?:
CREATE TABLE IF NOT EXISTS ?? (
id int(11) NOT NULL,
username varchar(50) NOT NULL,
password char( 32) NOT NULL,
content longtext NOT NULL,
createtime datetime NOT NULL,
sextinyint(4) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
?? ?? ?? ??
UNSIGNED(unsigned) ?? ? ?? ??? ??? ?? ???? unsigned? ?????. ?, ?? -(?? ??)? ????.
? ? ?? ???. Tinyint ??? ? ??? -128~127???. ?? ?? ?? ? 0~255 ??? ??? ? ????.
?? ? ?? ?? ?? ??? ?? ?? ??? ?????.
unsigned
ZEROFILL(0 ??) 0 ( ?? ??)? ???? ?? ?? ??? ? ????. MySQL ??????? ?? ?? ???? ?? ????? ? ???? ??????.
?? ? ??? ?????.
zerofill
default ?? ??? ?? ??? ?? ?? ? ??? ?? ?????. MySQL? ?? ?? ??? ?? ??? ???? ???? ? ?? ???? ???. ?? ? ??? BLOB ?? TEXT ?? ?? ??? ? ????. ? ?? NULL ??? ??? ?? ???? ???? ??? ???? NULL? ??, ??? ??? ???? ??? ??? ??? ?? ?????.
?? ? ?? ?? ?? ??? ?? ??? ????.
?? '?'
not null ?? not null? ??? ?? ?? ?? Null ?? ??? ? ????. ??? ?? ?? ??? ?????? ???? ??? ??? ????? ??? ????? ?? not null ??? ???? ?? ????.
??? ? ?? ?? ?? ??? ?? ?? ?????.
not null
null ?? null ??? ???? ?? ?? ?? ????? ??? ???? ?? ?? ?? ? ????. null? ? ????? 0? ?? "??"? ????? ?? ?????.
?? ? ?? ?? ?? ??? ?? ? ?? not null? ???? ???.
???
?????
???, ???, ??, ????? ? ? ???? ??????. ????? ???? ??? ?????, ? ???? ?? ?????.
?? ??? ?? ???? ???? ??? ?????.
?? ??? ???? ?? ??? ?????.
?:
?? ??? ?? ??? ??? ? ?? ???? ???? ???? ???.
???? ??? ?? ??? ???? ?????. ??? ???? ??? ??? ??? ? ????. ??? ??? ??????? ????.
?? ??? ?? ??? ??, ?? ?? ??? ?????. ??? ?? ??? ?? ?? ?? ? ??? ??? ?? ??? ??? ? ? ?? ??? ????? ??? ? ??? ????.
?? ??? ?? ?? ??
??? ??? ? ??:
?? ???? ?? ??
????????? ?? ?? ??? ??????
?? ?? ??:
ASCII
ASCII ??? 7?? ?? 8?? ???? ??? ??? ???? 128 ?? 256?? ??? ??? ?????. ?? ASCII ????? ?? ?? ASCII ??? 7?? ???? ???? ?? ???? ???, ?? 0~9, ??? ? ?? ??? ???? ?? ?? ??? ?????.
? ?
0~31? 127(? 33?)? ?? ?? ?? ?? ?? ??(???? ?? ??? ??)???. ?? ?? ?? ??: LF(? ??), CR(??? ??) ), FF( ??? ??), DEL(??), BS(?????), BEL(?) ? ?? ?? ??: SOH(??? ??), EOT(??? ?), ACK(??) ? .; ASCII ?? 8, 9, 10 ? 13?? ?? ?????, ?, ? ?? ? ??? ?? ??? ?????. ?? ??? ??? ??? ?? ????? ?? ??? ??? ?? ??? ????.
32~126(? 95?)? ??(32? ??)??, ? ? 48~57? 0?? 9??? 10?? ???? ?????.
?? 65~90? ??? ??? 26?, ?? 97~122? ?? ??? 26?, ???? ???, ?? ?? ????.
GBK
GBK? ?? ??? GB 2312 ???? ?????. ???????? ??? ?? ??? ??? ????. ?? ??? GB2312???.
????
????(????, ???? ??, ????) ????? ??? ?? ???? ??? ??? ? ?? ?????? ??? ?? ??? ?????. ?? ?? ? ?? ??? ??? ?? ? ?? ?? ??? ?????.
UTF-8
? ????? ?? ?? ?? ????? ?? ????? ???. UNICODE? ASCII?? ? ?? ??? ???? ?? ??? 0? ASCII? ??? ?? ?????. ??? ??? ???? ?? ? ?? ?? ??? ?? ??? ????? ?? Universal Transformation Format, ? UTF(Universal Transformation Format)
?? ??? ???? ???
????? ?? ???? ?? ??? utf-8? GBK? ?????.
?? ??? ?? ??? ????.
(?? 1)? ??? ?? MySQL ?? ??? ? ???? ???? ??? ? ? ????.
1. ?? ??
2. ??
3. ????? bin? ?? ?? ??? ????, ?? ci? ?? ? ?? ? ????? ???? ?? ??? ?????.
??:
mysql? utf-8? ??? ? utf8? ?????. ?? ???? ???? ????.?????MySQL? ?? ???? ???? ??? ???? ???? ??? ?? ??? ???? ??? ???? ??? ??? ?? ? ????.
??? ???? ?? ?? ??? ?? ??. ?? ???? Alibaba ? NetEase? ????? ???? MySQL ??? ??? ?? ????.
?? ?? "?????? ?? ???"?? ???? ???? ???? ?? ? ????. mysql? ???? ??? ? ?? ??? ??? ? ????.
mysql ???? ??:
showengines
?? ???? ???? ?? ??? ?????.
????? ???? ? ?? ??? ???? ? ????? ???? ? ?? ??? ?? ?????. ???? ?? ???? ??? ??? ?? ??? ?? ????.
MyISAM
? ????, ??? ??(??? ?? ??, ??? ?? ???? ??)? ???? ??? ?? ??? ???? ?????. ??? ?????. ?? ?? ?? ??? ?? ?????.
- myisam ???? ?? ???? myd? myi? ?????. .myd? ??? ??? ???? ? ???? .myi? ??? ??? ???? ? ?????.
- myisam ???? ?? ???? ?? mysql ??????? ??? ??? ???? ??? ??? ??? ?? ?? ???? ?????.
- InnoDB
- ? ?? ??? ???? ??(OLTP) ??????? ?? ????? ?????.
- ? ?? ???? ?? ?? ?????. ?, ?? ??? ????? ??? ????.
- InnoDB? ??? ??? ?? ? ?? ??? ????? ???????.
??:
? ??: ?? ??? ???? ???? ?? ? ???? ?? ?? ? ?? ????.
??? ??: ?? ? ???? ?? ?? ?? ??? ???? ???? ???? ???? ????.
????: ??? ?? ? ??? ???? ??? ?? ???? ?????. ?? ???? ??? ? ????. ??, ?????, ?? ? ?? ????? ????? ?????.
???
???? ??? ??? ?? ???, ??? ???, ??? ?? ?? ?? ?????.
??? ???? ?? ????? ???? ?? "張"? ???? ?? ????? ? ????? ??? ????? ???? ? ? ???, ?? ?? ? ??. ??? ????? ??? ? ?? ????. ?? ????? ???? ?? "Zhang"? ????. Zhang? ? ??? z??, z? ???? ??? 900??? ???? ???? ? 1??? ??? ????. ??? ?? ?? ??? ???? ?????.
??? ?? ?? ?? ?? ?? ??? ?? ? ?????.
???? ???? ??? MySQL? ??? 1?? ??? ?? ?? ?? ?? ??? ?? ???? ??? ???. ???? ??? ??? ? ????. ???? ??? ?? ???? ??? MySQL? ?? ???? ? ?? ?? ??? ??? ??? ???? ??? ??? ??? ? ????.
?? ???? ?? ?? ???? ?? ?? ????. ???? ?? ????? ?? ??? ?????. ??? ???? ? ? ???? ???? ?? ?????.
MySQL ??? ??