Python之MySQL基础

一、存储引擎

1.1  什么是存储引擎

MySQL中的数据通过不同的技术存储再文件或者内存中,每种技术有不同的存储机制,索引技巧,锁定水平,并且提供不同的能力,而实现这些技术的我们就称之为存储引擎

1.2 都有哪些存储引擎

  • InnoDB  最常用 支持事务,行级锁定
  • MyISAM 不支持事务,表记锁定
  • MEMORY 所有的数据都保存再内存中

1.3 Mysql的工作流程

  • 第一层:连接处理,授权认证,安全
  • 第二层:包含大多数核心功能,如查询解析、分析、优化、缓存以及所有的内置函数等,所有的跨存储引擎的功能都在这一层实现:存储过程、触发器、视图等
  • 第三层:存储引擎,负载数据的存储和提取,各个存储引擎之间没有通信
  • 第四层:文件系统,数据,日志等都会以文件的形式存储再硬盘上

二、事务

ACID

原子

三、索引和键

3.1、主键

特点

  • 一个表只能有一个主键
  • 主键列非空且唯一

四、数据类型

4.1 数字类型

4.11、tinyint

 

4.12、int 

 

4.13、bigint

 

4.14、FLOAT

 

4.15、DOUBLE

 

4.16、decimal

  • 精确的浮点数

decimal(num1,num2) 是指总共10位,其中5位数小数点以后的位置,即小数点之前为5位,小数点后面位5位

 4.2、字符串类型

4.2.1 char

  • 固定长度,如果数据没有填满,则使用其他填充符号填充
  • 速度快

4.2.2 varchar

  • 不定长,数据多少就存多少
  • 速度比char慢

4.2.3 text

  • 存储大小比较大的字符串
  • 如果存储文件或者图片时,将文件和图片放到服务器磁盘上,DB里面存储文件和图片的路径

4.3 时间类型

  • 最常用的是datetime类型,有年月日,时分秒记录

4.4 enum

4.5 set

自增列

  • 如果一列为自增列,有10行数据,删掉了后5行,再次插入数据时,自增列时从11开始的
  • 如果我们自定义自增的开始值可以通过 alter table user_info auto_increment = 10; 设置自增开始值

  

# 创建一个user_info表,uid自增
CREATE TABLE user_info(
    uid INT AUTO_INCREMENT PRIMARY KEY,
    uname VARCHAR(20)
)ENGINE = INNODB DEFAULT CHARSET = utf8;

# 表内插入3条数据
INSERT INTO user_info(uname) VALUES('老赵');
INSERT INTO user_info(uname) VALUES('老李');
INSERT INTO user_info(uname) VALUES('老王');

SELECT * FROM user_info;

# 删除第二条和第三条数据
DELETE FROM user_info WHERE uid = 2 OR uid = 3;

# 再次插入一条数据
INSERT INTO user_info(uname) VALUES('老李');
# 再次查看uid为4
SELECT * FROM user_info;

之所以这样是因为这个表里uid是auto_increatment,每次新增数据,该值会随着发生变化,当有新增数据时,会将该值作为下一个uid的值插入

原文地址:https://www.cnblogs.com/wc89/p/10464149.html