存储引擎:

    不同的数据应该有不同的处理机制

    mysql存储引擎

        Innodb:默认的存储引擎  查询速度相比于myisam慢  但是更安全

        myisam:mysql老版本用的存储引擎

        memory:内存引擎(数据全部存在内存中)

        blackhole:无论存什么都立刻消失(黑洞)

    show engines;

数据类型:

    创建表的完整语法: 

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

        注意:

            1、字段名和字段类型都是必须的  中括号内的参数都是可选的参数

            2、同一张表中字段名不能重复

            3、最后一个字段后面不能加括号

        宽度:(使用数据库的准则:尽可能让它少干活)

            对存储数据的限制

            char(1)  只能存一个字符如果超过了mysql会自动帮你截取或者直接报错(mysql中的严格模式)

            alter table tablename modify name char not null;    not null(该字段不能为空)

        类型和中括号内的约束:

            类型约束的是数据的存储类型

            而约束是基于类型之上的额外的限制

    字段类型:

        

            

        整形: SMALLINT TINYINT INT BIGINT

            TINYINT:默认是带有符号的(-128,127),超出这个限制之后会存最大值或最小值

            create table tablename(id TINYINT);

        not null  不能为空

        unsigned  无正负符号

        zerofill 0填充多余的位数

        char后面的数字是用来限制存储数据的长度的

        特例:只有整型后面的数字不是用来限制存储数据的长度的  而是用来控制展示数据的位数的

            int(8)  够/超8位有几位存几位,不够8位就用空格填充

        强调:对于整型来说,数据类型后的宽度并不是存储限制,而是限时限制,所以在创建表的时候,如果字段采用的是int类型,完全可以不指定限时宽度,默认的限时宽度,足够显示完整当初存放的数据

        模糊匹配:

            like

                %:匹配任意多个字符

                _:匹配任意一个字符

            set session 临时有效  只在你当前操作的窗口有效

            set global全局有效  终生有效

            设置完成之后,你需要重新退出再次登陆就OK了

            

    浮点型      

        float(255,30) 总共255位 小数部分占30位
        double(255,30) 总共255位 小数部分占30位
        decimal(65,30) 总共65位 小数部分占30位

        create table t12(id FLOAT(255,30));
        create table t13(id DOUBLE(255,30));
        create table t14(id DECIMAL(65,30));

        精确度:float < double < decimal

    字符类型

        char(4):最大只能存4个字符超出就会直接报错  如果少了  会自动用空格填充

        varchar(4):最大只能存4个字符  超出就会直接报错  如果少了  有几个就存几个

        create table t15(name char(4));
        create table t16(name varchar(4));

        char_length():

            msyq在存储char类型字段的时候  硬盘上确确实实存在的是固定长度的数据,但是在取出来的那一瞬间,mysql就会自动将填充的空格去除(可以通过严格模式,来修改该机制  让其不做自动去处处理)

        char与varchar的区别:

            char取的时候方便直接按固定的长度取就可以

            varchar:取得时候比较繁琐,无法是知道数据到底有多长

            char定长:

                1、浪费空间

                2、存取速度快

            varchar变长:

                1、节省空间

                2、存取速度慢(相对于char比较慢)

                    存的时候  需要献给数据将一个记录长度的报头

                    取的时候   需要先读取报头才能读取真是数据

            

    日期类型

        date:年月日

        datetime:年月日时分秒

        year:年

        time:时分秒

    枚举和集合类型

        枚举:enum限制某个字段能够存储的数据类型

        集合:set限制某个字段能够存储的数据内容

