1 数字类型

  • 整数:tinyint smallint mediumint int bigint
  • 小数:float double decimal(p,s) numeric(p,s)
create table t1(c1 TINYINT,c2 SMALLINT,c3 MEDIUMINT,c4 BIGINT,f1 float,f2 float(6,2),d1 double(2,1),d2 double(6,2),d3 decimal(7,3)
);
show create table t1;
select * from t1;
insert t1 value(1,2.5,3,4,1,2,3,4,5);

表结果为:

2 string字符串

char(n) varchar(n) tinytext text mediumtext longtext
char(0-255)
carchar(0-21844)

定长字符串 char()

CHAR数据类型是MySQL中固定长度的字符类型。 我们经常声明CHAR类型,其长度指定要存储的最大字符数。 例如,CHAR(20)最多可以容纳20个字符。 如果要存储的数据是固定大小,则应使用CHAR数据类型。在这种情况下,与VARCHAR相比,您将获得更好的性能。 CHAR数据类型的长度可以是从0到255的任何值。当存储CHAR值时,MySQL将其值与空格填充到声明的长度。 当查询CHAR值时,MySQL会删除尾部的空格。 请注意,如果启用PAD_CHAR_TO_FULL_LENGTH SQL模式,MySQL将不会删除尾随空格。

变长字符串 varchar(n) tinytext text mediumtext longtext(4GB字符串)
-- char varchar  tinytext text mediumtext longtext
-- 32767-1 21845-1  16383-1
-- gbk varchar(32766) utf8 varchar(21844) utf8mb4 varchar(16383)select 65535/2,65535/3,65535/4;-- 演示
create table t2(c1 char(5),/*定长字符串,功能是,如果设置5,则插入数据不到被空格也要占用5字节*/c2 varchar(5),/*变长字符串,如果设置5,最多插5个字符,如果插入2个字,则占用2个字符的字节数*/c3 tinytext,c4 mediumtext,c5 text,c6 longtext);
insert into t2 value('a','b','c','d','e','f');
select * from t2;-- 建立表
create table user(sno char(5),/*定长*/name varchar(3)/*变长字符串 3个字符串不是3个字节*/
);
insert into user value('20211','李四六');
insert into user value('1','jac');
select name,char_length(name),length(name) from user;
select sno,char_length(sno),length(sno) from user;
-- 数据类型 字符型(串)
show tables;
select user(),database(),now(),3*3,rand(),version(),sysdate();
select CURRENT_DATE(),curdate();-- 删除指定几个表
drop table if exists t1,t2,t3,t4,t5,t6;-- uuid char(36) varchar(36)
-- string char(n) n(max=255)  varchar(n) TINYTEXT text MEDIUMTEXT LONGTEXT(4GB)
create table t1(s1 char(6), /* 6个字符 */s2 char(200),s3 char(255),s4 varchar(10000),s5 varchar(11383)
);
drop table if exists t1;create table t2(s1 char(6), /* 6个字符 最多是255 */s2 char(3) /*a   */
);
insert t2 value('javaab','李si');
select * from t2;select CHARACTER_LENGTH(s1),length(s1),CHARACTER_LENGTH(s2),length(s2) from t2;-- 114688
create table t3(c char(5)
);insert t3 value('d2a');
select * from t3;

3 date、time、datime日期相关类型

  • date yyyy-MM-dd 3字节
  • time hh:mm;ss 3字节
  • datetime yyy-MM-dd hh:mm;ss 8字节 用来存储日期和时间
  • timestamp 时间戳 yyyy-MM-dd hh:mm:ss 4字节。存储时间戳
  • year 用来存储年份数据。格式为"yyyy"
create table t3(name varchar(20),birth date /*注意此格式只有年月日相对于 java 中LocalDate*/
);insert into t3 value('李四','1985-2-20');
select * from t3;create table t4(name varchar(15),regtime datetime
);insert into t4 value('lisi',now());
insert into t4 value('wangwu','2021-1-15 18:20:30');
select * from t4;-- 删除多个表
drop table t1,t2,t3,t4,user,student;create table student(id int unsigned auto_increment,sname varchar(15),age tinyint unsigned,birth date,regtime datetime,uptime timestamp default current_timestamp on update current_timestamp, /*此字段会修改数据自动更新,自动填写,*/address varchar(255), primary key(id)
);
drop table student;
-- 插入数据
insert into student(sname,age,birth,regtime,address) value('李四',20,'1985-3-16',now(),'河南省郑州市');
select * from student;-- 修改数据
update student set age = 22;-- datetime 和 timestamp 类型操作是一样的
create database db;create table db.t5(name varchar(30),create_time datetime default current_timestamp on update current_timestamp,update_time timestamp default current_timestamp on update current_timestamp
)
insert t5(name) value('李四'),('jack');
select * from t5;
update t5 set name = '李四四' where name = '李四';

4 enum set 复合类型

enum 枚举 set集合

-- null 男 女 a
gender enum('男','女') default '男'
age enum(10,20,30,40) default 20
create table user(id int unsigned auto_increment,name varchar(30),gender enum('男','女','保密') default '男', /*gender字段数据只能填写 男 女 保密 其中一个*/depart set('高等数学','英语','线性代数','离散数学'),/* 可以不填写,填写必须是集合中的元素,可是任意个 *//* '英语,英语,英语' */primary key(id)
)engine=innodb default charset=utf8;
-- 插入正常
insert into user value(null,'李四','女','英语,英语,线性代数');
-- 插入数据错误
insert into user value(null,'李丰','保密','英语,英语,线性代数,大学语文');
select * from user;

5 bit 布尔

