mysql的數(shù)據(jù)類(lèi)型:
- 字符型
- 數(shù)值型
- 日期時(shí)間型
- 內(nèi)建類(lèi)型
字符型:
- CHAR(不區(qū)分字符大小寫(xiě)),BINARY(區(qū)分字符大小寫(xiě)): 定長(zhǎng)數(shù)據(jù)類(lèi)型
- VARCHAR(不區(qū)分字符大小寫(xiě)),VARBINARY(區(qū)分字符大小寫(xiě)): 變長(zhǎng)數(shù)據(jù)類(lèi)型,需要結(jié)束符。
- TEXT: TINYTEXT(255個(gè)字符嫌松,2**8),TEXT(65535個(gè)字符幽告,2**16),MEDIUMTEXT(1600多萬(wàn)個(gè)字符神凑,2**24),LOGTEXT(40多億個(gè)字符象浑,2**32)
- BLOB: TINYBLOB,BLOB,MEDIUMBLOB,LONGBLOB(支持的字符數(shù)個(gè)數(shù)同上)
- ENUM,SET:
數(shù)值型:
精確數(shù)值型:
- 整型數(shù)據(jù):TINYINT(2**8),SMALLINT(2**16),MEDIUMINT,INT,BIGINT
- 十進(jìn)制型:DECIMAL
近似數(shù)值型: - 浮點(diǎn)型:FLOAT,DOUBLE
日期時(shí)間型:
- DATE(占用3個(gè)字節(jié))
- TIME(占用3個(gè)字節(jié))
- DATETIME(占用8個(gè)字節(jié)旭等,需要額外說(shuō)明哪部分是日期和時(shí)間)
- TIMESTAMP 時(shí)間戳
- YEAR(2),YEAR(4)
字符型類(lèi)型修飾符:
- NOT NULL: 非空約束
- NULL: 不寫(xiě)則為NULL
- DEFAULT 'STRING': 指明默認(rèn)值
- CHARACTER SET ' ': 使用的字符集(一般在my.cnf配置文件里指明)
- COLLATION: 使用的排序規(guī)則
mysql> SHOW CHARACTER SET;
mysql>SHOW COLLATION;
整型修飾符:
- NOT NULL
- NULL
- DEFAULT NUMBER
- AUTO_INCREMENT: UNSIGNED(無(wú)符號(hào)窖铡,緊跟在數(shù)據(jù)類(lèi)型之后)疗锐,PRIMARY KEY|UNIQUE KEY NOT NULL
mysql > select last_insert_id();(查看字段自增到哪里)
日期時(shí)間型修飾符:
- NOT NULL
- NULL
- DEFAULT
內(nèi)建類(lèi)型SET和ENUM的修飾符:
- NOT NULL
- NULL
- DEFAULT
mysql的SQL MODE: 定義mysql對(duì)約束等的響應(yīng)行為
mysql> set global sql_mode='mode';
或
mysql> set @@global.sql_mode='mode';
需要修改權(quán)限,僅對(duì)修改后新創(chuàng)建的會(huì)話有效费彼,對(duì)已經(jīng)建立的會(huì)話無(wú)效
mysql> set session sql_mode='mode';
或
mysql> set @@session.sql_mode='mode';
常用的mode: TRADITIONAL,STRICT_TRANS_TABLES,or STRICT_ALL_TABLES
SQL語(yǔ)句:
DDL: 數(shù)據(jù)定義語(yǔ)言滑臊,creat,alter,drop
DDL可使用的DB組件: 數(shù)據(jù)庫(kù),表箍铲,索引雇卷,試圖,用戶(hù)颠猴,存儲(chǔ)過(guò)程关划,觸發(fā)器,事件調(diào)度器等翘瓮。
DML: 數(shù)據(jù)操縱語(yǔ)言贮折,insert,delete,update,select