40、数据库2

今日内容概要

  • 存储引擎

  • 数据类型

    整型:
    	tinyint   smallint  int  bigint
    浮点型
    	float  double  decimal 
    字符串
    	char  varchar
    日期类型
    	datetime   年月日  时分秒
        time		时分秒
        date		年月日
        year		年份
    
    枚举和集合
       enum  set 
    
  • 创建表的完整语句

  • 约束条件

    在已有条件的基础上在做限制
    
    zerofill
    unsigned
    not null 
    primary key 
    auto_increment
    foreign_key
    unique 
    default
    

    今日内容详情

    存储引擎

    # 就是存储数据的方式
    
    # 如何查看存储引擎?  都有哪些存储引擎?
    	show engines;
        
    MyISAM:
    	mysql5.5版本及之前的版本默认引擎
        查询速度比InnoDB快, 安全性低
    	# 不支持事务
        # 表级锁
    InnoDB
    	mysql5.6及之后的版本默认引擎
        查询速度比MyISAM慢, 安全性高
        
        # 功能:
        	1. 支持事务
            2. 行级锁
            3. 外键
    MEMORY  => 内存
    	# 数据是在内存中
        
        
    面试题:
    	MyISAM和InnoDB引擎的区别?
    
    # 特点
    	create table t2 (id int) engine='MyISAM';
        create table t3 (id int) engine='InnoDB';
        create table t4 (id int) engine='MEMORY';
        
    MyISAM
    	.frm  =>  表结构
        .MYD  =>   表数据
        .MYI  =>   索引(目录)优点:查询速度快
    
    InnoDB
    	.frm  => 表结构
        .ibd  => 表数据和索引
    
    MEMORY
    	.frm  => 表结构
    

    数据类型之整型

    tinyint smallint int bigint
    # 他们之间的区别就是存储数据的范围不一样
    
    # 验证整型默认是否带符号
    	create table t6 (id tinyint);
        
        insert into t5 values(-129), (256);
    # 结论:所有的整型默认都是带符号的。
    
    

    数据类型之浮点型

    float double decimal
    
    # float(8, 2)  999999.99
    float(255,30)
    	总共255位,小数30位
    double(255,30)
    	总共255位,小数30位
    decimal(60,30)
    	总共60位,小数30位
        
        
    create table t6 (id float(255,30));
    create table t7 (id double(255,30));
    create table t8 (id decimal(60,30));
    
    
    insert into t6 values(1.11111111111111111111111111);
    insert into t7 values(1.11111111111111111111111111);
    insert into t8 values(1.11111111111111111111111111);
    
    # 精确度不一样
    decimal > double > float
    
    
    设计表注意:
    	1、 表结构中的数据类型
        2、该表中上线之后可能会产生多少数据量?order
    
    

    数据类型之字符串

    # 两种字符串括号中的数字必须写, 代表存储字符串的长度
    char(4)
    存储4位,不够的空格补齐4位,超过4位的报错
    # 优点
    	查询速度快, 整存整取
    # 缺点
    	浪费空间
    varchar(4)
    存储4位,有几位存几位,超过的报错
    
    # 优点:
    	节省空间
    # 缺点
    	查询速度比char慢
    
        char(4)  varchar(4)
        
        
       pack(2) => 1  pack(10) => 1
    	
        unpack(1) => 2   unpack(1) => 10
    1byteskevin1bytesegon1bytesjasonlytom
        
    
    # 验证
    create table t10 (id int, name char(4));
    create table t9 (id int, name varchar(4));
    
    insert into t10 values(1, 'kevin');
    insert into t9 values(1, 'kevin');
    
    

    数据类型之日期类型

    datetime
    date
    time
    year
    
    # 
    create table t12 (id int,  r1_time datetime, r2_time date, r3_time time, r4_time year);
    
    #
    insert into t12 values (1, '2021-11-11 11:11:11','2021-11-11','11:11:11','2021');
    

    数据类型之枚举

    # 枚举  多选一
    
    
    create table t13 (
    	id int,
        gender enum('male', 'female', 'other')
    )
    
    # 
    insert into t13 values (1, 'egon');
    insert into t13 values (1, 'male');
    

    数据类型之集合类型

    # 集合
    	create table t14 (
        	id int,
            hobby set('read', 'music', 'football', 'lm')
        )
        
    # 
    insert into t14 values(1, 'egon');
    insert into t14 values(1, 'read');
    insert into t14 values(1, 'read, music');
    insert into t14 values(1, 'read, egon');
    

    创建表的完整语句

    create table 表名 (
    	字段名  数据类型(长度) 约束条件1 约束条件2 约束条件3,
    	字段名  数据类型(长度) 约束条件1 约束条件2 约束条件3,
        字段名  数据类型(长度) 约束条件1 约束条件2 约束条件3,
        字段名  数据类型(长度) 约束条件1 约束条件2 约束条件3
    )
    
    # 注意:
    	1. 表中字段名和数据类型是必填项, 约束条件是可选的
        2. 约束条件可以有多个,依次往下写
        3. SQL语句的最后一个不能加逗号(,)
    
    
posted @ 2021-07-30 15:52  简爱cx  阅读(33)  评论(0编辑  收藏  举报