MySQL服务 - MySQL列类型、SQL模式、数据字典

一、MySQL列类型的作用:

列类型可以简单理解为用来对用户往列种存储数据时做某种范围"限定",它可以定义数据的有效值(字符、数字等)、所能占据的最大存储空间、字符长度(定长或变长)、是否能够被索引、如何被索引及如何排序等。在关系型数据库系统中,为了实现数据的易于管理,必须为表字段(列)指定对应的列类型。MySQL的列类型可以分为4类:字符型、数值型、日期及时间型、自有类型。

1.字符型:

字符型限定值只能为字符,MySQL的字符类型如下:

类型            最大字符长度         名称及特性
char            255                定长字符串,区分大小写
varchar         65535              变长字符串,区分大小写
binary          255                二进制定长字符串,区分大小写
varbinary       65535              二进制变长字符串,区分大小写

tinytext        255                text类型是文本大对象存储,就是说它存储的并不是数据本身,而是一个指针,指向数据的存储所在位置;text不区分大小写
text            65535
mediumtext      16777215
longtext        4294967295

tinyblob        255                blob类型是二进制大对象存储,它是text的二进制形式,区分大小写
blob            65535
mediumblob      16777215
longblob        4294967295

2.数值型:

数值型限定只能存储数值类数据,MySQL的数值类型如下:

类型            名称              取值范围(有符号,无符号)
TINYINT         最小整数      -128到127,0到255
SMALLINT        小整数            -32768到32767,0到65535
MEDIUMINT       中整数            -8388607到8388607,0到16777215
INT             整数        -2147483647到2147483647,0到4294967295
BIGINT          大整数            -9223372036854775807到9223372036854775807,0到18446744073709551615
decimal         十进制
FLOAT           单精度浮点
DOUBAL          双精度浮点

3.日期及时间型:

日期时间型用来记录日期或时间,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位格式:1901到2155,2位格式:1970-2069(70-69),或:0000

4.自有类型:

自有类型是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"

1.TRADITIONAL,传统模式:

该模式的简单描述是当在列中插入不正确的值时“给出错误而不是警告”。注释:一旦发现错误立即放弃INSERT/UPDATE。如果你使用非事务存储引擎,那么出现错误前进行的数据更改不会“回滚”,会导致结果更新“只进行了一部分”。

mysql> SET [GLOBAL|SESSION] sql_mode=‘TRADITIONAL‘;

2.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‘;

3.ANSI模式:

更改操作的语法和行为,使其更适合标准的SQL。

三、数据字典:

数据字典就类似于系统编目或花名册(和目录不太相同),它保存数据库服务器上的元数据信息(数据库的整体属性信息)。元数据信息包括:关系(表)的名字、每个关系的各字段的名字、各字段的数据类型和长度约束、每个关系上的视图的名字及视图的定义、授权用户的名字、用户的授权和账户信息、统计类的数据:、每个关系字段的个数、每个关系中的行数、每个关系的存储方法;

在mysql上保存元数据的数据库有:mysql库、infomation_schema库、和performance_schema库,performance_schema库是一个虚拟的库,类似于Linux的/proc等伪文件系统。

时间: 2024-10-12 07:21:02

MySQL服务 - MySQL列类型、SQL模式、数据字典的相关文章

mysql基础-数据类型和sql模式-学习之(三)

0x01 mysql的两种方向: 开发DBA:数据库设计(E-R关系图).sql开发.内置函数.存储历程(存储过程和存储函数).触发器.时间调度器(event scheduler) 运维---->管理DBA:安装.升级.备份.恢复.用户管理.权限管理.监控.分析.基准测试,语句优化(SQL语句).数据字典,按需要配置服务器(服务器变量:MyISAM,InnoDB,缓存,日志)SQL 语言组成部分: DDL:数据定义语言 DML:数据操作语言 完整性定义语言,DDL的一部分功能 主键约束.外键约束

MySQL支持的列类型

MySQL支持大量的列类型,它可以被分为3类:数字类型.日期和时间类型以及字符串(字符)类型.本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述.概述有意简化,更详细的说明应该考虑到有关特定列类型的附加信息,例如你能为其指定值的允许格式. 由MySQL支持的列类型列在下面.下列代码字母用于描述中: M 指出最大的显示尺寸.最大的合法的显示尺寸是 255 . D 适用于浮点类型并且指出跟随在十进制小数点后的数码的数量.最大可能的值是30,但是应该

