首页 > 数据库 >mysql配置与mysql数据类型

mysql配置与mysql数据类型

时间:2022-11-23 21:13:35浏览次数:43  
标签:insert 存储 create 配置 数据类型 正负号 mysql table into

字符编码

1.\s查看MySQL相关信息
	当前用户、版本、编码、端口号
MySQL5.6之前的版本编码需要人为统一 之后版本已经全部默认统一


如果想要永久修改编码配置需要操作配置文件
2.默认的配置文件是my-deafult.ini
	拷贝上述文件并重名命my.ini
    
配置文件:
	[mysqld]
        character-set-server=utf8mb4
        collation-server=utf8mb4_general_ci
    [client]
        default-character-set=utf8mb4
    [mysql]
        default-character-set=utf8mb4
        
        
1.utf8mb4能够存储表情 功能更强大
2.utf8与utf-8是有区别的 MySQL中只有utf8
修改了配置文件中的[mysqld]的配置 需要重启服务端才能生效

"""
利用配置文件我们可以偷懒
	将管理员登录的账号密码直接写在配置文件中 之后使用mysql登录即可
	[mysql]
		user='root'
		password=123
"""

数据库存储引擎

存储引擎:数据库针对数据采取的多种存取方式

查看常见存储引擎的方式
show engines;

四种存储引擎

  1. MyISAM
    MySQL5.6之气默认的存储引擎
    存取数据的数度快 但是功能少 安全性低
  2. InnoDB
    MySQL5.6之后默认的存储引擎
    支持事务,行锁,外键等操作 存取数度没有MyISAM快但是更安全
  3. memory
    基于内存的数据库,服务端重启数据则消失
  4. blackhole
    黑洞,无论存放什么数据,都会立刻丢失
了解不同存储引擎底层文件个数
create database d1;
show databases;
use d1;
create table t1(id int) engine = myisam
create table t2(id int) engine = innodb
create table t3(id int) engine = memory
create table t4(id int) engine = blackhole

image-20221123160224874

1.myisam三个文件
	.frm		表结构
    .myd		表数据
    .myi		表索引
2.innodb两个文件
	.frm		表索引
    .ibd		表数据与表索引
3.memory一个文件
	.frm		表索引
4.blackhole一个文件
	.frm		表索引
    
insert into t1 values(1);
insert into t2 values(1);
insert into t3 values(1);
insert into t4 valuse(1);


mysql默认忽略大小写

image-20221123160850333

可以看出memory存储引擎再服务端重启后数据全部丢失

image-20221123161042076

创建表的完整语法

create table 表名(
	字段 字段类型(数字) 约束条件,
	字段 字段类型(数字) 约束条件,
	字段 字段类型(数字) 约束条件
);
1.字段名和字段类型是必须的
2.数字和约束条件是可选的
3.约束条件可以写多个 空格隔开即可
4.最后一个字段最后不能加逗号','

mysql报错不要慌 仔细查看提示 
near ')' at line 7 说明再第七行)左右出现了错误重点检查


字段类型之整型

tinyint			1bytes=8bit		正负号(占1bit)
		-128--127
    	0--255

smallint		2bytes			正负号(占1bit)	


int				4bytes			正负号(占1bit)	


bigint			8bytes			正负号(占1bit)	
默认所有整型都带正负号
验证整型默认是否携带正负号
	create table t5(id tinyint);
    insert into t5 values(-129),(128);
    结果是-128和127 也就意味着默认带正负号
也可以取消正负号

	create table t6(id tinyint unsigned);
    insert into t5 values(-129),(128);
    结果是0-128 意味着取消了正负号

严格模式

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

image-20221123192556759

临时修改
在当前客户端有效

set session sql_mode='strict_trans_tables';

image-20221123192810431

在当前服务端有效

set global sql_mode='strict_trans_tables';

永久修改

修改配置文件
image-20221123193927834

