首页 > 数据库 >MySQL

MySQL

时间:2022-08-15 23:25:38浏览次数:48  
标签:int create id values MySQL table into

字符编码与配置文件

# 由于5.6版本编码不统一 会造成乱码 我们需要把它统一修改成》:utf8
1.MySQL里的my-default.ini是 windows下MySQL默认的配置文件
2.拷贝文件并重新命名为my.ini
3.添加字符编码相关的配置
   [mysqld]
		character-set-server=utf8
		collation-server=utf8_general_ci
   [client]
		default-character-set=utf8
   [mysql]
		default-character-set=utf8  
ps:由于配置文件涉及到了mysql的配置修改 需要重启服务端才可以生效

相关配置:
image
直接mysql登录:
image
查看修改之后的配置:
image


存储引擎

# 存储引擎就是针对相同的数据采取不同的策略
1.MYISAM : 
          MySQL5.5之前版本默认的存储引擎
		  特点是:存取数据的速度快 但是功能较少 安全性较低
2:INNODB:
          MySQL5.5之后版本默认的存储引擎
		  特点是:存取数据的速度没有myisam快,但是支持事务,行锁,外键等诸多功能 安全性较高
		  
3:memory:
          基于内存的存储引擎,存取数据极快,但是断电立刻丢失数据
4:blackhole:
          黑洞,任何写进去的数据都会立刻丢失 类似于垃圾站
ps:MySQL对于大小写不敏感 可以任意写
引擎区别
# 先创建表 分别用不同的引擎
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
insert into t1 values(1);
insert into t2 values(2);
insert into t3 values(3);
insert into t4 values(4);
------------
myisam .frm 表结构
       .MYD 表数据
	   .MYI 表索引(加快数据查询)
innodb .frm 表结构
       .ibd 表数据,表索引(加快数据查询)
memory .frm 表结构   (重新启动MySQLt3的数据就没有了)
blackhole .frm 表结构

image

创建表的完整语法

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

)engine=存储引擎
1.字段名和字段类型是必须的(至少写一个)
2.数字约束条件是可选的
3.约束条件可以写多个 空格隔开即可
4.最后一个字段的结尾千万不能加逗号
数字的含义
char(4) 括号里的数字是用来限制数据的长度的
int(4)整型后面的数字是用来展示数据的长度的
create table s1(id int(3) zerofill);
insert into s1 values(1),(12);
总结:涉及到整型字段的定义 类型后面不需要加括号加数字 除非有固定业务需求

image

字段类型

整型
1.tinyint    1bytes
2.smallint   2bytes
3.int        4bytes
4.bigint     8bytes
1.验证整型是否自带负号
create table a1(id tinyint);
inster into a1 values(-129),(256);
上述所有的整型类型默认都会自带负号
2.自定义移除符号
create table a2(id tinyint unsigned)
insert into a2 values(-129),(256);
usigned 是约束条件之一 意思是不需要负号

ps:由于给MySQL配置了属性sql_mode=STRICT_TRANS_TABLES 以上方法超出范围都无法执行 
浮点型
1.float 
2.double
3.decimal
# 三者都可以存储浮点型数据 但是各自的精确度不一致
float(300,90) # 第一个数表示总共有多少位数 第二位数表示小数占多少位
double(300,90)
decimal(300,90)
验证精确度问题
create table a3(id float(255,30));
create table a4(id double(255,30));
create table a5(id decimal(255,30));
insert into a3 values(1.11111111111);
insert into a4 values(1.11111111111);
insert into a5 values(1.11111111111);

总结:float<double<decimal
一般使用float 就可以了 ,如果想要输入什么得到什么,可以使用字符串

验证结果:

字符类型
char  定长
char(4): 最大只能存储四个字符 如果超出范围直接报错
            如果不超出范围 则用空格填充至四个字符
varchar 可变长字符串
varchar(4):最大只能存储四个字符 如果超出范围直接报错 
             如果不超出范围 则有几位就存几位
			 
