一、约束

1、约束保证数据完整性和一致性。

2、约束分为表级约束和列级约束。

  (1)表级约束(约束针对于两个或两个以上的字段使用)

  (2)列级约束(针对于一个字段使用)

3、约束类型有:

  (1)NOT NULL(非空约束)

  (2)PRIMARY KEY(主键约束)

  (3)UNiQUE KEY(唯一约束)

  (4)DEFAULT(默认约束)

  (5)FOREIGN KEY(外键约束)

    实现一对一或一对多关系。

4、要求

(1)有参照列为父表,有外键列为子表

(2)加上FOREIGN KEY的列为外键列

【把my.ini文件里的default-storage-engine=innoDB】

(3)建立provinces表和users表

(4)查看INDEXES

5、外键约束参照操作

(1)我们建立一个表结构

(2)加入元素

(3)删除父表一个元素

父表中的3、C删除之后,子表1、Tom、3也删除了

6、表级约束,列级约束

二、修改数据表

一 、添加列

二、添加约束

(示例)

  1、添加主键约束

mysql>ALTER TABLE users2 ADD CONSTRAINT PK_users2_id PRIMARY KEY (id);

  2、添加唯一约束

mysql> ALTER TABLE users2 ADD UNIQUE (username);

3、添加外键约束

mysql>  ALTER TABLE users2 ADD FOREIGN KEY (pid) REFERENCES provinces (id);

4、添加/删除默认约束

  添加默认:mysql> ALTER TABLE users2 ADD age TINYINT UNSIGNED NOT NULL;

  修改默认值:mysql> ALTER TABLE users2 ALTER age SET DEFAULT 15;

  删除默认值:mysql> ALTER TABLE users2 ALTER age DROP DEFAULT;

三、删除约束

  1、删除主键约束

 

mysql> ALTER TABLE users2 DROP PRIMARY KEY;

  2、删除唯一约束

mysql> SHOW INDEXES FROM users2\G;//显示INDEXES
*************************** 1. row ***************************
Table: users2
Non_unique: 0
Key_name: username
Seq_in_index: 1
Column_name: username
。。。。。。
*************************** 2. row ***************************
Table: users2
Non_unique: 1
Key_name: pid
Seq_in_index: 1
Column_name: pid
。。。。。。

  mysql> ALTER TABLE users2 DROP INDEX username ;

  (删除约束而不是字段)

  3、删除外键约束

(1)查看属性mysql> SHOW CREATE TABLE users2;

 

users2_ibfk_1为外键名字

mysql> ALTER TABLE users2 DROP FOREIGN KEY users2_ibfk_1;(利用外键名删除外键)

此时外键已被删除

此时还有索引‘pid’删除它

ALTER TABLE users2 DROP  INDEX pid;

四、修改列定义

mysql> ALTER TABLE users2 MODIFY id SMALLINT NOT NULL FIRST;(将id字段调整到第一的位置)

mysql> ALTER TABLE users2 MODIFY id TINYINT NOT NULL;(可以把SMALLINT强转成TINYINT,会有溢出)

mysql> ALTER TABLE users2 CHANGE pid p_id TINYINT NOT NULL;(将pid改为p_id)

  方法一:mysql>  ALTER users2 RENAME users3;

  方法二: mysql> RENAME users3 TO users1;(可以对多个数据表更名)

总结:

