mysql(二)(表的五种约束、索引的概念以及相关操作、insert、update、delete、truncate)

表的约束(5种)

  • 检查性约束,如:教室中所有人的性别;工作后薪水满足的条件。
  • 非空约束,例如:人的名字,不允许为空。
  • 唯一性约束,例如:电子邮件地址,不可以重复。
  • 主键约束——通过这个列的值可以唯一的确认一行记录,主键约束隐含Not null + Unique
  • 外键约束——一个表想引用另一个表的某一个字段,这种引用关系就是外键

表的约束

约束条件 说明
PRIMARY KEY 主键约束,用于唯一标志对应的记录
FOREIGN KEY 外键约束(用于声明表和表之间的关系)
NOT NULL  非空约束
UNIQUE 唯一约束
DEFAULT 默认值约束,用于设置字段默认值

主键约束

1、单字段主键——在创建表的对应字段后面加上 primary key即可

2、多字段主键——创建表时将主键用PRIMARY KEY括起来即可

非空约束

创建表时,将不允许为空的字段后面加上 not null 关键字即可

唯一约束

创建表时,将字段后面加上 unique 关键字即可

默认约束

创建表时,将字段后面加上 default关键字,然后给一个默认值即可


设置表的字段的自动增加

添加关键字 auto_increment 即可


索引

索引就是把数据库中的某一列或者某几列拿出来进行排序,方便我们快速查找。

索引分类

1、普通索引

由key或index定义的索引,他是mysql中的基本索引类型,可以创建在任何数据类型中,其值是否唯一和非空由字段本身的约束条件决定。

2、唯一索引

unique定义的索引该索引所在字段的值必须是唯一的

3、全文索引

FULLTEXT定义的索引,他只创建在char、varchar或text类型的字段上。而且,现在只有myisam存储引擎支持全文索引。

4、单列索引

在表中单个字段上创建索引,他可以是普通索引、唯一索引或者全文索引,只要保证该索引只对应表中的一个字段即可

5、多列索引

在表中多个字段上创建索引,只有在查询条件中使用了这些字段中的第一个字段时,该索引才会被使用。

创建索引

创建表的时候创建索引

 

1、创建普通索引

验证一波

补充:explain 可以用于显示查询语句的执行情况

上图说明查询时,确实用到了id作为索引进行查询。

2、创建唯一索引

创建唯一索引的方法是在创建普通索引的基础上,前面加上关键字unique,给所以起一个别名,这里起的是unique_id,指定按照ASC方式(即升序)进行排列。

3、创建全文索引

FULLTEXT定义的索引,他只创建在char、varchar或text类型的字段上。而且,现在只有myisam存储引擎支持全文索引。

4、创建多列索引

在表中多个字段上创建索引,只有在查询条件中使用了这些字段中的第一个字段时,该索引才会被使用。

5、创建空间索引

在已存在的表上加入索引

1、创建普通索引

2、创建唯一索引

使用alter创建索引

alter table 表名 add index 索引名 (被索引的字段名);

删除索引

方法一——alter

alter table 表名 drop index 索引名;

方法二_drop

drop index 索引名 on 表名;

添加、更新与删除数据

insert

如果某参数设置的是自动增长,在insert的时候,我们可以不用为其赋值。赋值对应位置写null即可。

上面的insert语句可以简化。因为插入的是表中的每个字段,因此字段名可以省略

还可以一次插入多个数据

update

1、修改所有人的薪水为500元

如果不指定,则会修改整张表中被修改字段的值(下图中把所有的998都改成了500)

2、将张飞的薪水修改为5000

3、将关羽的薪水改成3000,将工作改为ccc

4、将刘备的薪水在原有的基础上加100

delete

1、删除张飞的记录

2、删除表中所有记录

3、使用truncate删除表中记录

truncate和delete的区别

  • truncate将表摧毁,然后建立一张和原表一样的空表
  • delete逐条删除表中数据

猜你喜欢

转载自blog.csdn.net/qq_29996285/article/details/88922409