docker 部署mysql服务之后,执行sql脚本

1,先将.sql文件copy到docker容器里 docker ps //找到容器的短ID或者指定的name. docker inspect  -f '{{.Id}}' id or name 得到指定容器的全ID docker cp 本地文件路径 ID全称:容器路径[docker cp mysql.sql 12345:/tmp/] 2,将文件copy进容器之后,进入docke 容器 docker exec -it mysql bash 进入容器 mysql -u root -p 进入mysql服

MySQL服务 - MySQL变量类型及变量设置

一.MySQL变量类型: MySQL通过变量来定义当前服务器的特性,保存状态信息等.我们可以通过手动更改变量的值来配置MySQL,也可以通过变量获得MySQL的当前状态信息.MySQL的变量类型可以从变量的修改方式和变量的生效范围划分. 1.根据变量修改的方式: 动态变量:可以在MySQL运行时调整其指,并立即生效: 静态变量:需要在配置文件中修改,重启服务后生效: 2.根据变量的生效范围: 全局变量:服务级别的设定,对整个服务生效: 会话变量:仅对当前会话生效,其他会话和新会话不受影响:会话结

win7下安装MYSQL报错:"MYSQL 服务无法启动"的3534问题

win7下安装MYSQL,只到"net start mysql"这一步报错:3534的错误: 是直接官网下载的压缩文件.不是安装文件. 解决方法: 1:环境变量PATH添加完成(例如:h:\mysql\\bin 2:在mysql目录下,新建data目录. 3:在mysql目录下 新建新建一个默认配置文件my.ini. 内容: [mysql]# 设置mysql客户端默认字符集default-character-set=utf8 [mysqld]#设置3306端口port = 3306 #

mysql5.7 本地计算机上的mysql 服务启动后停止 的问题解决

mysql5.7 本地计算机上的mysql 服务启动后停止. 问题: 在cmd 下mysql服务mysql服务无法启动任何错误法启动 服务没有报告任何错误 在服务里面启动是 早上来了发现项目有问题,一般把apache mysql 重启一下就没事了. apache 重启了,可是mysql重启不了, 就讲他停了.在服务里启动,这下可好....报错.就上面的死活起不来 ....项目还在跑不起来,客服那边打电话催....急死了,百度了好多方法. 好多都是需要重新初始化..mysqld  --initia

MySQL 服务常用操作命令

1.MySQL 服务设置 在使用 mysql.server 命令之前需要将路径 /usr/local/mysql/support-files 添加到系统环境变量中. export PATH=$PATH:/usr/local/mysql/support-files 在使用 mysql 命令之前需要将路径 /usr/local/mysql/bin 添加到系统环境变量中. export PATH=$PATH:/usr/local/mysql/bin 具体设置请参照<添加系统环境变量>章节. 2.My

列类型概述

数据库中的每个表都是由一个或多个列构成的.可以用 CREATE TABLE 语句创建一个表,创建表时要为每列指定一个类型.列的类型与数据类型相对应,但是比数据类型更为具体,用列类型描述表列可能包含的值的种类以及范围,列的值必须符合规定,不能包含对应的数据类型所允许的所有值.例如,CHAR(16)就规定了存储的字符串值必须是16位.当然不是你必须存储16个字符,而是指列在表中要占16个字符的宽度的. MySQL的列类型是一种手段,通过这种手段可以描述一个表列包含什么类型的值,这又决定了 MySQL

设置更改root密码、连接MYSQL、MYSQL常用命令

设置更改root密码 默认的mysqlroot用户的密码是空的,但是这样是不安全的,所以我们是需要配置安全密码的 #mysql -uroot mysq命令默认是不存在的,因为mysql安装在/usr/local/mysql/bin下,环境变量里面不存在mysql命令,需要将命令加在环境变量里面 #export PATH=$PATH:/usr/local/mysql/bin ,想永久生效需要放在/etc/profile里面,然后执行#source /etc/profile #vim /etc/pr