zoukankan      html  css  js  c++  java
  • day36 数据库表操作 数据类型 完整性约束

    今日内容

    1.存储引擎表类型

    2.数据类型

    3.完整性约束

    1.存储引擎表类型

    指令:

    1、show engines;#查看MySQL所有的引擎,

     2、show variables like "storage_engine%";查看当前正在使用的引擎

     储存引擎的使用

    1.创建表时指定引擎

    create table innodb_t2(id int) engine=innodb;
    

    2.在配置文件中指定默认的存储引擎

    linux:vim /etc/my.cnf   windows:my.ini文件
    [mysqld]
    default-storage-engine=INNODB  #配置默认引擎,现在用的mysql默认基本都是InnoDB,所以其实都可以不用配置了
    innodb_file_per_table=1  #表示独立表空间存储,可以不写
    

    3.不同引擎在创建表的时候生成文件的不同

      创建四个表,分别使用innodb ,myisam ,memory ,balckhole 存储引擎,进行插入数据

    #下面是使用四个不同的引擎来创建的表
    create table t1(id int)engine=innodb;
    create table t2(id int)engine=myisam;
    create table t3(id int)engine=memory;
    create table t4(id int)engine=blackhole;
    

    2.数据类型

     数字类型:

      整数:tinyint(极小),smallint(小),mediumint(中等), int ,bigint(大的)

            tinyint[(m)] [unsigned] [zerofill]
    
                小整数,数据类型用于保存一些范围的整数数值范围:
                有符号:
                    -128 ~ 127
                无符号:
                    0 ~ 255
    
                PS: MySQL中无布尔值,使用tinyint(1)构造。
    
    
    
            int[(m)][unsigned][zerofill]
    
                整数,数据类型用于保存一些范围的整数数值范围:
                有符号:
                        -2147483648 ~ 2147483647
                无符号:
                        0 ~ 4294967295
    
    
    
            bigint[(m)][unsigned][zerofill]
                大整数,数据类型用于保存一些范围的整数数值范围:
                有符号:
                        -9223372036854775808 ~ 9223372036854775807
                无符号:
                        0  ~  18446744073709551615

      小数: 

      float: 在位数比较短的情况下不准确

      double: 在位数比较长的情况下不准确  

       decimal: (如果用小数,推荐使用decimal)

        精准  内部原理是以字符串形式去存

    字符串类型:

      char(10) : 定长,简单粗暴,浪费空间,存储速度快

      字符长度范围 : 0-255(一个中文是一个字符,是utf8编码的三个字节)

        比如: root 存储为root000000

      varchar(10) : 变长,精准,节省空间,存储速度慢

      字符长度范围: 0-65535

      注: varchar数据会储存真实的数据,例如' ab ',前后的空格也是会被储存起来

      sql优化 : 创建表时,定长的类型往前放(比如性别),变长的往后放(比如地址或者描述信息)

      

    时间类型: 

      类型:date ,time ,datetime ,imestamp,year

      最常用的 : datatime (年月日 时分秒)

     枚举类型和集合类型 :(简单的数枚举类型是单选,集合类型是多选)

     枚举类型 (enum)

    create table t1(
    name varchar(10),
    size enum('x_small','small','mediun')
    );
    
    size 结果为从三个中选择一个
    

    集合类型(set或myset)

    create table myset (col set('a', 'b', 'c', 'd'));
    insert into myset (col) values ('a,d'), ('d,a'), ('a,d,a'), ('a,d,d'), ('d,a,d');

    3.约束

    作用: 保证数据的完整性和一致性

    约束条件的分类

    primary key (PK)    标识该字段为该表的主键,可以唯一的标识记录
    foreign key (FK)    标识该字段为该表的外键(一对一,一对多,多对多)
    not null    标识该字段不能为空
    null 标识该字段可以为空 unique key (UK) 标识该字段的值是唯一的 auto_increment 标识该字段的值自动增长(整数类型,而且为主键) default 为该字段设置默认值 unsigned 无符号 zreofill 使用0填充

      

     

  • 相关阅读:
    AngularJS ——ngResource、RESTful APIs 使用
    Angularjs promise-$q服务详解
    ui-router参数传递
    overflow知多少
    css3 @font-face设置嵌入字体
    CSS3文本超出容器显示省略号之text-overflow属性
    CSS3线性渐变和径向渐变
    CSS3边框图片属性---border-image
    在移动端如何选择字体大小和布局的单位,px或dp?
    angular $http配置属性
  • 原文地址:https://www.cnblogs.com/zty1304368100/p/10295437.html
Copyright © 2011-2022 走看看