31、mysql数据类型
SQL语言组成部分:
DDL: 数据定义语言(DATABASE、TABLE、VIEW)
DML: 数据操作语言(SELECT、INSERT、REPLACE、UPDATE、DELETE)
完整性定义语言:DDL的一部分功能
主键、外键、惟一键、条件、非空、事务
视图定义:虚表,存储下来的SELECT语句
事务控制:
嵌入式SQL和动态SQL:
DCL:授权
数据类型的功用:
1、存储的值类型;
2、占据的存储空间;
3、定长,变长;
4、如何被索引及排序;
5、是否能够被索引;
数据字典:系统编目(system catalog)
保存数据库服务器上的元数据
元数据:
关系的名字
每个关系的各字段的名字
各字段的数据类型和长度
约束
每个关系上的视图的名字及视图的定义
授权用户的名字
用户的授权和帐户信息
统计类的数据:
每个关系字段的个数;
每个关系中行数;
每个关系的存储方法;
保存元数据的数据库:
information_schema
mysql
performance_shcema
数据类型:
字符型
数值型
精确数值型
近似数值型
单精度浮点型
双精度浮点型
日期时间型
日期型
时间型
日期时间型
时间戳
布尔型
内建类型
ENUM, SET
字符型:
CHAR
VARCHAR
TINYTEXT
TEXT
MEDIUMTEXT
LONGTEXT
BINARY
VARBINARY
TINYBLOB
BLOB
MEDIUMBLOB
LONGBLOB
ENUM
SET
数值型:
TINYINT
SMALLINT
MEDIUMINT
INT
BIGINT
DECIMAL
FLOAT
DOUBAL
BIT
日期时间型:
DATE
TIME
DATETIME
TIMESTAMP
YEAR
CHAR、VARCHAR和TEXT几种字符型常用的属性修饰符:
NOT NULL 非空约束
NULL 允许为空
DEFAULT 'string' 默认值,不适用于TEXT类型
CHARACTER SET '字符集' 设置默认字符集
COLLATION '规则' 排序规则
查看当前的字符集
SHOW VARIABLES LIKE '%char%';
查看可用的字符集
SHOW CHARACTER SET;
设置字符集
SET character_set_filesystem = utf8;
查看可用的排序规则
SHOW COLLATION;
BINARY、VARBINARY和BLOB几种字符型常用的属性修饰符:
NOT NULL 非空约束
NULL 允许为空
DEFAULT 不适用于BLOB
整型的常用属性修饰符:
AUTO_INCREMENT 自动增长(前提:非空,且惟一;支持索引,非负值;)
UNSIGNED 无符号
NULL
NOT NULL
DEFAULT
浮点型常用修饰符:
NOT NULL
NULL
DEFAULT
UNSIGNED
日期时间型的修饰符:
NOT NULL
NULL
DEFAULT
ENUM和SET的修饰符:
NOT NULL
NULL
DEFAULT ''
MySQL SQL_MODE: SQL模式
TRADITIONAL, STRICT_TRANS_TABLES, or STRICT_ALL_TABLES
设定服务器变量的值:(仅用于支持动态的变量)
支持修改的服务器变量:
动态变量:可以MySQL运行时修改
静态变量:于配置文件中修改其值,并重启后方能生效;
服务器变量从其生效范围来讲,有两类:
全局变量:服务器级别,修改之后仅对新建立的会话有效;
会话变量:会话级别,仅对当前会话有效;
会话建立时,从全局继承各变量;
查看服务器变量:
mysql> SHOW [{GLOBAL|SESSION}] VARIABLES [LIKE ''];
mysql> SELECT @@{GLOBAL|SESSION}.VARILABLE_NAME;
mysql> SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='SOME_VARIABLE_NAME';
mysql> SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='SOME_VARIABLE_NAME';
修改变量
前提:默认仅管理员有权限修改全局变量
mysql> SET {GLOBAL|SESSION} VARIABLE_NAME='VALUE';
注意:无论是全局还是会话级别的动态变量修改,在重启mysqld后都会失效;想永久有效,可定义在配置文件中的相应段中[mysqld];
MySQL中字符大小写:
1、SQL关键字及函数名不区分字符大小写;
2、数据库、表及视图名称的大小区分与否取决于低层OS及FS
3、存储过程、存储函数及事件调度器的名字不区分大小写,但触发器区分;
4、表别名区分大不写;
5、对字段中的数据,如果字段类型为Binary类型,则区分大小写;非Binary不区分大小写;
- MySQL数据类型varchar详解
- MySQL数据类型
- MySQL数据类型详解
- mysql的数据类型
- Mysql中设置小数点用什么数据类型
- Java数据类型和MySql数据类型对应表
- MySQL中数据类型的长度问题总结
- Mybatis JdbcType与Oracle、MySql数据类型对应列表
- 数据类型的问题(mysql)
- MySQL的数据类型
- MySQL:MySQL日期数据类型、MySQL时间类型使用总结
- MySQL部分DDL(数据库定义语言(Data Definition Language)),MySQL数据库表中字段的数据类型
- mysql----选择合适的数据类型
- Java数据类型和MySql数据类型对应表
- mysql的数据类型祥解
- 一步一步学MySQL----19 MySQL中的存储引擎和数据类型
- MYSQL中timestamp数据类型的默认值及其自动更新问题
- mysql数据类型及增删改查指令
- 第三十一天 MySQL并发控制、存储引擎介绍、用户权限管理、缓存管理和数据类型选择
- MySQL数据表类型 = 存储引擎类型