一,约束以及修改数据表

约束的作用?1.约束保证数据的完整性、一致性;2.约束分为表级约束、列级约束;3.约束类型包括:NOT NULL(非空约束)、PRIMARY KEY(主键约束)、UNIQUE KEY(唯一约束)、DEFAULT(默认约束)、FOREIGN KEY(外键约束);

列级约束:只针对某一个字段;表级约束:针对两个或两个以上的字段;

1.外键约束的要求解析

外键约束作用:1.保持数据一致性、完整性;2.实现一对一或一对多关系;(这是也把MySQL称之为“关系型”数据库的一个根本性原因)

外键约束的要求:1.;2.;3.

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

子表:具有外键列的表;父表:字表所参照的表;外键列:加过外键关键词的列;参照列:外键列所参照的列;

查看数据表的属性命令:SHOW CREATE TABLE tb_name,从下图中可以看到,数据表provinces的存储引擎为:InnoDB

下图展示子表(users)、父表(provinces)具体的创建过程,其中子表中的pid为外键列,父表中的id为参照列,英文reference的意思为“参照”

查看数据表的索引命令:SHOW INDEXES FROM tb_name,命令结尾加‘\G’,可以将命令执行结果以网格的形式展示,从下图中可以看到,id字段上已经创建了索引,这是因为创建主键的时候会自动创建索引而子表users中存在两个索引,pid字段上存在索引这也证明了‘‘如果外键列不存在索引的话,MySQL将自动创建索引” 

2.外键约束的参照操作

注意:插入记录时,必须先在父表中插入记录,才能在子表中插入记录

删除记录命令:DELETE FROM tb_name WHERE 【字段名】=【字段值】,从上图中可以看出,创建子表users1时在字段“pid”中加入关键字“ON DELETE CASCADE”;从父表中的“id”字段删除'3',子表users1中的“pid”字段值为‘3’的记录自动被删除;

注意:关于外键约束,在实际的开发过程中,很少使用“物理”的外键约束,一般都使用“逻辑”的外键约束,因为“物理”的外键约束只有InnoDB一种存储引擎支持,Mysiam引擎则不支持;反过来说,如果想创建的数据表的存储引擎为Mysiam,是不可能使用外键约束的,所以说在实际的开发过程中,不去定义“物理”的外键约束,所谓的“逻辑”外键指的就是:在定义两张表的结构的时候,按照存在着某种结构的方式去定义,但是不去使用“FOREIGN KEY”。

3.表级约束与列级约束

表级约束:对一个数据列建立的约束;列级约束:对多个数据列建立的约束;在实际开发中,列级约束用的较多。

列级约束既可以在列定义时声明,也可以在列定义后声明;表级约束只能在列定义后声明

注意:主键约束、唯一约束、外键约束可以存在表级约束和列级约束,DEFAULT约束、NOT NULL约束只能存在列级约束。

4.修改数据表--添加/删除列

4.1,添加单列命令: ;其中,如果不使用【FIRST|AFTER col_name】,新添加的列默认在列表中的最下面;使用FIRST,新添加的列默认在列表中的最上面;使用AFTER col_name,添加在某一列之后。

4.2,添加多列命令: 添加的多列只能添加到列表中的最下面

4.3,删除列命令:,也可以一次命令删除多列:ALTER TABLE tbl_name DROP col_name,DROP col_name,在删除列的同时再新增列也是可以的,命令中用','隔开,如:ALTER TABLE tbl_name DROP col_name,ADD col_name col_definition;

5.修改数据表--添加约束

5.1,添加主键约束:

  

5.2,添加唯一约束:

         

 

5.3,添加外键约束:

5.4,添加/删除默认约束: 

 

6.修改数据表--删除约束

6.1,删除主键约束:,因为任何一张数据表只有一个主键,所以不需要指定主键的名称

6.2,删除唯一约束:,index_name:索引名

查看索引名命令:SHOW INDEX FROM tbl_name\G;

6.3,删除外键约束:

查看外键约束名称可用命令:SHOW CREATE TABLE tbl_name;

7.修改数据表--修改列定义和更名数据表

7.1,修改列定义:

7.2,修改列名称:

CHANGE关键字既可以修改列名称,也可以修改列定义,所以CHANGE比MODIFY更常用;

7.3,数据表更名:

注音:尽量少使用数据列、数据表的更名,因为表名或列名曾经被引用的情况下,可能会导致某些视图或存储过程无法工作的情况;

知识点汇总

