首页 > 数据库 >MySQL的基本数据类型及数据库存储引擎

MySQL的基本数据类型及数据库存储引擎

时间:2022-11-23 19:33:23浏览次数:36  
标签:insert 数据库 数据类型 id values MySQL table create into

目录

数据库存储引擎

1、存储引擎:数据库针对数据才去的存取方式

2、查看常见存储引擎的方式

show engines;

3、基本的存储引擎:

1.MyISAM
	MySQL5.5之前的存储引擎,存取数据的速度快,但是功能性少,安全性较低

2.InnoDB
	MySQL5.5之后的存储引擎,因为支持事物、行锁、外键等操作,存取速度没有MySQL快,但是安全性更高

3.Memory
	基于内存存取数据 仅限临时表数据存取

4.BlackHole
	任何写入进去的数据都会立刻丢失

image

4.不同存储引擎底层文件个数

​ 4.1 创建库、表、添加记录


create database db2;
use db2;
create table t1(id int) engine=innodb;
create table t2(id int) engine=myisam;
create table t3(id int) engine=memory;
create table t4(id int) engine=blackhole;

insert into t1 values(1);
insert into t2 values(1);
insert into t3 values(1);
insert into t3 values(1);

ps:MySQL默认忽略大小写,上述只需要复制到终端鼠标右键即可

​ 4.2 结果展示

1.innodb两个文件
	.frm	表结构
	.ibd	表数据(表索引)
2.myisam三个文件
	.frm	表结构
	.MYD	表数据
	.MYI	表索引
3.memory一个文件
	.frm	表结构
4.blackhole一个文件
	.frm	表结构

image

创建表的完整语法

create table 表名(
	字段名 字段类型(数字) 约束条件,
	字段名 字段类型(数字) 约束条件,
 	字段名 字段类型(数字) 约束条件
);

注意:

​ 1.字段名和字段类型是必备的

​ 2.数字和约束条件是可选的

​ 3.约束条件也可以写多个 空格隔开即可

​ 4.最后一行结尾不能加逗号

​ 编写SQL语句报错之后不要慌 仔细查看提示(near ')' at line 7)

MySQL基本数据类型及常见约束条件

image

字段类型之整型

tinyint			1bytes			正负号(占1bit)
smallint		2bytes			正负号(占1bit)
int			    4bytes		   正负号(占1bit)
bigint			8bytes			正负号(占1bit)

1.验证整型默认是否携带正负号

create table t5(id tinyint);
insert into t5 values(-129),(128);


结果展示:结果是-128和127 也就意味着默认自带正负号,正负号带1bit
		针对手机号码只能用bigint

​ 要是想验证的话,sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 编码配置中,这个先不要添加,添加就是代表数字超出数字类型范围就会报错,只能允许范围内的数字允许。引入了下面的严格模式

2.添加约束条件,取消正负号

create table t6(id tinyint unsigned);
insert into t6 values(-129),(128),(1000);

image

严格模式

当我们在使用数据库存储数据的时候 如果数据不符合规范 应该直接报错而不是擅自修改数据 这样会导致数据的失真(没有实际意义)
	正常都应该报错 但是我们之前不小心改了配置文件
 
show variables like '%mode%';

1.临时修改
	set session sql_mode='strict_trans_tables';
    	在当前客户端有效
 	set global sql_mode='strict_trans_tables';
    	在当前服务端有效
2.永久修改
	直接修改配置文件---一般选这种

image

字段类型之浮点型

1.浮点型类型

float(255,30)
	总共255位小数位占30位
double(255,30)
	总共255位小数位占30位
decimal(65,30)
	总共65位小数占30位

2.验证浮点型精确度

create table t7(id float(255,30));
create table t8(id double(255,30));
create table t9(id decimal(65,30));
insert into t7 values(1.11111111111111111111);
insert into t8 values(1.11111111111111111111);
insert into t9 values(1.11111111111111111111);

结果显示:三者精确度不同

精确度排序:decimal > double > float

各类浮点型

字段类型之字符类型

1.字符串类型

char  定长
	char(4)  最多存储四个字符,超出就会报错,不够四个空格就填充至四个
varchar  变长
	varchar(4) 最多存储四个字符,超出就会报错,不够则有几个就存几个

2.验证字符串类型是否有限制

create table t10(id int,name char(4));
create table t11(id int,name varchar(4));

insert into t10 values(1,'kevin');  # 报错
insert into t11 values(1,'jason');   # 报错
insert into t10 values(1,'kimi'); 

image

3.统计某个字段数据对应的长度char_length()

	char_length()获取字段存储的数据长度,默认情况下MySQL针对char的存储会自动填充空格和删除空格。
	如果上述方法还是无法验证,需要先去取消底层优化操作:
	set global sql_mode= 'strict_trans_tables,pad-char_to_full_length';
	退出mysql 重启后生效>>>>:exit mysql -uroot -p
	

4.char 与varchar 对比

​ 4.1 char

char
    优势:整存整取 速度快
    劣势:浪费存储空间

