mysql:创建表时声明数值型、字符串、时间
mysql 创建 时间 字符串 声明 数值
2023-09-27 14:27:10 时间
语法
CREATE TABLE Persons
(
PersonID tinyint(5) zerofill,
PersonID int unsigned,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
数值型
数值型分为整型,浮点型,定型
整型:
name | 占位(字节) | 最大值(无符号) |
---|---|---|
bigint | 8 | 太大了 |
int | 4 | 4294967295 |
mediumint | 3 | 16777215 |
smallint | 2 | 65535 |
tinyint | 1 | 255 |
注意:默认是有符号的,也就是最小值是负数
一些可选参数:
- unsigned 无符号(全是正数)
- zerofill 填充至多宽,适合用于学号、编码等固定数字的,可以用 0 填充至固定宽度。默认带 unsigned,前面的例如 int(5) 代表填充长度为5
浮点型:
name | 解释 |
---|---|
float(M,D) | M:精度,总位数 D:标度,小数点后位数 |
double(M,D) | 比 float 范围更大 |
定点型:
decimal
浮点型与定点型的区别:
浮点型有精度损失,定点型更精确
比如:
creat table t4 (
a float(9,2),
b decimal(9,2)
)
insert into t4(1234567.23, 1234567.23)
得到的结果是:
a:1234567.25
b:1234567.23
所以定点型更精确,因为定点型小数点前后是用不同的数字存储的,而 float 就比较复杂,专门有协会定的规则。
字符串
char,varchar,text,blob,enum
name | 意思 | 宽度 | 实际存字符(i<M) | 实际占空间 | 利用率 |
---|---|---|---|---|---|
char(M) | 定长 | M | i | M | i/M <=100% |
varchar(M) | 变长 | M | i | i字符 + (1-2)字节 | i/(i+1-2) <100% |
注释:
char(M) 不足 M个字符给字符右侧加空格,取出时删掉空格,这就意味着,如果存的数据右侧本身有空格,则取出会丢失,varchar 则不会
varchar(M) 第一个字符会有专门的字符长度说明
举例:
char(10),最多存 10 个字符,如果存一个字符,还是占了 10 个字符的空间,但是尽量用 char,寻址快,varchar 比较麻烦
text 一般存大段文本,还有更大的 mediumtext
blob 二进制,其实也是大段文本,但是不会因为字符集过滤掉而丢失信息,比如:一张图片有 0xFF 个字节,在 ASCII 字符集认为非法,会被过滤掉
enum 枚举
create table t3 (
gender enum ('男', '女')
);
set 集合,和枚举差不多,可以选其中的多个
时间型
year 年:95/1995
date 日期:1998-12-27
time 时间:13:56:23
datetime日期时间:1998-12-27 13:56:23
timestamp 时间戳:1970-1-1 0:0:0 到当前时间的秒数,一般存注册时间、发布时间都用这个,容易计算。
相关文章
- MySQL线程独享[转]
- 【MySQL从入门到精通】【高级篇】(二十)适合创建索引的11种情况&不适合创建索引的7种情况,万字长文
- 【MySQL从入门到精通】【高级篇】(十九)索引的分类&创建索引的三种方式&删除索引的两种方式
- MySQL索引的创建,查看,删除,修改操作详解
- centos6创建mysql开机自启动
- 解决MySql报错:1130 - Host 'xxx' is not allowed to connect to this MySQL server的方法
- 在linux7上搭建mysql 5.7 的主从复制(2)
- mysql 的group by 满足的规则要求:ONLY_FULL_GROUP_BY:合法检查
- MySQL存储过程
- MySQL使用Union创建视图报错
- 二进制安装Mysql数据库的快速方法
- 如何允许外网可以连接mysql数据库
- mysql创建用户、赋予指定权限命令
- MySQL数据库引擎介绍、区别、创建和性能测试的深入分析
- MySQL<事务与存储过程>
- MySQL创建用户与授权
- [mysql]设置创建时间,更新时间未生效
- 【mysql】时间类型-如何根据不同的应用场景,选择合适的时间类型?
- 2022-11-14 mysql-半连接重复消除策略
- 2023-05-05 mysql列存储引擎-用户自定义变量比较出错-问题分析
- MySQL中表和库的创建与管理
- mysql命令行创建数据库指定字符集
- MySQL主从复制《主库已经有数据的解决方案》《几种复制模式》
- MYSQL错误解决:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
- Mysql创建索引、修改字段和注释
- mysql命令创建数据库库名特殊字符
- MySQL 索引的查看/创建/删除