MySQL服务 - MySQL列类型、SQL模式、数据字典
MySQL列类型的作用:
列类型可以简单理解为用来对用户往列种存储数据时做某种范围"限定",它可以定义数据的有效值(字符、数字等)、所能占据的最大存储空间、字符长度(定长或变长)、是否能够被索引、如何被索引及如何排序等。在关系型数据库系统中,为了实现数据的易于管理,必须为表字段(列)指定对应的列类型。MySQL的列类型可以分为4类:字符型、数值型、日期及时间型、自有类型。
字符型:
字符型限定值只能为字符,MySQL的字符类型如下:
类型 最大字符长度 名称及特性
char 定长字符串,区分大小写
varchar 变长字符串,区分大小写
binary 二进制定长字符串,区分大小写
varbinary 二进制变长字符串,区分大小写 tinytext text类型是文本大对象存储,就是说它存储的并不是数据本身,而是一个指针,指向数据的存储所在位置;text不区分大小写
text
mediumtext
longtext tinyblob blob类型是二进制大对象存储,它是text的二进制形式,区分大小写
blob
mediumblob
longblob
数值型:
数值型限定只能存储数值类数据,MySQL的数值类型如下:
类型 名称 取值范围(有符号,无符号)
TINYINT 最小整数 -128到,0到
SMALLINT 小整数 -32768到,0到
MEDIUMINT 中整数 -8388607到,0到
INT 整数 -2147483647到,0到
BIGINT 大整数 -9223372036854775807到,0到
decimal 十进制
FLOAT 单精度浮点
DOUBAL 双精度浮点
日期及时间型:
日期时间型用来记录日期或时间,MySQL的日期时间类型如下:
类型 名称 取值范围
DATE 日期 '1000-01-01'到'9999-12-31'
TIME 时间 '-838:59:59'到'838:59:59'
DATETIME 日期时间 '1000-01-01 00:00:00'到'9999-12-31 23:59:59'
TIMESTAMP 时间戳 '1970-01-01 00:00:00'到’2037年某时'
YEAR 年 4位格式:到,2位格式:1970-2069(70-69),或:
自有类型:
自有类型是MySQL内置的类型,有两种:
SET:字符串集合,事先给出多个元素(最多64个)供用户选择,用户可以选多个元素填入
ENUM:枚举,事先给出多个元素(最多65536个)供用户选择,用户只能选一个元素填入
MySQL的SQL模式:
MySQL服务器可以以不同的SQL模式来操作,并且可以为不同客户端应用不同模式。这样每个应用程序可以根据自己的需求来定制服务器的操作模式。这类模式定义了MySQL应支持的SQL语法,以及应该在数据上执行何种确认检查。这样,就能在众多不同的环境下、与其他数据库服务器一起更容易地使用MySQL。MySQL常用的有三种SQL模式,传统模式、严格模式和ANSI模式。MySQL的SQL模式默认为空,该模式为非严格模式。
可以通过如下命令查看MySQL当前的SQL模式:
mysql> SHOW GLOBAL VARIABLES LIKE 'sql_mode';
mysql> SELECT @@sql_mode;
设置MySQL的SQL模式:
mysql> SET [GLOBAL|SESSION] sql_mode='modes';
或启动MySQL时指定SQL模式:
shell> mysqld --sql-mode="modes"
TRADITIONAL,传统模式:
该模式的简单描述是当在列中插入不正确的值时“给出错误而不是警告”。注释:一旦发现错误立即放弃INSERT/UPDATE。如果你使用非事务存储引擎,那么出现错误前进行的数据更改不会“回滚”,会导致结果更新“只进行了一部分”。
mysql> SET [GLOBAL|SESSION] sql_mode='TRADITIONAL';
STRICT,严格模式:
如果不能将给定的值插入到表中,则放弃该语句。严格模式具有两种:STRICT_TRANS_TABLES和STRICT_ALL_TABLES。STRICT_TRANS_TABLES对支持事务的表实行严格模式,STRICT_ALL_TALBES在所有表执行严格模式。
mysql> SET [GLOBAL|SESSION] sql_mode='STRICT_TRANS_TABLES';
mysql> SET [GLOBAL|SESSION] sql_mode='STRICT_ALL_TABLES';
ANSI模式:
更改操作的语法和行为,使其更适合标准的SQL。
数据字典:
数据字典就类似于系统编目或花名册(和目录不太相同),它保存数据库服务器上的元数据信息(数据库的整体属性信息)。元数据信息包括:关系(表)的名字、每个关系的各字段的名字、各字段的数据类型和长度约束、每个关系上的视图的名字及视图的定义、授权用户的名字、用户的授权和账户信息、统计类的数据:、每个关系字段的个数、每个关系中的行数、每个关系的存储方法;
在mysql上保存元数据的数据库有:mysql库、infomation_schema库、和performance_schema库,performance_schema库是一个虚拟的库,类似于Linux的/proc等伪文件系统。
MySQL服务 - MySQL列类型、SQL模式、数据字典的更多相关文章
- mysql基础:列类型--整型
		