约束条件:

    not null:不能为空

    unique:唯一

        单列唯一:

            限时某一个字段是唯一的

        联合唯一:

            在语句的最后用括号的形式,表示哪几个字段组合的结果是唯一的

            

    default:给某个字段设置默认值(当用户写了就用写的,没有的话就用默认的)

        create table t17(id int,name char(16) default 'william

    primary key:主键

        限制效果跟not null + unique 组合效果一致  非空且唯一

        create table t18(id int primary key);

        primary key也是innodb引擎查询必备的索引,索引可以当成书的目录

        innodb引擎在创建表的时候  必须要有一个主键,当你没有指定主键的时候:

            1、会将非空且唯一的字段自动升级为主键

            2、当你的表中没有任何的约束条件的时候 innodb会采用自己的内部默认的一个主键字段,该主键字段你在查询的时候是无法使用的,查询数据的速度就会变得很慢,就好像是一页一页翻书

        通常每张表都应该有一个id字段,并且应该将id设置为表的主键字段

        联合主键:多个字段联合起来作为表的一个主键, 本质还是一个主键!!!

              ps:innodb引擎中一张表有且只有一个主键

        auto_increment:自动递增

delete from :仅仅是删除数据没  不会重置主键

 truncate:初始化表  会重置主键

MYSQL--存储引擎、数据类型、约束条件、的更多相关文章

  1. MySQL存储引擎、基础数据类型、约束条件

    MySQL存储引擎 存储引擎 # 存储引擎可以堪称是处理数据的不同方式 # 查看存储引擎的方式 show engines; # 需要掌握的四个存储引擎 MyISAM MySQL5.5之前的默认的存储引 ...

  2. MySQL存储引擎的实际应用以及对MySQL数据库中各主要存储引擎的独特特点的描述

    MySQL存储引擎的实际应用以及对MySQL数据库中各主要存储引擎的独特特点的描述: 1.MySQL有多种存储引擎: MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB(Berk ...

  3. MySQL存储引擎总结

    MySQL存储引擎总结 作者:果冻想 字体:[增加 减小] 类型:转载   这篇文章主要介绍了MySQL存储引擎总结,本文讲解了什么是存储引擎.MyISAM.InnoDB.MEMORY.MERGE等内 ...

  4. 数据库 --> MySQL存储引擎介绍

    MySQL存储引擎介绍 MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良.虽然 ...

  5. MySQL存储引擎对比

    MySQL存储引擎对比 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL的存储引擎 大家应该知道MySQL的存储引擎应该是表级别的概念,因为我们无法再创建databas ...

  6. MySQl学习-——Mysql体系结构与Mysql存储引擎

    Mysql体系结构与Mysql存储引擎 Mysql体系结构 mysql体系结构图:

  7. MYSQL存储引擎介绍--应用场景

    MySQL存储引擎通常有哪3种?各自分别有什么特点?应用场景是哪些? MySQL5.5以后默认使用InnoDB存储引擎,其中InnoDB和BDB提供事务安全表,其它存储引擎都是非事务安全表.若要修改默 ...

  8. Mysql存储引擎的选择

    Mysql存储引擎概述 mysql的存储引擎是插件式的,用户可以根据需求选择如何存储和索引数据是否使用事务等. Mysql支持多种存储引擎,用户可以选择不同的引擎来提高应用的效率,灵活的存储方案,存储 ...

  9. MYSQL初级学习笔记二:数据表相关操作及MySQL存储引擎!(视频序号:初级_5,7-22|6)

    知识点三:数据表相关操作(5,7-22) --------------------------------整型--------------------------------- --测试整型 CREA ...

  10. mysql 存储引擎学习

    现在我们常用的MySQL存储引擎主要是两种:InnoDB and MyISAM. 1.MyISAM 执行效率高 不支持事务 不支持外键 每个MyISAM在磁盘上存储成3个文件,其中文件名和表名都相同, ...

随机推荐

  1. 和朱晔一起复习Java并发(二):队列

    和朱晔一起复习Java并发(二):队列 老样子,我们还是从一些例子开始慢慢熟悉各种并发队列.以看小说看故事的心态来学习不会显得那么枯燥而且更容易记忆深刻. 阻塞队列的等待? 阻塞队列最适合做的事情就是 ...

  2. Django工程的分层结构

    前言 传统上我们都知道在Django中的MTV模式,具体内容含义我们再来回顾一下: M:是Model的简称,它的目标就是通过定义模型来处理和数据库进行交互,有了这一层或者这种类型的对象,我们就可以通过 ...

  3. bulk更新mongodb的脚本

    bulk批处理mongodb,比普通的js脚本来的更快一些. 官方网址:https://docs.mongodb.com/manual/reference/method/Bulk/ bulk支持的方法 ...

  4. SpringBoot开发案例Nacos配置管理中心

    前言 在开发过程中,通常我们会配置一些参数来实现某些功能,比如是否开启某项服务,告警邮件配置等等.一般会通过硬编码.配置文件或者数据库的形式实现. 那么问题来了,如何更加优雅的实现?欢迎来到 Naco ...

  5. 五分钟部署一套完整的Zabbix

    Zabbix-安装与使用 安装NTP yum install -y ntp 配置ntp.conf cd /etc/ vim ntp.conf # 打开之后讲一下内容添加 server cn.ntp.o ...

  6. Excel催化剂开源第41波-网抓网络采集类库及工具分享

    在VBA开发网抓程序中,会用到xmlhttp/winHttp.winHttprequest.5.1等组件,当时笔者也是这样进入了网抓领域的,这些都是非常过时的东西,在.Net的开发中,有大量的更好用的 ...

  7. 【HDOJ】2104 hide handkerchief

    Problem Description The Children’s Day has passed for some days .Has you remembered something happen ...

  8. 【css系列】六种实现元素水平居中方法

    一.前言 居中效果在CSS中很是普通的效果,平时大家所看到的居中效果主要分为三大类:水平居中.垂直居中和水平垂直居中.而其中水平居中相对于后两者来说要简单得多.使用了css3的flexbox的属性轻松 ...

  9. Flutter初体验--环境搭建

    Fluter最近火了起来,它的有点很多,今天我做一篇在Windows下安装Flutter的教程. 一.下载    无论你要安装什么软件,都要先下载下来.我用的是SourceTree,地址: https ...

  10. CentOS7 升级 Python2.x 到 Python3.x

    CentOS 7 中默认安装了 Python,版本比较低(2.7.5),为了使用新版 3.x,需要对旧版本进行升级.由于很多基本的命令.软件包都依赖旧版本,比如:yum.所以,在更新 Python 时 ...