一、约束

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. 为什么你需要少看垃圾博客以及如何在Python里精确地四舍五入

    今天又有一个Python初学者被中文技术博客中的垃圾文章给误导了. 这位初学者的问题是: 在Python中,如何精确地进行浮点数的四舍五入,保留两位小数? 如果你在Google或者百度上搜索,你会发现 ...

  2. HTML5 前端将 dom 元素转化为 Word,EXCEL 或者图片 并实现下载

    < 一 >  word  1,依赖于 jquery.html.word.js 插件 => https://blog-static.cnblogs.com/files/lovling/ ...

  3. mybatis映射文件#与$的使用,及参数传入规则

    mybaits映射文件中使用#与$场景: <select id="getProviders" resultType="com.lazy.bill.pojo.Prov ...

  4. spring配置文件注入到静态变量

    spring配置注入到静态文件代码如下: package com.test.oss; import org.springframework.beans.factory.annotation.Value ...

  5. Java好的的工具类:JsonUtils

    package com.nxhfzx.gdshopping.utils; import java.util.List; import com.fasterxml.jackson.core.JsonPr ...

  6. js:基于原生js的上啦下啦刷新功能

    链接:https://www.jianshu.com/p/a8392115e6f0演示地址:http://wonghan.cn/iscroll-demo/html:<body> <d ...

  7. 把http网站变成https网站

    所需条件: 一个网站域名,必须是注册的合法域名,国内域名最好已经通过备案: 一个空间,可以是虚拟空间或者云主机: 一张SSL证书. 操作步骤: 域名注册.国内的有万网和国外GoDaddy,当然域名注册 ...

  8. splice() 方法通过删除现有元素和/或添加新元素来更改一个数组的内容。

    var myFish = ["angel", "clown", "mandarin", "surgeon"]; //从第 ...

  9. 【博客开篇】服务器配置:Windows2008R2+PHP5.6+SQLServer2008(X64)

    现下流行LAMP,如果选择Windows服务器,那么一般都会选择IIS+Asp.Net+SQL Server(可以简称为WINS),这些配置起来,都是非常方便的. 但也有一些特殊的服务器配置,例如:W ...

  10. 基于WebGL架构的3D可视化平台ThingJS-搭建设备管理系统

    国内高层建筑不断兴建,它的特点是高度高.层数多.体量大.面积可达几万平方米到几十万平方米.这些建筑都是一个个庞然大物,高高的耸立在地面上,这是它的外观,而随之带来的内部的建筑设备也是大量的.为了提高设 ...