mysql各存储引擎介绍表格_数据库----mysql 存储引擎,表介绍

一,存储引擎

数据的存储方式 -- 存储引擎engines

使用不同的存储引擎,数据是以不同的方式存储的

show engines------------查看存储引擎

不同的储存引擎及适用场景

innodb

用于事务处理应用程序,支持外键和行级锁。如果应用对事物的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作除了插入和查询之外,还包括很多更新和删除操作,那么InnoDB存储引擎是比较合适的。InnoDB除了有效的降低由删除和更新导致的锁定,还可以确保事务的完整提交和回滚,对于类似计费系统或者财务系统等对数据准确要求性比较高的系统都是合适的选择。

总结:

innodb2个文件

mysql5.6以上 默认的存储方式

transaction 事务 保证数据安全 数据的完整性而设置的概念

row-level locking 行级锁

table-level locking 表级锁

foreign keys 外键约束

树tree - 加速查询 (树形结构(数据+树) + 表结构)

MyISAM

如果应用是以读操作和插入操作为主,只有很少的更新和删除操作,并且对事务的完整性、并发性要求不高,那么可以选择这个存储引擎。

总结:

​3个文件

​ mysql5.5以下 默认的存储方式

​ table-level locking 表级锁

​ 树tree - 加速查询 (树形结构 + 数据 + 表结构)

Memory

将所有的数据保存在内存中,在需要快速定位记录和其他类似数据的环境下,可以提供极快的访问。Memory的缺陷是对表的大小有限制,虽然数据库因为异常终止的话数据可以正常恢复,但是一旦数据库关闭,存储在内存中的数据都会丢失

总结:

1个文件

基于hash

存储引擎相关sql语句

查看当前的默认存储引擎:

mysql> show variables like "default_storage_engine";

查询当前数据库;支持的存储引擎

mysql> show engines \G;

指定存储引擎建表

在建表时指定

mysql> create table ai(id bigint(12),name varchar(200)) ENGINE=MyISAM;

mysql> create table country(id int(4),cname varchar(50)) ENGINE=InnoDB;

也可以使用alter table语句,修改一个已经存在的表的存储引擎。

mysql> alter table ai engine = innodb;

在配置文件中指定

#my.ini文件

[mysqld]

default-storage-engine=INNODB

mysql的工作流程

90e69008a3312a6859aa1d65f68b17e8.png

二.表的创建

三,表介绍

表就相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段

id

name

age

sex

phone

job

1

haven

18

male

666666

it

2

angle

18

female

88888888

it

3

周越洋(Barry)

83

不详

11111111

搓脚工

id,name,age,sex,phone,job称为字段,其余的,一行内容称为一条记录

四,创建表

#语法:

create table 表名(

字段名1 类型[(宽度) 约束条件],

字段名2 类型[(宽度) 约束条件],

字段名3 类型[(宽度) 约束条件]

);

#注意:

1. 在同一张表中,字段名是不能相同

2. 宽度和约束条件可选

3. 字段名和类型是必须的

建表,查看表结构

mysql> create database python; -----创建一个库

mysql> use python; ------切换到库

mysql> create table staff_info(id int,name char(12),age int(3),sex enum('男','女'),phone bigint(11),job varchar(11)); ---- 创建表结构

mysql> show tables; --- 查看有哪些表

mysql> desc staff_info; ----- 查看表结构

mysql> insert into staff_info values(1,'猪八戒',18,'女',13838383838,'护士'); -----插入信息

mysql> insert into staff_info values(2,'孙悟空',18,'男',16868686868,'院长');

mysql> select * from staff_info; ----- 查看所有表信息

mysql> desc 表名和describe表名效果相同,---可以查看当前的表结构

mysql> show create table 表名; ----查看更全面的表定义信息

mysql> desc staff_info;

mysql> show create table staff_info;

mysql> show create table staff_info\G; ----查看表的详细信息

五,mysql中常用的数据类型

数值类型

MySQL支持所有标准SQL数值数据类型。

这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。

关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。

MySQL支持的整数类型有TINYINT、MEDIUMINT和BIGINT。下面的表显示了需要的每个整数类型的存储和范围。

对于小数的表示,MYSQL分为两种方式:浮点数和定点数。浮点数包括float(单精度)和double(双精度),而定点数只有decimal一种,在mysql中以字符串的形式存放,比浮点数更精确,适合用来表示货币等精度高的数据。

类型

大小

范围(有符号)

范围(无符号)unsigned约束

用途

INT或INTEGER

4 字节

(-2 147 483 648,2 147 483 647)

(0,4 294 967 295)

大整数值

TINYINT

1 字节

(-128,127)

(0,255)

小整数值

FLOAT

4 字节float(255,30)

(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)

0,(1.175 494 351 E-38,3.402 823 466 E+38)

单精度 浮点数值

DOUBLE

8 字节double(255,30)

(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)

0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)

双精度 浮点数值

DECIMAL

对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2double(65,30)

依赖于M和D的值

依赖于M和D的值

小数值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值