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