mysql列类型--字符串 http://blog.csdn.net/jk110333/article/details/9342301 mysql列类型--时间和日期 http://blog. ...
 - mysql基础-数据类型和sql模式-学习之(三)
		
0x01 mysql的两种方向: 开发DBA:数据库设计(E-R关系图).sql开发.内置函数.存储历程(存储过程和存储函数).触发器.时间调度器(event scheduler) 运维----> ...
 - MySQL支持的列类型
		
MySQL支持大量的列类型,它可以被分为3类:数字类型.日期和时间类型以及字符串(字符)类型.本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述. ...
 - docker 部署mysql服务之后,执行sql脚本
		
1,先将.sql文件copy到docker容器里 docker ps //找到容器的短ID或者指定的name. docker inspect -f '{{.Id}}' id or name 得到指定 ...
 - MySQL服务 - MySQL变量类型及变量设置
		
一.MySQL变量类型: MySQL通过变量来定义当前服务器的特性,保存状态信息等.我们可以通过手动更改变量的值来配置MySQL,也可以通过变量获得MySQL的当前状态信息.MySQL的变量类型可以从 ...
 - mysql批量修改列类型-生成语句
		
SELECT CONCAT( 'alter table ', table_name, ' MODIFY COLUMN ', column_name, ' float DEFAULT NULL;' ) ...
 - Mysql的数据列类型效率
		
1. 能短就不要长.(磁盘I/O少一些) 比如固定 长度的CHAR数据列,定义 CHAR(40),而不是 CHAR(255); 比如MEDIUMINT代替BIGINT,数据表就小一些, 值的处理 ...
 - MySQL服务 - MySQL程序的配置文件、参数、变量查看
		
查看配置文件及读取顺序 MySQL的配置文件以.cnf结尾,可能会有多个,而不同版本的MySQL程序的读取配置文件的路径也都不同,要想获取MySQL读取配置文件的顺序可以通过以下指令查看: shell ...
 - MySQL服务 - MySQL 5.5编译安装
		
cmake介绍: MySQL 5.5之后,所有的编译操作都通过cmake进行,使用cmake最大的好处是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码 ...
 
随机推荐
- K-Means 聚类算法原理分析与代码实现
			
前言 在前面的文章中,涉及到的机器学习算法均为监督学习算法. 所谓监督学习,就是有训练过程的学习.再确切点,就是有 "分类标签集" 的学习. 现在开始,将进入到非监督学习领域.从经 ...
 - jQuery获取带点的id元素
			
一般jQuery获取某个id为elem元素,只需用$('#elem')就行了,但是如果id中不小心包括了'.' ,那么我吗就会发现这时候jQuery就不能获取到这个元素了.但是使用dom原生的getE ...
 - mssql 2008 游标 临时表 作业批处理失败问题
			
在项目中,写过一个作业,当订单超过1个小时未支付,则取消订单,同时返回订单使用的积分,优惠券,余额. 经过调试发现,作业存储过程中,使用了游标,而且使用了临时表,在游标第一次创建临时表时,没有问题,但 ...
 - 出现( linker command failed with exit code 1)错误总结 (转)
			
这种问题,通常出现在添加第三方库文件或者多人开发时. 这种问题一般是找不到文件而导致的链接错误. 我们可以从如下几个方面着手排查. 1.以如下错误为例,如果是多人开发,你同步完成后发现出现如下的错误. ...
 - python数据结构与算法——哈希表
			
哈希表 学习笔记 参考翻译自:<复杂性思考> 及对应的online版本:http://greenteapress.com/complexity/html/thinkcomplexity00 ...
 - Python实例1
			
1.有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 错解: 正解: 源码: #!/usr/bin/python for i in range(1,5): for j in ...
 - C#的循环语句练习
			
1.输入一个整数,算出从1到这个数每个数阶乘的和. 2.求100以内质数的和. 3.有一对幼兔,幼兔1个月后长成小兔,小兔1个月后长成成兔并生下一对幼兔,问几个月后有多少对兔子,幼兔,小兔,成兔分别是 ...
 - php-长文章分页函数
			
<?php function ff_page($content,$page) { global $expert_id; $PageLength = 2000; //每页字数 $CLength = ...
 - Oracle--用变量保存查询出来的值
			
1:在我们一般编写存储过程中比较常见的是,习惯将查询出来的一个值赋值给一个变量,这个如何实现呢,用into,代码如下 Select ID into 变量1 from 表 where 条件 2:但当 ...
 - Spark RDD API详解(一) Map和Reduce
			
RDD是什么? RDD是Spark中的抽象数据结构类型,任何数据在Spark中都被表示为RDD.从编程的角度来看,RDD可以简单看成是一个数组.和普通数组的区别是,RDD中的数据是分区存储的,这样不同 ...