zoukankan      html  css  js  c++  java
  • 数据库——存储引擎、字段类型、约束条件

    数据库——存储引擎、字段类型、约束条件

    存储引擎

    存储引擎是根据不同的机制处理不同的数据

    查看MySQL中所有引擎

    cmd>>>:show engines;
    
    	- myisam:5.5以前老的版本使用的存储引擎
    	- blackhole(黑洞引擎):类似于队列中的数据,存进去消失
    	- innodb:默认使用的存储引擎
    		- 支持事务
    		- 行锁
    		- 外键
    	- memory:通电数据存在,断电丢失
    	
    	create table t1(id int)engine=innodb;
    	create table t2(id int)engine=myisam;
    	create table t3(id int)engine=blackhole;
    	create table t4(id int)engine=memory;
    	- 插入数据验证引擎的作用:
    		insert into t1 values(1);
    		insert into t2 values(2);
    		insert into t3 values(3);
    		insert into t4 values(4);
    

    创建表完整的语法

    约束条件:可有可无

    宽度:限制某些数据类型的存储大小

    create table 表名(
    	字段名1 字段类型(宽度) 约束条件,
        字段名2 字段类型(宽度) 约束条件
    );
    

    注意:

    1、创建表的字段名不能重复

    2、最后一个字段不能再末尾加 , 号

    3、字段名必须要有字段类型与宽度

    字段类型

    ​ 1)确定表结构

    ​ 2)字段与字段类型

    - 整型
        - tinyint: 默认范围 -128, 127
            create table t5(
                id tinyint,
                name varchar(16)
            );
            5.6.40
            insert into t5 values(-128, 'tank'), (127, 'jason');
            insert into t5 values(-129, 'tank');
            insert into t5 values(128, 'jason');
            insert into t5 values(12, 'sean');
    
        - int: 默认范围是(-2147483648, 2147483647)
    
            应用场景: id号、年龄...
    
            create table t6(
                id int
            );
    
            # int 默认宽度11---> 默认展示宽度
            insert into t6 values(-2147483649);
            insert into t6 values(2147483648);
            insert into t6 values(100);
    
            create table t7(
                id int(3)
            );
    
            # 若插入超过设定宽度,则正常显示
            insert into t7 values(123456);
    
            # 若插入不足够4位,则以空格补全
            insert into t7 values(1);
    
        - bigint
    - 浮点型:
    
        应用场景: 工资、身高、体重...
    
        - float (默认5位)
        - double(默认16位)
        - decimal(默认没有小数)
    
        # 范围255是最大长度(包括.小数), 30代表是小数的位数
        create table t8(x float(255, 30));
        create table t9(x double(255, 30));
        create table t10(x decimal(65, 30));
    
        # 插入数据
        # 三种浮点型: 区别在于精确度不一样
        insert into t8 values(1.111111111111111111111111111111);    # 精确度7位
        insert into t9 values(1.1111111111111111111111111111);      # 精确度15位
        insert into t10 values(1.1111111111111111111111111111);     # 取几位小数,精准到多少位
    

    字符类型

    char是定长字符他的特点是:
    1、存储空间固定
    2、长度不够时内部存储使用空格填充
    3、若字段末尾存在空格,检索出来自动截断末尾的空格
    4、若字段本身前段存在空格,是不会阶段的
    5、当输入字符的长度超过指定长度时,char会截取超出的字符,不做存储
    优点:
    存取速度快
    缺点:
    浪费空间

    varchar是可变长字符,他的特点是:

    ​ 1、存储空间不固定,根据字段长度决定

    ​ 2、需要额外的一个或两个字节记录字符串的长度,字符串的长度小于255字节使用1个字节,否则2个

    ​ 3、最大长度65535字节(这里单位是字节不是字符)
    优点:

    节省空间
    缺点:

    相较于char存取速度慢

    日期类型

    data:年月日 --->2019-12-11
    datetime:年月日 时分秒 --->2019-12-11 11:10:00
    time:时分秒 11:10:00
    year:年 2019
    timestamp:时间戳 ---> 插入时间时,会自动更新
    
    create table student(
                    id int,
                    name varchar(4),
                    birth date,
                    register datetime,
                    work_time year,
                    t_time time,
                    update_time timestamp
                );
    
    insert into student values(1, '张全蛋', '2019-11-11', '2019-11-11 11:11:11','2019', '11:11:11', null);
    

    枚举与集合

    枚举 enum('值1','值2') 多选一,若不选,在严格模式下会报错

    集合 set('值1','值2') 多选一 多选多 set('值1, 值2')

    约束条件

    语法:create table 表名(
    字段名1 字段类型(宽度) 约束条件,
    字段名2 字段类型(宽度) 约束条件
    );

    1.not null --->不得为空
    2.unique ---> 必须唯一
    3.primary key ---> 主键
    4.default ---> 设置默认值
    5.auto_increment ---> 自增
    6.zerofill ---> 用0填充空格
    7.unsigned ---> 无符号
    
  • 相关阅读:
    Python元组、列表、字典
    测试通过Word直接发布博文
    Python环境搭建(windows)
    hdu 4003 Find Metal Mineral 树形DP
    poj 1986 Distance Queries LCA
    poj 1470 Closest Common Ancestors LCA
    poj 1330 Nearest Common Ancestors LCA
    hdu 3046 Pleasant sheep and big big wolf 最小割
    poj 3281 Dining 最大流
    zoj 2760 How Many Shortest Path 最大流
  • 原文地址:https://www.cnblogs.com/aheng/p/12031396.html
Copyright © 2011-2022 走看看