mysql约束以及数据库的修改

时间:2022-08-27 14:41:50

一、约束

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

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

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

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

3、约束类型有:

  (1)NOT NULL(非空约束)

  (2)PRIMARY KEY(主键约束)

  (3)UNiQUE KEY(唯一约束)

  (4)DEFAULT(默认约束)

  (5)FOREIGN KEY(外键约束)

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

4、要求

mysql约束以及数据库的修改

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

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

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

(3)建立provinces表和users表

mysql约束以及数据库的修改mysql约束以及数据库的修改

mysql约束以及数据库的修改mysql约束以及数据库的修改

(4)查看INDEXES

mysql约束以及数据库的修改mysql约束以及数据库的修改

5、外键约束参照操作

mysql约束以及数据库的修改

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

mysql约束以及数据库的修改mysql约束以及数据库的修改

(2)加入元素

mysql约束以及数据库的修改mysql约束以及数据库的修改

(3)删除父表一个元素

mysql约束以及数据库的修改

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

6、表级约束,列级约束

mysql约束以及数据库的修改

二、修改数据表

一 、添加列

mysql约束以及数据库的修改mysql约束以及数据库的修改

mysql约束以及数据库的修改

mysql约束以及数据库的修改

二、添加约束

mysql约束以及数据库的修改(示例)

  1、添加主键约束

mysql约束以及数据库的修改

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

  2、添加唯一约束

mysql约束以及数据库的修改

mysql> ALTER TABLE users2 ADD UNIQUE (username);

3、添加外键约束

mysql约束以及数据库的修改

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

4、添加/删除默认约束

mysql约束以及数据库的修改

  添加默认: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约束以及数据库的修改

mysql> ALTER TABLE users2 DROP PRIMARY KEY;

  2、删除唯一约束

mysql约束以及数据库的修改

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约束以及数据库的修改

  mysql> ALTER TABLE users2 DROP INDEX username ;

  (删除约束而不是字段)

  3、删除外键约束

mysql约束以及数据库的修改

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

 mysql约束以及数据库的修改

users2_ibfk_1为外键名字

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

此时外键已被删除

mysql约束以及数据库的修改

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

ALTER TABLE users2 DROP  INDEX pid;

四、修改列定义

mysql约束以及数据库的修改

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

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

mysql约束以及数据库的修改

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

mysql约束以及数据库的修改

  方法一:mysql>  ALTER users2 RENAME users3;

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

总结:

mysql约束以及数据库的修改

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. HTML5 绘制简单圆形 loading. . . .

    现在有很多的 loading 组件 什么js 等等 闲来没事就写一个 H5的 loading  有很多的Loading 是一张张图片 js 控制的  有了 canvas的 出现 你就可以体验不同之处了 ...

  2. [转]MySQL关键性能监控(QPS/TPS)

    原文链接:http://www.cnblogs.com/chenty/p/5191777.html 工作中尝尝会遇到各种数据库性能调优,除了查看某条SQL执行时间长短外,还需要对系统的整体处理能力有更 ...

  3. ubuntu下安装Node.js(源码安装)

    最近使用hexo的过程中出现了问题,中间载nodejs安装的时候也耽误了些许时间,所以在此记录一下安装的过程. 环境:ubuntu14.0.4LTS,安装nodejs版本node-v0.10.36.t ...

  4. 1187: [HNOI2007]神奇游乐园 - BZOJ

    Description 经历了一段艰辛的旅程后,主人公小P乘坐飞艇返回.在返回的途中,小P发现在漫无边际的沙漠中,有一块狭长的绿地特别显眼.往下仔细一看,才发现这是一个游乐场,专为旅途中疲惫的人设计. ...

  5. Android Studio教程01-的工程和目录结构解析

    目录 1.主目录 1.1. app目录 1.2.项目资源文件夹res 2. 理解build.gradle文件 2.1. 外部build.gradle 2.2. app文件下的build.gradle ...

  6. ELASTIC API

    运维常用API. curl -XGET 'localhost:9200/_cat/indices?v&pretty' #查看索引 curl -XGET 'localhost:9200/_cat ...

  7. mysql中建立索引的一些原则

    1.先存数据,再建索引 有索引的好处是搜索比较快但是在有索引的前提下进行插入.更新操作会很慢 2.不要对规模小的数据表建立索引,数据量超过300的表应该有索引:对于规模小的数据表建立索引 不仅不会提高 ...

  8. python学习 day15打卡 初识面向对象

    本节主要内容: 1.面向对象和面向过程 2.面向对象如何编写 3.面向对象和面向过程的对比 4.面向对象的三大特征 一.面向对象和面向过程(重点理解) 1.面向过程:一切以事物的流程为核心.核心是&q ...

  9. Python 向列表中添加元素

    向列表中添加元素 1.append tabulation1.append('紫霞') ['大圣', '天蓬', '卷帘', '紫霞', '紫霞', '青霞'] 2.insert tabulation1 ...

  10. Chrome插件 postman的使用方法详解!最全面的教程

    一 简介 Postman 是一款功能超级强大的用于发送 HTTP 请求的 Chrome插件 .做web页面开发和测试的人员应该是无人不晓无人不用!其主要特点 特点: 创建 + 测试:创建和发送任何的H ...