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