mysql约束以及数据库的修改的更多相关文章

  1. MySQL 约束和数据库设计

    1.MySQL 约束: 1.约束的概念: 约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性.唯一性. MySQL中,常用的几种约束: 约束类型: 非空 主键 唯一 外键 默认值 ...

  2. mysql基础篇 - 数据库及表的修改和删除

    基础篇 - 数据库及表的修改和删除         修改和删除 一.实验简介 本节实验中,我们将学习并实践如何对数据库的内容做修改,删除,重命名等操作. 二.实验准备 在正式开始本实验内容之前,需要先 ...

  3. MySql数据库安装&修改密码&开启远程连接图解

    相关工具下载地址: mysql5.6 链接:http://pan.baidu.com/s/1o8ybn4I密码:aim1 SQLyog-12.0.8 链接:http://pan.baidu.com/s ...

  4. MySQL系列:查看并修改当前数据库的编码

      MySQL中,数据库的编码是一个相当重要的问题,有时候我们需要查看一下当前数据库的编码,甚至需要修改一下数据库编码.   查看当前数据库编码的SQL语句为:   mysql> use xxx ...

  5. mysql数据库的基本操作:创建数据库、查看数据库、修改数据库、删除数据库

    本节相关: 创建数据库 查看数据库 修改数据库 删除数据库 首发时间:2018-02-13 20:47 修改: 2018-04-07:考虑到规范化,将所有语法中“关键字”变成大写;以及因为整理“mys ...

  6. windows安装mysql数据库并修改密码

    1.下载 MySQL Community Server https://dev.mysql.com/downloads/mysql/ 2.解压 如果想要让MySQL安装在指定目录,那么就将解压后的文件 ...

  7. Mysql总结_02_mysql数据库忘记密码时如何修改

    1.从cmd进入mysql的bin下,输入命令  mysqld --skip-grant-tables  回车 注:(输入命令前,确保在任务管理器中已没有mysql的进程在运行,可输入命令:net s ...

  8. MySQL进阶11--DDL数据库定义语言--库创建/修改/删除--表的创建/修改/删除/复制

    /*进阶 11 DDL 数据库定义语言 库和表的管理 一:库的管理:创建/修改/删除 二:表的管理:创建/修改/删除 创建: CREATE DATABASE [IF NOT EXISTS] 库名; 修 ...

  9. mysql数据库常见问题修改(待补充)

    1.修改mysql最大连接数的方法:临时修改:1.使用命令show variables 来查看当前最大连接数 show variables like '%max_connections%'; 使用命令 ...

随机推荐

  1. 分组密码算法AES-128,192,256 C语言实现第一版

    AES的C语言实现入门版 AES分组密码算法中明文分组位128bits,密钥分组可以为128,192,256bits.AES也是由最基本的变换单位——“轮”多次迭代而成的.我们将 AES 中的轮变换计 ...

  2. MySQL(进阶部分)

    视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. SELECT * FROM ( SEL ...

  3. 时效性:NABCD分析结果

    N:失物招领,表白墙,二手跳骚群,里面的信息都没有真正的利用起来,好多有用的信息,全部被覆盖,同时,也有好多信息,使用户不想看到的,时效性,是个重大的问题. 例如:暑假放假,我背着书包拿着行李,等候火 ...

  4. HTML5 动画用 animation transform transition 做的两个例子

    1,左右移动,自我翻转的圆 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...

  5. mount.cifs permission denied

    [root@dev ~]# mount.cifs //192.168.9.155/APP /mnt/APP/ -o user=administrator,pass=dsff#$TTT 在检查帐号密码权 ...

  6. JS写一个简单日历

    JS写一个日历,配合jQuery操作DOM <!DOCTYPE html> <html> <head> <meta charset="UTF-8&q ...

  7. JavaScript值全等判断

    作为开发员,很多时候拿到数据之后都是要做数据判断,比较特别的情况就是我们需要做数组判断和对象判断,经常的我们就array === array ,object === object;但是可惜是我们得到的 ...

  8. 虚拟机安装及ubuntu-16.04.3-desktop-amd64.iso映像文件的安装

    虚拟机安装及ubuntu-16.04.3-desktop-amd64.iso映像文件 搞了大半天才搞清楚装linux的前提是要先安装虚拟机的 先下载虚拟机,在然后创建虚拟机,在虚拟机里面再安装linu ...

  9. MyEclipse2014破解版安装教程

    下载安装包和破解程序脚本 1.下载地址 链接:https://pan.baidu.com/s/1XuMweEz602zcoGqwPb2xTA 提取码:idsx  两个文件:myeclipse-pro- ...

  10. win10x64启动vs2010报错:未能加载C:\Windows\Microsoft.NET\Framework\v2.0.50727\microsoft.vsa.tlb

    换了新电脑,因为是win10x64系统,可能是兼容性的问题吧. 启动vs2010,在启动画面直接报错:未能加载C:\Windows\Microsoft.NET\Framework\v2.0.50727 ...