zoukankan      html  css  js  c++  java
  • mysql学习之路_字段类型与属性2

    字段属性:

    主键,唯一键,自增长。

    主键:

    Primary key 主要的键,一张表只能有一个字段能使用对应的键,用来唯一约束该字段里面的数据不能重复,称之为主见。

    一张表最多只有一个主键。

    增加主键:

    Sql操作当中有很多方式给表增加主键,大体上有三种

    方案一:

    创建表的时候,直接加在字段之后跟primary key

    例:name varcahr(20) primary key;

    方案二:

    复合主键

    方案三:

    当表已经创建好之后,再次额外追加主键,通过修改表字段的属性,也可以直接追加

    Alter table 表名 add primary key (字段列表) ;

    前提是:字段名不重复;

    主键约束:

    主键定义的字段中不允许重复;一旦重复数据操作失败(改,增)

    更改主键&删除主键

    Alter table 表名 drop primary

    主键分类:

    在实际创建表的过程中,很少使用真业务数据作为主键字段(业务主键

    大部分使用逻辑性字段(字段没有业务含义)将这种字段称之为逻辑主键

    自动增长:

    自增长:

    定义字段给的是默认值,不给值为null,会自动被系统触发,系统会从以前字段已有的最大值进行+1操作得到行的不同的字段。

    自增长通常与主键搭配

    特点:

    auto_increment

    1,任何一个字段要做自增长必须前提是本身是一个索引(key一栏有值)

    2,自增长字段必须死数字(int 整型)

    3,一张表最多只有一个自增长。

    例:ID int primary key auto_increment comment’自动增长’;

    自增长得使用

       当自增长被给定的值为null 或者默认值的时候会自动增长

    自增长如果对应的字段输入了值,那么自增长失效

    下一次还是能够正确的自增长(最大值+1

    修改自增长:

    自增长如果涉及到字段改变,必须先删除自增长(一张表只能有一个自增长)。

    修改当前自增长已经存在的值,修改只能比当前已有的自增长的最大值大,不能为null

    Alter table 表名 atuo_increment=

    思考?为什么自增长都是从一开始为什么每次都是自增长一呢

    所有系统的实现(如字符集,校对集)都是由系统内部变量控制的,查看自增长对应的变量

    Show variables like ‘auto_increment’;

    可以修改变量实现不同的效果;修改是对整个数据而不是单张表(修改只是会话级)

    Set auto_incretment_increment=---自增值

    删除自增长:

    自增长是字段的属性,通过modify来进行修改(保证字段没有auto_increment

    Alter table 表名 modify 字段类型;

    唯一键:

       一张表往往有很多字段需要具有唯一性,数据不能重复;但是一张表只能有一个主键。唯一键(unque key)就可以解决表中有很多字段需要唯一性约束。

      本质与主键一致,唯一键允许自动为空(空字段不参与唯一性比较)

    增加唯一键(三种)

    方案一:

    在创建表的时候字段后直接跟unque/unque key

    例:name char(10) unque;

    方案二:

    在所有字段之后自动增加unque key(字段列表)---复合唯一键

    Unque key (name);

    方案三:

    在创建表之后增加唯一键

    Alter table 表名 add unque key (字段);

    唯一键约束

    唯一键与主键本质相同,唯一键区别就是唯一键默认允许为空,而且是多个为空

    更新唯一键和删除唯一键:

    先删除后新增(唯一键可以有多个)

    Alter table 表名 drop index 索引名字

    索引:

    几乎所有的索引都建立在字段之上。

    索引:系统根据某种算法将已有的数据(未来可能增加的数据),单独建立一个文件,文件能够实现快速匹配数据并且能够快速地找到对应表中的记录

    意义:

    1,提升查询数据的效率

    2,约束数据的有效性(唯一性等)

    增加索引的前提条件:索引本身会产生索引文件(有时候可能比数据文件还大)会非常耗费磁盘空间

      如果某个字段作为查询条件经常使用你们可以使用索引(一定会想办法增加)

    Mysql中提供了多种索引:

    1、主键索引

    2、唯一索引

    3、全文索引

    4、普通索引

    全文索引:

    针对文章内部关键字进行索引,

    全文索引最大的问题:在于如何确定关键字

    英文很容易:英文单词与单词之间有空格,中文很难,没有空格,而中文可以多种随意组合(分词:spinx

  • 相关阅读:
    Nodejs:fs模块 & rimraf模块
    Nodejs:简单的脚手架(一)
    Nodejs:Glob对象
    Nodejs:Path对象
    后台系统组件:一丶bootstrap table
    关于Fekit的安装与测试
    Web存储-Web Storage
    【python】基础入门
    排除正则
    js正则处理千分位
  • 原文地址:https://www.cnblogs.com/lqh969696/p/9671435.html
Copyright © 2011-2022 走看看