MySQL数据库基础(二)(约束以及修改数据表)的更多相关文章

  1. MySQL基础(二)(约束以及修改数据表)

    一,约束以及修改数据表 约束的作用?1.约束保证数据的完整性.一致性:2.约束分为表级约束.列级约束:3.约束类型包括:NOT NULL(非空约束).PRIMARY KEY(主键约束).UNIQUE ...

  2. MYSQL中约束及修改数据表

    MYSQL中约束及修改数据表 28:约束约束保证数据的完整性和一致性约束分为表级约束和列级约束约束类型包括:    NOT NULL(非空约束)    PRIMARY KEY(主键约束)    UNI ...

  3. mysql之约束以及修改数据表

    数据约束的分类: ———————————————————————————————————————————————————— 外键约束的要求解析: //在my文件中的这句话代表着搜索引擎,如果不是的就需 ...

  4. MySQL(三) —— 约束以及修改数据表

    约束: 1. 约束保证数据的完整性和一致性: 2. 约束分为表级约束和列级约束: 3. 约束类型包括:NOT NULL, PRIMARY KEY, UNIQUE KEY, DEFAULT, FOREI ...

  5. MySQL约束和修改数据表知识集结

    一.约束 划分标准:功能.数据列的数目 功能: (1)NOT NULL(非空约束) (2)PRIMARY KEY(主键约束) (3)UNIQUE(唯一约束) (4)DEFAULT(默认约束) (5)F ...

  6. MySQL数据库基础(三)(操作数据表中的记录)

    1.插入记录INSERT 命令:,expr:表达式 注意:如果给主键(自动编号的字段)赋值的话,可以赋值'NULL'或'DEFAULT',主键的值仍会遵守默认的规则:如果省略列名的话,所有的字段必须一 ...

  7. MySQL数据库基础(4)SELECT 数据查询

    目录 一.SELECT 选择列表 二.MySQL 运算符 三.定制显示查询结果 四.模糊查询 一.SELECT 选择列表 1.语法 SELECT <COLUMN1, COLUMN2, COLUM ...

  8. MySQL--3约束和修改数据表总结

  9. 数据库之mysql篇(3)—— mysql创建/修改数据表/操作表数据

    创建数据表:create table 数据表名 1.创建表规范 create table 表名( 列名   数据类型    是否为空   自动排序/默认值  主键/外键/唯一键, 列名   数据类型 ...

随机推荐

  1. EL表达式遍历Map集合

    <% Map<String,String> map2 = new HashMap(); map2.put("a","hello world") ...

  2. python 闭包初识

    def func_100(val): passline = 60 if val >= passline: print('pass') else: print('failed') def func ...

  3. 安装python的注意事项

    第一步: 下载安装文件  python-3.5.2.exe 第二步: 点击安装,下一步继续 第三步: 配置环境变量,记住第一次安装时的路径. 第四步: 测试,打开CMD,输入python.若未找到命令 ...

  4. maven多模块搭建

    此时你会发现父模块含有如下内容 这是因为创建的maven项目都带有样例,比如上图的这张图片 各种artifact都是做什么的呢,@参考文章中给出了答案 怎么创建不带这些呢? 那就创建simple pr ...

  5. 常用API

    1 System类 System类包含一些有用的类和字段.它不能被实例化. 属性和方法都是静态的. 1.1 常见方法 返回以毫秒为单位的当前时间 public static long currentT ...

  6. 端口扫描命令nmap

    转:http://www.osyunwei.com/archives/2004.html 下面教大家在CentOS中用nmap查看主机端口: 一.安装nmap yum install nmap -y ...

  7. Effective Java 之-----静态工厂与构造器

    一. 考虑用静态工厂方法代替构造器: 1)静态工厂方法与构造器不同的第一大优势在于:他们有名称.当一个类需要多个带有相同签名的构造器时,就用静态方法代替构造器,并慎重的选择名称以突出他们间的区别: 2 ...

  8. 【linux之简介】

    一.操作系统是什么 1.定义 操作系统,英文名称Operating System,简称OS,是计算机系统中必不可少的基础系统软件,它是应用程序运行以及用户操作必备的基础环境支撑,是计算机系统的核心. ...

  9. Struts2的配置和一个简单的例子

    Struts2的配置和一个简单的例子 笔记仓库:https://github.com/nnngu/LearningNotes 简介 这篇文章主要讲如何在 IntelliJ IDEA 中使用 Strut ...

  10. rtmp推流时间戳兼容问题

    一直用简单的librtmp或者其他开源推流实现方式.没有太关注细节问题.直到最近一次测试长时间推流.遇到了3字节时间戳溢出问题,即时间戳超过0xffffff,服务器断开. 复现方式:用yasea推流到 ...