mysql的数据类型:
字符型
数值型
日期时间型
内建类型
字符型:
CHAR(不区分字符大小写),BINARY(区分字符大小写): 定长数据类型
VARCHAR(不区分字符大小写),VARBINARY(区分字符大小写): 变长数据类型,需要结束符。
TEXT: TINYTEXT(255个字符,2**8),TEXT(65535个字符,2**16),MEDIUMTEXT(1600多万个字符,2**24),LOGTEXT(40多亿个字符,2**32)
BLOB: TINYBLOB,BLOB,MEDIUMBLOB,LONGBLOB(支持的字符数个数同上)
ENUM,SET:
数值型:
精确数值型:
整型数据:TINYINT(2**8),SMALLINT(2**16),MEDIUMINT,INT,BIGINT
十进制型:DECIMAL
近似数值型:
浮点型:FLOAT,DOUBLE
日期时间型:
DATE(占用3个字节)
TIME(占用3个字节)
DATETIME(占用8个字节,需要额外说明哪部分是日期和时间)
TIMESTAMP 时间戳
YEAR(2),YEAR(4)
字符型类型修饰符:
NOT NULL: 非空约束
NULL: 不写则为NULL
DEFAULT 'STRING': 指明默认值
CHARACTER SET ' ': 使用的字符集(一般在my.cnf配置文件里指明)
COLLATION: 使用的排序规则
mysql> SHOW CHARACTER SET;
mysql>SHOW COLLATION;
整型修饰符:
NOT NULL
NULL
DEFAULT NUMBER
AUTO_INCREMENT: UNSIGNED(无符号,紧跟在数据类型之后),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';
需要修改权限,仅对修改后新创建的会话有效,对已经建立的会话无效
mysql> set session sql_mode='mode';
或
mysql> set @@session.sql_mode='mode';
常用的mode: TRADITIONAL,STRICT_TRANS_TABLES,or STRICT_ALL_TABLES
SQL语句:
DDL: 数据定义语言,creat,alter,drop
DDL可使用的DB组件: 数据库,表,索引,试图,用户,存储过程,触发器,事件调度器等。
DML: 数据操纵语言,insert,delete,update,select