关闭

mysql学习笔记(二)

267人阅读 评论(0) 收藏 举报
分类:

今天学习的内容主要是如何为一张表创建主键(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配置文件来修改默认的存储引擎类型。

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:29192次
    • 积分:711
    • 等级:
    • 排名:千里之外
    • 原创:43篇
    • 转载:7篇
    • 译文:0篇
    • 评论:9条
    最新评论