字段类型之浮点型

  1. 一般小数数据用这个即可,精度在小数点后7-8位
    float(20,10) 总共存储20位数 小数点后面占10位

  2. 一般很少用这个即可,精度在小数点后15-16位
    double(20,10) 总共存储20位数 小数点后面占10位

  3. 精度非常高,一般用于科学计算,精度要求很高的数据
    decimal(20,10) 总共存储20位数 小数点后面占10位

三者核心区别

float < double decimal
image-20221123195851782

可以添加负数,修改为无符号后不允许添加

image-20221123200233774

总长度必须大于等于小数位长度

image-20221123203649072

总长度等于小数位长度,则整数位必须是(正负号0)然后添加小数位数即可

image-20221123204242261

字段类型之字符类型

  1. char
    定长 char(4) 最多存储四个字符 超出就报错 不够四个默认空格填充到4个
  2. varchar
    不定长 varchar(4) 最多存储四个字符 超出就报错 不够有机位存几位

image-20221123202315933

ps:char_length()获取字段存储的数据长度
默认情况下MySQL针对char的存储会自动填充空格和删除空格

set global sql_mode='strict_trans_tables,pad_char_to_full_length';



char VS varchar
    char
        优势:整存整取 速度快
        劣势:浪费存储空间
	 varchar
    	  优势:节省存储空间 
       	 劣势:存取数据的速度较char慢
jacktonyjasonkevintomjerry
1bytes+jack1bytes+tony1bytes+jason1bytes+kevin1bytes+tom1bytes+jerry
"""
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);

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

image-20221123202849108

字段类型之枚举与集合

枚举多选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');

标签:insert,存储,create,配置,数据类型,正负号,mysql,table,into
From: https://www.cnblogs.com/clever-cat/p/16919803.html

相关文章

  • Mysql密码策略
    一、查看当前密码策略showvariableslike'validate_password%'; 关于mysql密码策略相关参数validate_password.length固定密码的总长度;validate_password.......
  • 关于配置执行定时任务和异步任务的线程池配置类
    packagecom.liftsail.rsademo.utils;importlombok.extern.slf4j.Slf4j;importorg.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;importorg.springf......
  • Spring配置数据源
    //dataSource.javapackagespring_ioc_anno;importjava.beans.PropertyVetoException;importjava.sql.Connection;importjava.util.ResourceBundle;importjavax......
  • linux命令风格与mysql启动
    Linux三种风格(Unix、BSD、GNU)下的ps的参数说明mysqld_safe是什么使用mysqld_safe启动mysql服务,mysqld_safe为mysqld的守护进程,在BSD风格的unix系统上,常用mysqld_safe脚......
  • Ubuntu安装配置
    镜像:官网服务器版本镜像:ubuntu-20.04.4-live-server-amd64创建虚拟时选择开启WMX才可以和WSL共存安装:系统安装时:配置40G空间选择获取github的公钥自动开启ssh连接......
  • IDEA与tomcat相关配置、Servlet_体系结构
    IDEA与tomcat相关配置IDEA会为每一个tomcat部署的项目单独建立一份配置文件查看控制台的log:"C:\Users\drm\AppData\Local\JetBrains\IntelliJIdea2022.1\tom......
  • Python基础之数据库:5、创建表的完整语法、MySQL数据类型
    一、创建表的完整语法1、创建表的语法createtable表名(​ 字段名1字段类型(数字)约束条件,​ 字段名2字段类型(数字)约束条件,​ 字段名3字段类型(数字)......
  • helm部署mysql
    欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos关于helm部署mysql如果您的kubernetes已有helm,那么部署mysql的......
  • docker-compose值mysql集群模式(MGR)
    一、之前也提过MGR的方式,局限很多,但是毕竟是集群的方式还是存在使用场景的。1、必须使用InnoDB2、每个表必须定义主键,主要用于事务冲突判断。3、必须使......
  • MySQL中用户和系统变量设置获取使用@和@@ global和session--笔记
    1、概述mysql有用户变量和系统变量,系统变量又分全局(global)和会话(session)查看set命令root@localhost:01:23[7308][(none)]>helpset;Name:'SET'Description:Syntax:......