mysql学习笔记(二)

原创 2015年07月08日 23:24:30

今天学习的内容主要是如何为一张表创建主键(PRIMARY KEY),如何创建唯一约束(UNIQUE KEY),为数据表创建索引的好处,以及如何创建外键约束。

主键相关知识点:一张表只能有一个主键。如下面的表中把id字段定义成主键。

要点:属性AUTO_INCREMENT必须要和主键在一起使用才行,当主键那一列的属性不一定要定义成AUTO_INCREMENT型。

 

唯一约束相关知识点:一张表可以有多个唯一约束。下面为user3表添加几个字段,并把一些字段定义成唯一约束。再把username字段也修改成唯一约束。

首先插入两个字段password 和 salary,并把password定义成唯一约束。

 

我们再通过SHOW CREATE TABLE `user3` 命令来查看当前表的结构

 

发现修改成功。再把username字段修改成唯一约束来证明一张表中允许存在多个唯一约束。

添加唯一约束成功说明了可以存在多个唯一约束。

 

为表中的一列或多列创建索引的好处是能够提高数据表的查询效率。比如user3表中的username字段有N条记录,现在要查找的是记录中最后一条SELECT * FROM `user3` WHERE `username`="李四",没有添加索引,查找时会挨个匹配,时间效率将为O(N),但添加索引后,由于字段username的记录是放在B-树中或哈希树中的,查找时是按已经写好的最优算法来匹配的,时间效率自然会O(n)快出巨多。

外键约束的要求:

1.父表和字表必须使用相同的存储引擎,而且禁止使用临时表。

2.数据表的存储引擎只能为InnoDB。

3.外键列和参照列必须具有相似的数据类型。其中数字的长度或是否有符号位必须相同;而字符的长度则可以不同。

4.外键列和参照列必须创建索引。如果外键列不存在索引的话,MYSQL将自动创建索引。

下面创建一个province1表,是表user11的父表。

将user11表中的pid定义成外键,通过外键约束,pid不用定义字符类型来存储省份的信息,而可以通过外键与表provinces1关联。

创建provinces1表:

再创建user11表:

把pid设置成外键约束,通过参考provinces1表中的id字段来达到关联的目的。

创建外键约束必须符合上面的4个要求才行。

其中存储引擎指的是如何存储数据,如何为存储数据建立索引和如何更新,查询
数据等技术的实现方法。因为在关系数据库中数据的存储是表的形式存储的,
所以存储引擎也可以称为表类型(即存储和操作此表的类型)。

SHOW CREATE TABLE 表名;来查看表的存储引擎

通过ALTER TABLE 表名 ENGINE=引擎类型;来修改表的类型

通过SHOW ENGINES来查看你的数据库所支持的存储引擎类型,以及数据库默认的存储引擎。

可以通过打开my.ini配置文件来修改默认的存储引擎类型。

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

mysql 学习笔记

  • 2015年08月08日 15:40
  • 360KB
  • 下载

MySql学习笔记

  • 2011年12月13日 16:29
  • 46KB
  • 下载

springboot学习笔记(二):基于MySql数据库的JDBC操作

1 , 连接数据库SpringBoot的Web应用中,基于MySql数据库的JDBC操作 JDBC 连接数据库主要配置 1 , 属性配置文件(application.properties)spring...

mysql学习笔记

  • 2012年08月02日 17:20
  • 16KB
  • 下载

MySQL学习笔记3

  • 2017年07月13日 01:02
  • 7.21MB
  • 下载

mysql学习笔记之优化篇(二)之锁

锁问题 mysql锁的分类 1 表锁,开销小,加锁快,不会出现死锁,锁定粒度大 2 行锁,开销大,加锁慢,会出现死锁,锁粒度小 3 页面锁,介于两者之间,会出现死锁myisam 表锁,适合读多的程...

MySQL5.5学习笔记

  • 2015年10月21日 17:33
  • 10KB
  • 下载

MySql DBA学习笔记

  • 2015年09月02日 09:29
  • 2.6MB
  • 下载

MYSQL必知必会学习笔记(二)

MYSQL必知必会四-五章--检索、排序 书中部分代码展示: ##第四第五章 SELECT prod_name FROM products; /*从products表中检索一个叫prod_name的...

Mysql的学习笔记01

  • 2014年04月08日 11:58
  • 216KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mysql学习笔记(二)
举报原因:
原因补充:

(最多只允许输入30个字)