MySQL笔记系列MySQL数据类型
Posted Stata与风险管理
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL笔记系列MySQL数据类型相关的知识,希望对你有一定的参考价值。
1 mysql 数据类型(列类型)
首先我们先创建一个表,然后针对其中的内容对数据类型一一进行介绍,其实大都是常见的类型,像整型、浮点型、字符型……(和大部分编程语言介绍类似)
# 命令创建表
CREATE TABLE user1(
id INT,
`name` VARCHAR(255),
`password` VARCHAR(255),
`birthday` DATE)
CHARACTER SET utf8 COLLATE utf8_bin ENGINE INNODB;
2 数值类型
2.1 整型
-
tinyint1 个字节 -
smallint2 个字节 -
mediumint3 个字节 -
int4 个字节 -
bigint8 个字节
2.2 小数类型
-
float4 个字节 -
double8 个字节 -
decimal [M,D] 大小不确定
3 文本类型(字符串类型)
-
char:0~255 -
varchar:0~2^16-1 -
text:0~2^16-1 -
longtext:0~2^32-1
4 二进制数据
-
blob:0~2^16-1 -
longblob:0~2^32-1
5 日期类型
-
date【日期 年月日】 -
time【时间 时分秒】 -
datetiem【年月日 时分秒 YYYY-MM-DD HH:mm:ss】 -
timestamp 【时间戳】
6 数据类型演示
# 演示整型的是一个(tinyint演示)
# 如果没有指定unsigned,则tinyint就是有符号,有符号的-128~127.没有符号,0~255
# 1.如果没有指定unsigned,则tinyint就是有符号
# 2.如果有指定unsigned,则tinyint就是无符号
# -129报错,128正常
create table t3(
id tinyint);
INSERT INTO t3 VALUES(-128)
SELECT * FROM t3
create table t4(
id tinyint unsigned);
INSERT INTO t4 VALUES(255)
SELECT * FROM t4
# 演示bit类型使用
# 说明
# 1.bit(m) m 在 1-64
# 2.添加数据 范围 按照你给的位数来确定,比如m = 8 表示一个字节 0~255
# 3.显示按照bit
# 4.查询时仍然可以按照数来查询
create table t05 (num bit(8));
Insert into t05 values(3);
INSERT INTO t05 VALUES(255);
select * from t05;
insert into t05 (1,3);
insert into t05 values(2,65)
select * from t05 where num = 1;
# 演示小数类型
create table t06 (
num1 float,
num2 double,
num3 decimal(30,20));
insert into t06 values(88.12345678912345,88.12345678912345,88.12345678912345);
select * from t06;
#decimal可以存放很大的数
create table t07(
num decimal(65));
insert into t07 values(89999999999999999999999999);
select * from t07;
create table t08(
num bigint unsigned);
insert into t08 values(89999999999999999999999999); #报错
SELECT * FROM t08; #无法插入次数据
# 演示字符串类型使用
# 注释的快捷键 shift + ctrl + c ,注销注释 shift + Ctrl + r
-- CHAR(size)
-- 固定长度字符串 最大225字符
-- 可变长度字符串 最大65532字节【utf8编码最大21844字符 1-3个字节用于记录大小】
-- 如果表的编码是utf8 varchar(size) size=(65532-3)/3=21844
-- 如果表的编码是gbk varchar(size) size=(65532-3)/2=32766
create table t09(
`name` char(255));
create table t10(
`name` varchar(21844));
cREATE TABLE t11(
`name` VARCHAR(32766)) charset gbk;
# 演示字符串使用细节
## char(4) 和 varchar(4) 这个4表示的是字符,而不是字节,不区分字符是汉字还是字母
## 如果数据是定长,推荐使用char,比如密码、身份证号
## 如果字段长度不确定,我们使用varchar,比如留言、文章
## 查询速度:char>varchar
create table t11(
`name` char(4));
insert into t11 values('吞吞吐吐拖');
select * from t11;
CREATE TABLE t12(
`name` varCHAR(4));
INSERT INTO t12 VALUES('吞吞吐吐拖jjj');
INSERT INTO t12 VALUES('吞吞吐吐');
INSERT INTO t12 VALUES('北京欢迎');
SELECT * FROM t12;
# 如果varchar不够用,可以考虑使用mediumtext 或者 longtext
# 如果想简单点,可以使用直接使用text
create table t13(content text,content2 mediumtext,content3 longtext);
insert into t13 values('田文涛教育','田文涛教育100','田文涛教育100~~')
select * from t13
# 演示时间相关的类型
# 创建一张表,date,datetime,timestamp
create table t14{
birthday date , -- 生日
job_time datetime, -- 记录年月日 时分秒
login_time timestamp
not null default current_timestamp
on update current_timestamp);-- 登录时间,如果希望login_time列自动更新
select * from t14;
insert into t14(birthday,job_time)
values('2022-11-11','2022-11-11 10:00:00);
-- 如果我们更新t14表的某条记录,login_time列会自动的以当前时间进行更新
以上命令在 Mysql 中会自动转换成大写,大写的均为 MySQL 中的关键字。
好了,今天的分享就先到这了,主要是对数据类型的介绍(简单来讲是数字、字符串(文本)、日期等),很多都可以类似 Excel, 可以对比着体会一下。
以上是关于MySQL笔记系列MySQL数据类型的主要内容,如果未能解决你的问题,请参考以下文章