14Mysql 常用数据类型(列类型)

在这里插入图片描述
在这里插入图片描述

1 数值型(整数)的基本使用

说明,使用规范:在能够满足需求的情况下,尽量选择占用空间小的类型
在这里插入图片描述

#演示整型的是一个
#使用tinyint 来演示范围 有符号 -128 ~ 127  如果没有符号 0-255
#说明: 表的字符集,校验规则, 存储引擎,使用默认
#1. 如果没有指定 unsinged , 则TINYINT就是有符号
#2. 如果指定 unsinged , 则TINYINT就是无符号 0-255
CREATE TABLE t3 (
	id TINYINT);
CREATE TABLE t4 (
	id TINYINT UNSIGNED);
	
INSERT INTO t3 VALUES(127); #这是非常简单的添加语句
SELECT * FROM t3

INSERT INTO t4 VALUES(255);
SELECT * FROM t4;

2 如何定义一个无符号的整数

在这里插入图片描述

3 数值型(bit)的使用

在这里插入图片描述

在这里插入图片描述

#演示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(255); 
SELECT * FROM t05;
SELECT * FROM t05 WHERE num = 1;

4 数值型(小数)的基本使用

  1. FLOAT/DOUBLE [UNSIGNED]
    Float 单精度,Double 双精度
  2. DECIMAL [M,D] [UNSIGNED]
  • 可以支持更加精确的小数位,M是小数位数(精度)的总数,D是小数点(标度)后面的位数。
  • 如果D是0,则值没有小数点或分数部分。M最大65。D最大是30。如果D被省略,默认是0.如果M被省略,默认是10.
  • 建议:如果希望小数精度高,推荐使用decimal
#演示decimal类型、float、double使用

#创建表
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(8999999933338388388383838838383009338388383838383838383);

SELECT * FROM t07;
CREATE TABLE t08(
	num BIGINT UNSIGNED)
INSERT INTO t08 VALUES(8999999933338388388383838838383009338388383838383838383);
SELECT * FROM t08;

在这里插入图片描述

5 字符串的基本使用

在这里插入图片描述

#演示字符串类型使用char varchar
# DQLyog 注释的快捷键 shift+ctrl+c , 注销注释 shift+ctrl+r
-- CHAR(size)
-- 固定长度字符串 最大255 字符 
-- VARCHAR(size)    0~65535字节
-- 可变长度字符串 最大65532字节  【utf8编码最大21844字符 1-3个字节用于记录大小】
-- 如果表的编码是 utf8 varchar(size) size = (65535-3) / 3 = 21844
-- 如果表的编码是 gbk varchar(size) size = (65535-3) / 2 = 32766
CREATE TABLE t09 (
	`name` CHAR(255));

CREATE TABLE t10 (
	`name` VARCHAR(32766)) CHARSET gbk;

DROP TABLE t10;

6 字符串使用细节

  1. 细节1:
  • char(4) //这个 4 表示字符数(最大255),不是字节数,不管是中文还是字母都是方四个,按字符计算。
  • varchar(4) //这个 4 表示字符数,不管是字母还是中文都以定义好的表的编码来存放数据。
  1. 细节2:
  • char(4) 是定长(固定的大小),就是说,即使你插入 ‘aa’,也会占用分配的4个字符的空间。
  • varchar(4) 是变长(变化大小),就是说,如果你插入了 ‘aa’,实际占用空间大小并不是4个字符,而是按照实际占用空间来分配(特别说明:varchar本身还需要占用 1~3 个字节来记录存放内容长度) L(实际数据大小)+ (1~3)字节
  1. 细节3:
    什么时候使用 char,什么时候使用 varchar
    ① 如果数据是定长,推荐使用char,比如 md5 的密码,邮编,手机号,身份证号码等。char(32)
    ② 如果一个字段的长度是不确定的,我们使用 varchar,比如留言,文章
    ③ 查询速度:char > varchar

  2. 细节4:
    在存放文本时,也可以使用Text数据类型,可以将Text列视为varchar列,注意 Text 不能有默认值,大小 0~2^16 字节。
    如果希望存放更多字符,可以选择 MEDIUMTEXT 0~2^24 或者 LONGTEXT 0~2^32

#演示字符串类型的使用细节
#char(4) 和 varchar(4) 这个4表示的是字符,而不是字节, 不区分字符是汉字还是字母
CREATE TABLE t11(
	`name` CHAR(4));
INSERT INTO t11 VALUES('你好中国');

SELECT * FROM t11;

CREATE TABLE t12(
	`name` VARCHAR(4));
INSERT INTO t12 VALUES('你好中国');
INSERT INTO t12 VALUES('ab北京');
SELECT * FROM t12;

#如果varchar 不够用,可以考试使用mediumtext 或者longtext, 
#如果想简单点,可以使用直接使用text
CREATE TABLE t13( content TEXT, content2 MEDIUMTEXT , content3 LONGTEXT);
INSERT INTO t13 VALUES('韩顺平教育', '韩顺平教育100', '韩顺平教育1000~~');
SELECT * FROM t13;

7 日期类型的基本使用

在这里插入图片描述

#演示时间相关的类型
#创建一张表, 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:10:10');
-- 如果我们更新 t14表的某条记录,login_time列会自动的以当前时间进行更新
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

要学就学灰太狼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值