2019-07-10下午

更新唯一键 & 删除唯一键

错误的删除方法:alter table 表名 drop unique key;

alter table 表名 drop index 索引名字;

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

索引的意义:

提升查询数据的效率

约束数据的有效性、唯一性等

MySQL中提供了多种索引

主键索引:primary key

唯一索引:unique key

全文索引:fulltext index

普通索引:index

创建

create [unique] index 索引名 on 表名(字段名(长度));

alter 表名 add [unique] index [索引名] on (字段名(长度));

删除:drop index [索引名] on 表名;

查看:show index from 表名\G

使用alter命令添加数据表的索引

alter table 表名 add primary key (字段列表):添加一个主键,意味着索引值必须是唯一且不为空

alter table 表名 add unique 索引名 (字段列表):创建索引的值必须是唯一的,允许NULL,且NULL可能会出现多次

alter table 表名 add fulltext 索引名 (字段列表):添加全文索引

alter table 表名 add index 索引名 (字段列表):添加普通索引,索引值可出现多次

一对一: 一张表的一条记录一定只能与另外一张表的一条记录进行对应,反之亦然

一对多:一张表中有一条记录可以对应另外一张表中的多条记录,但是反过来,另外一张表的一条记录只能对应第一张表的一条记录

多对多:一张A表中的一条记录,能够对应B表中的多条记录,同时B表中的一条记录也能对应A表中的多条记录

范式:Normal Format,是一种离散数学中的知识,是为了解决一种数据的存储与优化的问题,它的终极目标是为了减少数据的冗余

范式是一种分层结构的规范,分为六层:

1NF、2NF、3NF、……6NF

1NF是最底层,要求最低

6NF是最高层,要求最严格

新增数据

基本语法:insert into 表名 [(字段列表)] values(值列表);

主键冲突(Duplicate key)

当主键存在冲突的时候,可以选择性地进行处理,进行更新和替换

更新操作:insert into 表名 [(字段列表)] values(值列表) on duplicate key update 字段=新值;

替换:replace insert into 表名 [(字段列表)] values(值列表);

表创建的高级操作

从已有表创建新表(复制表结构):create table 表名 like 数据库.表名;

蠕虫复制:先查出数据,然后将查出的数据新增一遍

insert into 表名[(字段列表)] select 字段列表/* from 数据表名;

蠕虫复制的意义

从已有表拷贝数据到新表中

可以迅速地让表中的数据膨胀到一定的数量级,用来测试表的压力以及效率

更新数据

基本语法:update 表名 set 字段=值 [where条件];

高级语法:update 表名 set 字段=值 [where条件] [limit 更新数量];

删除数据

delete from 表名 [where条件] [limit 数量];

truncate 表名; -- 先删除该表,后新增该表

查询数据

基本语法:select 字段列表/* from 表名 [where条件];

完整语法:select [select 选项] 字段列表[字段别名]/* from 数据源 [where条件子句] [group by子句] [having 子句] [order by子句] [limit 子句];

你可能感兴趣的:(2019-07-10下午)