验证两者的区别;
create table d1(id int,name char(4));
create table d2(id int,name varchar(4));
结果如下图:
1.超出范围都会报错!
2.验证定长和变长特性
char_length() # 统计字段数据的长度
# 默认情况下char在存储的时候会自动将没有满足固定位数的空格填充,在读取的时候又会将空格移除 如果想取消该机制 需要sql_mode
set global sql_mode='strict_trans_tables,pad_char_to_full_length';
这个命令是替换不是新增

char 优点是整存整取 速度快 , 缺点是浪费存储空间
varchar 节省存储空间 存取速度要慢于char
总结: 知道具体数据长度的时候用char、不知道具体数据长度的时候用varchar
两者使用频率都很高 现在默认是varchar 

image

枚举与集合
枚举用于多选一:
create table z1(id int,name varchar(32),gender enum('male','female'));
insert into z1 values(1,'summer','female')
# gender参数只能选择括号内的一个 ,选择其他的会报错
集合用于多选多(包含多选一)
create table z2(id int,name varchar(32),hobby set('read','rap','dance','run'));
insert into z2 values(1,'summer','read,dance,run')

image
image

日期类型
date		 年月日
datetime	 年月日时分秒
time		 时分秒
year		 年份
create table w1(id int,name varchar(32),birth date,join_time year);
insert into w1 values(1,'summer','2004-6-19','2022');

image

字段约束条件

1.unsigend 无负号   id int unsigend
2.zerofill 零填充   id int zerofill
3.not null 非空     name varchar(32) not null
4.default 默认值    name varchar(32) default 'summer'
5.unique 唯一值     id int unique 单列唯一
port int
unique(host,port)

image

标签:int,create,id,values,MySQL,table,into
From: https://www.cnblogs.com/Hsummer/p/16589048.html

相关文章

  • centos/windows服务器,Mysql数据库表结构损坏-已解决
    【问题原因】服务器突然断电【故障报告】数据库表结构损坏【解决思路】进入强制恢复模式,备份库表及数据重建故障发现周末公司断电,周一启动数据库就直接报错了查看日......
  • mysql数据库-2
    目录字符编码与配置文件存储引擎创建表的完整语法字段类型之整型字段类型之浮点型字段类型之字符类型数字的含义字段类型之枚举与集合字段类型之日期类型字段约束条件字符......
  • 【2022.8.15】MySQL数据库(2)
    今日内容概要字符编码与配置文件数据库存储引擎创建表的完整语法MySQL字段类型MySQL字段约束今日内容详细字符编码与配置文件如何查看数据库基本信息(用户......
  • MySQL字段类型
    今日内容字符编码与配置文件查看数据库基本信息(用户字符编码) \swindows下MySQL默认的配置文件(苹果本不一样) my-default.int 拷贝上述文件并且重命名为my.ini由......
  • MySQL字段类型、字符编码与配置文件
    目录字符编码与配置文件存储引擎创建表的完整语法字段类型之整形字段类型之浮点型字段类型之字符类型字段后面的含义字段类型之枚举和集合字段类型之日期类型字段约束条件......
  • 2022-08-15 第六小组 张宁杰 Mysql数据库(1)
    Mysql数据库数据库数据库【按照数据结构来组织、存储和管理数据的仓库】。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据对于公司......
  • 【MySQL】第2回 字符编码和字段类型
    目录1.字符编码与配置文件1.1\S1.2my.ini2.数据库存储引擎2.1定义2.2需要掌握的存储引擎2.3不同存储引擎之间底层文件的区别3.创建表的完整语法4.MySQL字段类型4.......
  • 2022-8-15MySQL的学习
    MySQL数据库数据库数据库【按照数据结构来组织来存储和管理数据的仓库】。是一个长期存储在计算机内的有组织的可共享的,统一管理的大量数据的集合。数据对于公司来......
  • Mysql 数据备份与恢复
    数据备份使用工具导出工具导出文件包含创建数据库和其他sql语句导出内容dbname.sql/*SQLyogUltimatev12.08(32bit)MySQL-5.7.27:Database-dbname******......
  • go 通过sql操作mysql
    GoLang学习更方便,一文在手,面试我有GoLang面试|GoLang面试|GoLang面试go通过sql操作mysql亲测、2022/08/1520:53北京朝阳@目录前言go代码sql汇总-增删改查......