mysql vhchar默认长度,mysql 常用数据类型

标签:

一个完整的建表语句

create table 表名(

字段名称 数据类型[(长度) 约束条件],

字段名称 数据类型[(长度) 约束条件]

)

Sql数据类型

严格模式 :超出范围报错

非严格模式:超出范围不报错

查看模式select @@sql_mode/show variables like 'sql_mode

修改为严格模式: set global sql_mode = ‘strict_trans_tables’ ';

整形(长度默认是11)

长度指的是显示的宽度(推荐不写)

默认有符号

改成无符号:create table t1(id int unsigned)

形式  tinyint    smallint   mediumint   int    bigint

字节  1(255)      2           3       4       8

整形的限制:

不是容量限制,而是显示宽度

create table t1(id int(5) zerofill)  当查看的数是小于长度5,用0补上

c0962b366f985514c5550ce867056196.png

浮点型

float   double    decimal

字节  4       8    (自定义)

给浮点设置设置宽度限制

float (m,d) m 表示整数部分的长度    n 表示小数点的不分

float(255,30)

double(255,30)

decimal(65,30)

create table t1(id float(255,30));

create table t2(id double(255,30));

create table t3(id decimal(65,30));

select * from t1:

select * from t2:

select * from t3:  完全正确

精确度: 由低到高 float -> double -> decimal

decimal 是准确的,不会丢失精度

字符串 char

字符串 varchar

分类

char 定长字符

varchar 变长字符(推荐,减少IO)

char(3)  在硬盘保存为3 字符长度

yxx exx lxx zxx char(3)

如果是char类型 ,数据不足,空格补全

varchar 在硬盘保存为1 字符长度

vharchar 支持最大的长度为65535

smysql自动去除空格 elect *from t1 where name='yh'

模糊查找 :  elect *from t1 where name='%yh%'

选择

char 存取效率高/ 浪费存储空间

varchar 存取效率低于char/节省存储空间

字符串宽度: 指的是最大字符个数

字符串现出原形:

char_length(x)  字符的个数

我们可以设置sql模式 来让它现出原形

set global sql_mode = "PAD_CHAR_TO_FULL_LENGTH,STRICT_TRANS_TABLES"

设置完成后重启msyql 再次查询长度

注意:mysql在查询时针对where 字段="值    "会忽略掉右面的空格,即where 字段="值"

如果时like模糊匹配就不会忽略右面的空格了

Char取值:每次固定取值

Varchar取值:前面加固定一到两个bytes

时间类型

year 年

date 1999-11-11

time 08:30

datatime/timestamp   1999-11-11 08:30

共同点: 时间存取通过字符串类型 都可以使用now()函数来插入当前时间

create table student(

id int primary key auto_increment,

name char(16),

born_year year,

birth date,

class_time time,

reg_time datetime

);

insert into student value(2,'zxx',2000,2018-11-11,now(),now());

枚举与集合

枚举:一个事物只有几种可能性

集合:用于描述一堆数据 集合中只能放数字

枚举enum('a','b','c'):多选一

集合set('a','b','c'):多选多

create table emp(

name varchar(15),

sex enum('male','female','unkown'),

hobbies set('read','music','yinshi','play')

);

insert into emp values

('zhangming','xxx','xxxx');

标签:

来源: https://www.cnblogs.com/liu--huan/p/9637309.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值