Day2-索引

约束条件:限制如何给赋值,创建表时若不设置,就使用mysql建表的是否允许为空(NULL)在不设置时默认允许字段值为空(no    null)

默认值    当向表中插入新的记录时,若不给字段赋值,就使用默认值给字段赋值,建表时,没有设置的默认值,mysql把字段的默认值设置为空

修改表结构    受表中已存储数据的限制

Alter    table    表名    修改动作;

Add    添加新字段    新添加的字段默认追加在已有字段的下方

Add    字段名(宽度)    约束条件,add        字段名(宽度)    约束条件

默认不指定添加字段在最后追加可以使用        afrer    指定字段名

                            添加字段首位时可以用    first

Drop    删除已有字段——删除时字段没了,值也会没有

Drop    字段名

Modify    修改已有字段类型

Modiy    字段名    新类型(宽度)    约束条件;

Change    修改字段名

Change    源字段名    新字段名    类型(宽度)    约束条件

修改表名

Alter    table    源表名    rename        [to]    新表名;    to可省略

复制表    ——源表,表结构中的key列的值,不会被复制给新表

Create table    新表名    SQL查询;

只复制源表的表结构

Create table    新表名    SQL查询    where    条件;

Key    键值

索引——相当于书的目录

索引的优 和缺点

加快查询速度

占有磁盘空间——删除或更新一条,需重新排序

查看指定表的索引信息    Show index from 表名;

Index_type:BTREE        索引算法        二叉树

Column_name:User        索引字段

Key_name:PRIMARY        KEY的类型

二叉树        例:将一本书,无限分一半。

index普通索引    *

通常表,表中最为查询条件的字段设置为索引字段

使用规则

字段值可以重复、一个表中可以有多个Index字段、字段的值可以为空

把表中已有字段设置为index字段

标志    MUL

建表时,创建index字段

删除字段的index属性

Create index 索引名 on 表名(字段名)

drop index 索引名 on 表名

unique唯一索引

使用规则    标志是UNI

字段的值不允许重复,字段值可以为空;一个表中可以有多个unique字段

当把字段设置为不允许为空时,约束方式和主键一样

Create unique index 索引名 on 表名(字段)

primary主 键    *

字段值不允许重复且不允许字段值为空,且一个表中只能有一个主键字段。通常和auto_increment属性一起使用

    注:auto_increment设置必须是主键,主键不一样需要设置auto_increment

    让字段的值自动增长,每添加一条新记录时,字段的值就自动加1

标志为PRI

通常把表中能够唯一定位到一条记录的字段设置为主键字段。比如记录的编号字段

创建主键

alter table 表名 add primary key(字段名)

删除主键

alter table 表名 drop primary key

若有auto_increment请先删除该字段的属性,然后在删除主键

Alter table 表名 modify 字段 字段类型    not null

复合主键    表中的多个字段同时做主键字段,必须在建表时创建

        复合主键字段的值不同时重复就可以

创建表时可以有两个主键——需在建表时指定Primary key(字段1,字段2)

foreigen key 外键    *

让当前表中外键字段的值,只能在指定的另一个表中的某个字段值的范围内选择

外键的使用规则

1表的存储引擎必须是innodb

2字段的类型要匹配

3被参考字段必须是KEY中的一种(通常设置为主键)

内容有中文可加编码DEFAULT CHARSET=utf8

>engine=innodb DEFAULT CHARSET=utf8;

FOREIGN KEY(表A的字段名)    References    表B(字段名)    ON    UPDATE    CASCADE    ON    DELETE    CASCADE

同步更新和同步删除。

alter table 表名 drop foreign key 外键名;

外键名查看方式 show create table 表名;

一个子表只能参考一个父表

一个父表可被多个子表参考

fulltext全文索引

原文地址:https://www.cnblogs.com/fina/p/5834006.html