zoukankan      html  css  js  c++  java
  • 数据库表的引擎与数据库的模式

    创建表的完整语法

    # 长度和约束在某些情况下是可以省略的
    mysql>: create table 表名 (
    	属性名1 类型(长度) 约束,
    	...
    	属性名n 类型(长度) 约束
    ) engine=引擎 default charset=utf8;
    

    数据库表的引擎:驱动数据的方式 - 数据库优化

    # 前提: 引擎是建表是规定, 提供给表使用的, 不是数据库
    
    # 展示所有引擎
    mysql> show engines; 
    
    # innodb(默认): 支持事务, 行级锁, 外键
    mysql>: create table t11(id int)engine=innodb;
    
    # myisam: 查询效率要优于innodb, 当不需要支持事务, 行级锁, 外键, 可以通过设置myisam来优化数据库
    mysql>: create table t12(id int)engine=myisam;
    
    # blackhole:黑洞,存进去的数据都会消失(可以理解不存数据)
    mysql>: create table t13(id int)engine=blackhole;
    
    # memory:表结构是存储在硬盘上的,但是表数据全部存储在内存中
    mysql>: create table t14(id int)engine=memory;
    

    数据库的模式

    # mysql 5.7 以后默认都是安全模式
    
    # mysql 5.6 版本
    sql_model=no_engine_substitution  # 非安全性,默认
    sql_model=strict_trans_tables  # 安全性
    
    # 查看当前数据库模式:
    show variables like "%sql_mode%"; # %匹配0~n个任意字符 => 模糊查询
    
    # 临时设置为安全模式,服务重启后会被重置
    mysql>: set global sql_mode="strict_trans_tables";  # 在root用户登录状态下
    # 在设置后,quit断开数据库连接后(服务器不重启)就会进入安全模式
    
    # 安全模式下,非安全模式下sql执行的警告语句,都会抛异常
    eg>: create table t1(name char(2));
    eg>: insert into t1 values ("ab") # 正常
    eg>: insert into t1 values ("owen") # 错误 Data too long for column 'name' at row 1
    
  • 相关阅读:
    react 组件间通信,父子间通信
    微信公众号配置及微信jsAPI支付
    Vue 幸运大转盘
    Hystrix断路器配置属性解析
    使用熔断器仪表盘监控(hystrix)
    使用熔断器防止服务雪崩
    创建服务消费者(Feign)
    Spring Cloud Ribbon配置详解
    创建服务消费者(Ribbon)
    创建服务提供者
  • 原文地址:https://www.cnblogs.com/aden668/p/11574338.html
Copyright © 2011-2022 走看看