zoukankan      html  css  js  c++  java
  • 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的值插入

  • 相关阅读:
    HDU_5688
    微服务的一致性问题
    我来博客园啦
    异常:This application has no explicit mapping for /error, so you are seeing this as a fallback.
    异常:Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException
    异常:Unknown lifecycle phase "mvn". You must specify a valid lifecycle
    SpringMVC中遇到页面跳转出现404错误的问题
    Could not resolve view with name '***' in servlet with name 'dispatcher'
    关于Could not resolve dependencies for project
    让我们相互交流
  • 原文地址:https://www.cnblogs.com/wc89/p/10464149.html
Copyright © 2011-2022 走看看