bit 位类型,只能存储1或0。其实mysql底层使用的是tinyint unsigned

-- bit
-- tinyint unsigned
create table stu(name varchar(32),isstu bit, /*可以是布尔 true 1 false 0 */istec tinyint unsigned default 0
)engine=innodb default charset=utf8;-- 布尔类型 可以用 enum('y','n') default 'y'-- 插入数据 mysql 数据库  1 为true 0 为false   非0为true
insert into stu value('李四',true,true);
insert stu value('王五',false,false);
select * from stu;
select length(isstu),length(istec) from stu;
select * from stu where isstu;
select * from stu where istec;
select * from stu where 1; -- true
select * from stu where -2; -- true

MySQL基本数据类型相关推荐

  1. 再谈MySQL JSON数据类型

    2019独角兽企业重金招聘Python工程师标准>>> 本文首发微信公众号<andyqian>.期待你的关注- 前言 眨眼间,有一小段时间没有更新文章了.唉,又懒了... ...

  2. MySQL 字段数据类型/长度

    分类: 数据库学习2010-09-27 16:30 105人阅读 评论(0) 收藏 举报 一.MySQL 字段数据类型/长度 1.数值类型 列类型              需要的存储量 TINYIN ...

  3. MySQL日期数据类型、时间类型使用总结

    转载链接:http://www.jb51.net/article/23966.htm MySQL 日期类型:日期格式.所占存储空间.日期范围 比较. 日期类型 存储空间 日期格式 日期范围 ----- ...

  4. mysql 变量 数据类型_浅谈mysql(二)数据类型

    //我...我才是不是傲娇呢 //如有问题还请多多指教.上回我们说到我们如何使用MySQL,关键是要看它的用途.用途衍生语句.之后文章的思路,也是如此,从用途出发,然后再到语句. 那么,我们先问几个问 ...

  5. 2Python全栈之路系列之MysQl基本数据类型

    Python全栈之路系列之MySQL基本数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的. MySQL支持多种类型,大致可以分为三类: 数字类型 日期和时间类型 字符串类型 数字类 ...

  6. mysql中数据类型的长度

    一.varchar(n).char(n)中的n的含义 1)varchar(m),char(n)里面的m或n代表的是字符的个数. 打开mysql手册,看到这样一句话 The CHAR and VARCH ...

  7. MySQL常用数据类型

    MySQL常用数据类型 1.整数类型.浮点数类型.定点类型 (1)整数类型(默认的是有符号的) 整数类型 字节数 无符号(unsigned)范围 有符号(signed)范围 tinyint 1 0-2 ...

  8. mysql空间数据类型解释_MySQL空间数据类型

    MySQL空间数据类型讲解 MySQL具有与OpenGIS类对应的数据类型.某些类型只能保存单个几何值: GEOMETRY POINT LINESTRING POLYGON GEOMETRY能够保存任 ...

  9. MySQL不同数据类型如何表示_MySQL系列(二)--数据类型

    如何选择优化的数据类型: 当一个列有多种数据类型可以选择,选择顺序:数字类型.日期/二进制类型.字符类型,相同级别的数据类型,优先选择占用空间小的类型 1.通常更小的更好 相同级别的数据类型,选择占据 ...

  10. MySQL之数据类型、建表和六大约束

    前言:昨天跟大家分享了MySQL的账号管理.建库及四大引擎,今天与大家分享的知识是MySQL之数据类型.建表和六大约束. 一.数据类型介绍 1.作用:MySQL中定义数据字段的类型对你数据库的优化是非 ...

最新文章

  1. 2022-2028年中国碘矿行业竞争格局分析及市场需求前景报告
  2. Windows安装MRTG后的配置
  3. python语言怎么用-python语言中with as的用法使用详解
  4. 《罗永浩打脸罗永浩》、MPEG召集人辞职称MPEG将不再存在、Zoom免费用户将没有端到端加密|Decode the Week...
  5. oracle sql语句 exists
  6. opencv画图_c++
  7. JavaScript中Object.keys、Object.getOwnPropertyNames区别
  8. C++智能指针的“GC”
  9. matlab freqz-m,Matlab函数freqs和freqz
  10. java堆和栈 常量池_Java中栈、堆和常量池
  11. mac安装win7之后鼠标失灵_2013款mac air及一体机安装win7 键盘鼠标失灵的解决方法...
  12. 审车的时候环保怎样安全通过_车审环保过不了如何处理
  13. win10怎么取消小箭头_已取消到该网页的导航,小编教你网页提示已取消到该网页的导航怎么办...
  14. Broadcast Recevier回顾及自定义DeviceAdminReceiver模板完善
  15. Proteus和Keil两个软件的联合使用
  16. 公众号配图不会设计?你需要这三款在线作图神器
  17. 智能运维监控管理平台技术方案
  18. Linux基础命令----tailf 跟踪文件输出
  19. 数据结构 | 3.树与二叉树
  20. SpEL之#和$的区别

热门文章

  1. 24、将Div中的所有元素保存为图片 Html2Canvas
  2. python - 数据类型
  3. 网页放大缩小引起布局混乱_放大可能会引起关注
  4. 关于GX WORKS2中M8002、M8012、M8013无法使用的问题
  5. 金蝶迷你版凭证导入工具_金蝶kis迷你版如何插入凭证?
  6. 《孙子兵法特殊战法之火攻篇》
  7. 阿里云对象存储OSS服务——上传/删除/获取图片
  8. zblog导航小智收录网导航模板
  9. Win10系统开启黑暗主题
  10. 【scratch案例教学】scratch中秋佳节 scratch创意编程 少儿编程 边玩边学 小朋友这样贺中秋