美文网首页
MYSQL数据库数据类型

MYSQL数据库数据类型

作者: 25岁学Python | 来源:发表于2020-01-02 16:27 被阅读0次

MYSQL数据库数据类型

一.整数类型和浮点数典型

1.有符号/没符号

对于整数和负整数来说,默认情况下是有符号范围的

默认有符号

有符号和没符号其实就是有没有包括负数,有符号是包括负数的

设置成无符号:

alter table 表名 变量名 数据类型 unsigned;

严格模式 非严格模式
有符号 (-,+) 超出范围会报错 (-,+) 超出范围取极值
无符号 (0,+) 超出范围会报错 (0,+) 超出范围取极值

推荐Python大牛在线分享技术 扣qun:855408893

领域:web开发,爬虫,数据分析,数据挖掘,人工智能

零基础到项目实战,7天学习上手做项目

2.严选/非严选

我们不推荐使用非严格模式下建立table,因为它会可能造成数据丢失的情况,所以我们必须在5.6版本中将mysql设置为严格模式。

方法一:select@@sql_mode; @表示全局变量;@@表示会话级变量(局部)

​ 临时设置set @@sql_mode ='NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES ';

方法二:直接修改配置文件;

​ [mysqld]

​ sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 并重启服务端mysql后生效.

  • 严选情况下,数据超过他的设置范围他会报错

  • 非严选情况下,数据超过他的设置范围不会报错,但是只存他设置大小的那一部分的数据,多余的会丢掉

3.常见的类型

1.整数型

数据类型 字节数 符号范围 有符号范围
TINYINT 1 0~255 -128~127
SMALLINT 2 0~65535 -32768~32767
MEDIUMINT 3 0~16777215 -8388608~8388607
INT 4 0~4294967295 -2147483648~2147483647
BIGINT 8 0~18446744073709551615 -9223372036854775808
~9223372036854775807

2.浮点型

数据类型 字节数 符号范围 有符号范围
float 4 1.175494351E-38
~3.402823466E +38 -3.402823466E+38~
-1.175494351E-38
double 8 2.2250738585072014E-308
~1.7976931348623157E+308 -1.7976931348623157E+308
~-2.2250738585072014E- 308
decimal[(M[,D])] 最大与
double相同 不固定 不固定 10.2 decimal(3,1);

二.字符串类型

1.char 与varchar

char:定长字符串,字符长度0-255个字节之间,存储时占用固定字节空间

相对于varchar来讲

优点: 读取存储速度快于varchar

varchar:可变长度字符串,字符长度在0-65532个字节,存储式占用空间实际字节长度+1,而+1是存的他的长度

原因:因为char我们如果规定6,然后输入3个字符,他后面的内容会用宫格来填充,而varchar不会用空格填充,所有存的时候空间节省了,而读的时候需要发送字符的数量所有读取会变慢

2.binary 与 varbinary

BINARY和VARBINARY类类似于CHAR和VARCHAR,不同的是它们包含二进制字符串而不要二进制字符串
输入值的和char 与varchar差不多的填充效果

3.text与blob

blob:没有编码的二进制大字符串.(了解即可)

text:具备编码的大字符串;

都有四种

  • tinyblob,tinytext:
  • blob,text
  • mediumblob,mediumtext
  • longblob,longtext

4.enum与set

规定这个里面输入内容是什么,你可以输入他的内容,也可以输入他的索引

enum与set区别,enum只能输一个,set能输入一个或多个,且用集合的形式输入

注意: mysql会自动将字符串后面的空格删掉 所以你的数据在存储前应该先把空格处理掉

三.时间类型

  • year :格式YYYT

  • data:格式YYYY-MM-DD

  • time:格式HH:MM:SS

  • datatime:格式YYYY-MM-DD HH:MM:SS

  • timestamp :格式YYYY-MM-DD HH:MM:SS (不用输入默认为数据插入时候的插入时间)

注意:

  • 0-69 翻译为 2000-2069; 70-99 翻译为1790-1999
  • year、date、time既可以用字符串也可以用数字输入值;current_time和now()输入系统当前日期
  • time不仅可以表示一天的时间,也可以表示两个时间的时间间隔
  • 'D HH:MM:SS'格式的字符串,D表示日(0-34),HH的实际值为D*24+HH
  • datetime、timestamp只能以字符串形式输入
  • 在使用timestamp时,输入current_timestamp输入系统当前日期和时间
  • 在使用timestamp时,输入null或不输入,系统会自动输入当前日期和时间

相关文章

  • MySQL数据库DDL、DML详解

    一、MySQL数据库数据类型 <1> MySQL数据库中支持多种数据类型 数值型 字符型 日期型 <2> 常用的数...

  • MYSQL复习

    mysql数据库学习 -- mysql里面的数据类型-- 数值-- 字符串-- 日期 -- 创建数据库?creat...

  • MySql基本操作(一)

    从命令行中连接mysql服务器的简单实例 创建和删除数据库 选择数据库 数据类型 可参考:Mysql数据类型 数据...

  • PHP面试之数据库基础

    [TOC] 1. MySQL数据库基础 MySQL数据类型 整数类型 tinyint smallint mediu...

  • MySql笔记

    Mac安装并运行MySql MySql数据库、数据表的操作 MySql数据类型及常见约束 MySql表操作 MyS...

  • 学习日记6(数据库2- 数据类型)

    查看数据库 创建数据库dbtest 删除数据库dbtest mysql 数据类型 1.数值intfloatdoub...

  • 三、数据类型和约束

    1、数据类型 在MySQL数据库管理系统中,可以通过存储引擎来决定表的类型。同时,MySQL数据库管理系统也 提供...

  • MySQL表的操作

    MySQL基础一上一节主要了解了MySQL数据库的相关命令和数据库中存储的数据类型, 这一节主要是MySQL中对于...

  • 4、mysql基本数据类型

    [toc] MySQL 数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的。 MySQL支持多种...

  • MySQL5.7从入门到精通(1-5章)--MySQL的基础知识

    第1章 初识MySQL 1.1 数据库基础 1.1.1 什么是数据库 1.1.2 表 1.1.3 数据类型 1.1...

网友评论

      本文标题:MYSQL数据库数据类型

      本文链接:https://www.haomeiwen.com/subject/tkzznctx.html