您的位置:首页 > 数据库 > MySQL

31、mysql数据类型

2018-11-02 09:42 786 查看

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不区分大小写;


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  31 mysql数据类型