DDL:數(shù)據(jù)定義語言
DCL:數(shù)據(jù)控制語言
DML:數(shù)據(jù)操作語言
表的創(chuàng)建修改刪除却紧。
表的復(fù)制:
create table qqq like jobs;//只復(fù)制表的結(jié)構(gòu)
create table qqq select * from jobs;//復(fù)制表的結(jié)構(gòu)+數(shù)據(jù)津肛。
create table qqq select job_id,job_title,//復(fù)制表的部分?jǐn)?shù)據(jù)
create table qqq select job_id,job_title where 1=2;//復(fù)制表的部分結(jié)構(gòu)
DQL:數(shù)據(jù)查詢語言
MYSQL的主要字符集:
utf8,utf8mb4.
utf8單個(gè)字符最多三個(gè)字節(jié)快毛。utf8mb4單個(gè)字符最多四個(gè)字節(jié)待牵,支持emoji(一個(gè)emoji四個(gè)字節(jié))。
latin1证鸥,5.7版本的默認(rèn)字符集僚楞。
校對(duì)規(guī)則:影響排序(比如排序時(shí)大小寫是否敏感)勤晚。
數(shù)據(jù)類型
tinyint : -128~127
int :-2^31~2^31-1
說明:手機(jī)號(hào)是無法存儲(chǔ)到int的枉层。一般是使用char類型來存儲(chǔ)手機(jī)號(hào)
char和varchar的區(qū)別
例如char(10)和 varchar(10),括號(hào)里的數(shù)字代表字符長(zhǎng)度而不是字節(jié)長(zhǎng)度赐写,char為固定長(zhǎng)度鸟蜡,這就是這個(gè)字段的長(zhǎng)度被固定為10,即使添加的數(shù)據(jù)長(zhǎng)度<10挺邀,也會(huì)自動(dòng)填充空格來使長(zhǎng)度達(dá)到10揉忘,varchar則是可變長(zhǎng)度,最長(zhǎng)不能超過10端铛,存入的數(shù)據(jù)長(zhǎng)度<10泣矛,也會(huì)是數(shù)據(jù)本身的長(zhǎng)度。
varchar的效率沒有char高禾蚕,因?yàn)関archar還會(huì)同時(shí)存在一到兩個(gè)字節(jié)用來記錄數(shù)據(jù)的長(zhǎng)度您朽,所以varchar的實(shí)際長(zhǎng)度應(yīng)該等于數(shù)據(jù)的長(zhǎng)度+1(這里的長(zhǎng)度為字符長(zhǎng)度),因此雖然varchar最大長(zhǎng)度為65535换淆,但其實(shí)他到不了這個(gè)長(zhǎng)度哗总。而且varchar的長(zhǎng)度到達(dá)一定值時(shí),會(huì)自動(dòng)把類型轉(zhuǎn)為text類型倍试,因此在存儲(chǔ)空間上讯屈,二者并沒有什么區(qū)別。
- 大于varchar(255)變?yōu)?tinytext
- 大于varchar(500)變?yōu)?text
-
大于varchar(20000)變?yōu)?mediumtext
在性能上二者好像也沒有太大差別县习。(//TODO)
但是varchar有截?cái)嗵匦凿棠福串?dāng)字符長(zhǎng)度超過括號(hào)里的值時(shí),會(huì)自動(dòng)進(jìn)行截?cái)嘣暝福鴗ext則不會(huì)哈蝇,所以有可能會(huì)放入一串非常大的數(shù)據(jù),因此還是推薦使用varchar攘已。
日期格式 - DATETIME
范圍為從 1000-01-01 00:00:00.000000 至 9999-12-31 23:59:59.999999炮赦。占用8字節(jié)長(zhǎng)度 - TIMESTAMP
1970-01-01 00:00:00.000000 至 2038-01-19 03:14:07.999999。占用4字節(jié)長(zhǎng)度
timestamp會(huì)受到時(shí)區(qū)的影響