码迷,mamicode.com
首页 > 数据库 > 详细

数据库

时间:2019-08-22 22:12:27      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:自己的   double   外键   unique   har   字段   http   mys   创建表   

存储引擎

  primary key也是innodb引擎查询必备的索引。

Innodb

  目前5.1之后MySQL版本默认的存储引擎,支持事务,行锁,外键,因此数据更安全

innodb在建表的时候会产生两个文件:一个是表结构文件,一个是存储数据文件

myIsam

  5.1版本之前的MySQL的默认存储引擎,查询速度较于Innodb要快,安全性没innobd高。

  建表的时候会产生三个文件:一个是表结构文件,一个是存储数据文件,一个是索引文件。索引可以理解成是书的目录,能够帮助你更快的查询数据。

memory

  建表的时候都仅仅只有一个表结构文件,数据是存放于内存中,当计算机重启之后,数据会消失。

blackhole

  任何写入的数据都会消失,建表的时候都仅仅只有一个表结构文件

  研究一下每个存储引擎存取数据的特点:show engines;

技术图片

创建表的完整语法

  create table 表名(

    字段名1 字段类型[(宽度) 约束条件],

    字段名2 字段类型[(宽度) 约束条件],

    字段名3 字段类型[(宽度) 约束条件]  );

  注意:

    1).同一张表内字段名不能重复。

    2).字段名和字段类型都是必须的 中括号内的都是可选的。

    3).最后一个字段语句后不能有逗号。

字段类型

整型

  smallint   tinyint   int   bigint

  每种类型都有自己的字节大小,也就决定了有固定的存储长度,见下表:

技术图片

  int(8):数字不够8位,默认用空格填充,够8位或者8位以上,有多少位显示多少位,但是也不能超出int最大范围

  char(8) :最大存储8个字符,超出会报错,不足默认用空格占位,主要用来现在存储数据的长度。(限制显示宽度)

  注意:只有整型比较特殊,括号内的数字不是用来限制存储宽度,而是用来在定义整型字段的时候不需要指定宽度,默认就是展示最大宽度

  zerofill  用0填充不足的位数

浮点型

  float(255,30)      总共255位小数位占30位

  double(255,30)    总共255位小数位占30位

  decimal(65,30)    总共65位小数位占30位

  精确度为:float < double < decimal

字符类型

  char(4) 定长:最大存储四个字符,超出报错,不足默认用空格占位。

    优缺点:

      优:存取速度快;取的时候方便,直接按固定的长度取即可

      缺:浪费硬盘空间

  varchar(4) 变长:最大存储四个字符,超出报错,不足有几个存几个 (django默认只有varchar类型)

    优缺点:

      优:节省硬盘空间  。

      缺:存取速度相对char慢  ;取的时候比较繁琐了 无法知道数据到底多长,

模糊匹配

like

  %匹配任意多个字符;_匹配任意一个字符

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

    set global 全局有效 终生有效

    set global sql_mode = ‘STRICT_TRANS_TABLES‘;设置完之后 你只需要重新退出客户端再次进入即可

枚举与集合类型

  枚举(enum) 限制某个字段能够存储的数据内容

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

约束条件

  not null 不能为空

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

    例:create table t17(id int,name char(16) default ‘jason‘);

  往表中插入数据的时,可以指定字段进行插入,不需要全部都插

    例:insert into t17(name,id) values(‘egon‘,2);

  unique 唯一

primary key 主键

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

  当你没有指定主键的时候

    1.会将非空切唯一的字段自动升级成主键

    2.当你的表中没有任何的约束条件,innodb会采用自己的内部默认的一个主键字段

      该主键字段你在查询时候是无法使用的,查询数据的速度就会很慢,类似于一页一页的翻书。

    3.主键字段应该具备自动递增的特点

      每次添加数据 不需要用户手动输入;auto_increment 自动递增

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

      truncate  初始化表 会重置主键

 

数据库

标签:自己的   double   外键   unique   har   字段   http   mys   创建表   

原文地址:https://www.cnblogs.com/blue-tea/p/11379476.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!