char作用:
	char在存储时:固定了字符的长度不够的会空格填充。在取得时候固定取存时候的长度即可

char存储格式:
    char(6)
    	jason  tony  jack  kevin

​ 4.2 varchar

varchar
      优势:节省存储空间
      劣势:存取数据的时候都需要先考虑报头 速度较于char慢

varchar作用:
	varchar在存储时: 没有固定字符的长度。在每次取得时候会有一个报头,先取报头然后再取真实数据
    	
varchar存储格式:    	
	varchar(6)
    	1bytes+jason1bytes+tony1bytes+jack1bytes+kevin 

总结:所以在存储数据长度差异不大得时候使用char,数据长度差异很大情况下使用varchar

数字的含义

数字在很多地方都是用来表示限制存储数据的长度 
	但是在整型中数字却不是用来限制存储长度
 
create table t12(id int(3));  不是用来限制长度
insert into t12 values(12345);

create table t13(id int(5) zerofill);  而是用来控制展示的长度
insert into t13 values(123),(123456789);

create table t14(id int);

"""以后写整型无需添加数字"""

字段类型之枚举及集合

1.枚举 多选一


	create table t15(
    	id int,
      	name varchar(32),
       gender enum('male','female','others')
    );
    
 	insert into t15 values(1,'tony','猛男');
  	insert into t15 values(2,'jason','male');
 	insert into t15 values(3,'kevin','others');

2.集合 多选多(多选一)

create table t16(
    	id int,
      	name varchar(16),
       hobbies set('basketabll','football','doublecolorball')
    );
    
 	insert into t16 values(1,'jason','study');
 	insert into t16 values(2,'tony','doublecolorball');
	insert into t16 values(3,'kevin','doublecolorball,football');

字段类型之日期类型

1.日期类型

datetime		年月日时分秒
date			年月日
time			时分秒
year			年

2.日期

create table t17(
	id int,
  	name varchar(32),
 	register_time datetime,
 	birthday date,
 	study_time time,
 	work_time year
);
insert into t17 values(1,'jason','2000-11-11 11:11:11','1998-01-21','11:11:11','2000');
ps:以后涉及到日期相关字段一般都是系统自动回去 无需我们可以操作

标签:insert,数据库,数据类型,id,values,MySQL,table,create,into
From: https://www.cnblogs.com/zhanglanhua/p/16919556.html

相关文章

  • 数据库2
    目录字符编码与配置文件\s查看MySQL相关信息修改配置文件my-default.ini解决5.6版本字符编码问题配置文件什么时候加载?偷懒操作:输入mysql直接登录root账户数据库存储引擎存......
  • 数据库存储引擎
    数据库存储引擎存储引擎是数据库针对数据采取的多种存取方式。查看存储引擎的语句:showengines;我们需要了解图中标注的几个存储引擎:MyISAMMySQL5.5之前默认的存储......
  • MySQL的字段类型(数据类型)
    MySQL的字段类型创建表的完整语法createtable表名( 字段名字段类型(数字)约束条件, 字段名字段类型(数字)约束条件, 字段名字段类型(数字)约束条件);......
  • MySQL数据库基础2
    今日内容概要字符编码与配置文件数据库存储引擎创建表的完整语法MySQL字段基本数据类型今日内容详细字符编码与配置文件1.\s查看MySQL相关信息 当前用户版本编......
  • 初识MYSQL
    目录:1、表2、数据库2.1数据库管理系统2.2数据库系统2.3DBMS的工作流程3、关系型数据库4、非关系型数据库5、关系型数据与非数据库的区别6、mysql7、......
  • 数据库(部分讲解)
    字符编码与配置文件1.\s查看MySQL相关信息2.默认的配置文件是my-default.ini#字符编码相关配置[mysqld] character-set-server=utf8mb4 collation-server=utf8m......
  • 数据库的基本数据类型
    字符编码与配置文件数据库引擎操作创建表的完整语法MySQL字段基本数据类型MySQL字段常见约束条件今日内容详细字符编码与配置文件1.\s查看MySQL相关信息 当前用......
  • OpenSergo & ShardingSphere 社区共建微服务视角的数据库治理标准
    作者:赵奕豪(宿何)为什么需要微服务治理与OpenSergo?在经典微服务架构中,我们通常将服务调用中各角色划分为三部分:服务提供者、服务消费者、注册中心。经典的微服务架构可以解决......
  • MySQL字符编码、存储引擎、严格模式、字段类型之浮点 字符串 枚举与集合 日期类型
    目录字符编码与配置文件数据路储存引擎创建表的完整语法字段类型之整型严格模式字段类型之浮点型字段类型之字符串类型数字的含义字段类型之枚举与集合字段类型之日期类型......
  • oracle 数据库表空间的备份 ( expdp + cron )
    首先使用expdp工具制作一个备份脚本:backup.sh #hs_aws_dbprdbackup#byxulong#2010-09-25exportORACLE_SID=hsoaexportORACLE_UNQNAME=hsoaexportORACLE_BASE=/......