mysql数据库修改约束_mysql约束以及数据库的修改
一、约束
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数据库修改约束_mysql约束以及数据库的修改相关推荐
- mysql添加自团_Mysql入门基础 数据库创建篇
1.创建数据表---基础(高手跳过) 正统方法:create [TEMPORARY] table 表名 [if not exists] (创建的列项定义) [表的选项] [分区的选项];#正统的创建方 ...
- mysql添加构成组合约束_mysql约束汇总
先从博客:http://blog.csdn.net/kqygww/article/details/8882990#comments中拷贝一些,然后会根据自己不断的实践与学习,补充新的知识和心得体会上来 ...
- mysql constraint报错_MySQL——约束(constraint)详细解释
约束是什么用来干嘛? 约束实际上就是表中数据的限制条件 作用:表在设计的时候加入约束的目的就是为了保证表中的记录完整和有效 比如一些字段的唯一性,将一些字段约束成外键 约束种类: 非空约束(not n ...
- mysql 定期清理表数据_mysql 定期清理表数据库
zabbix数据库备份整理 zabbix数据库备份整理 zabbix数据库备份整理 zabbix的所有操作都是存在数据库里,在数据库里都会有对应的表,所以对zabbix备份,只需备份数据库就行了. 采 ...
- mysql数据库导入方法_MySQL导入导出数据库方法介绍
我们都知道不管是在于windows系统还是在linux环境中MySQL数据库的导入分为有两种1) 先导出数据库SQL脚本,再导入:2) 直接拷贝数据库目录和文件. 操作方法 1,进入MySQL目录下的 ...
- 如何查看mysql数据库链接情况_MySQL如何查看数据库连接数和状态
1.查看MySQL连接数 登录到MySQL命令行,使用如下命令可以查看当前处于连接未关闭状态的进程列表: [plain] view plain copy 1. show full processlis ...
- linux mysql清除数据库所有表_MySQL修复指定数据库下的所有表
mysql,mariadb,percona 这几天数据库频繁crash,查看日志发现类似如下的错误: [ERROR] mysqld: Table './database/pre_forum_forum ...
- mysql给数据库重命令_mysql 重命令数据库
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- mysql导出d盘_mysql 导出导入数据库
一.导出数据库 1.进入MySQL目录下的bin文件夹 运行cmd :在窗口输入命令 d: 进入d盘:输入 cd Program Files\MySQL\MySQL Server 5.7\bin 命令 ...
- mysql 更新表格数据_mysql更新表格数据库数据
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
最新文章
- 深度学习图像分割:网络结构设计一览
- 【ijkplayer】编译 Android 版本的 ijkplayer ⑥ ( 进入 ijkplayer-android/android 目录 | 执行 compile-ijk.sh 脚本完成编译 )
- sdut 1028 Catch That Cow( BFS)
- c++ 字符串数组长度排序_数组 | 后缀数组的求法及应用
- java保留想要的字符,反转Java中的字符,同时保留一些字符 - java
- es 指定排序字段_ES里多字段分组后排序
- PHP的截取substr mb_substr
- Cannot access repo1 (http://repo1.maven.org/maven2) in offline mode and the
- 实例讲解——系统登录
- PHP基础(必须熟练掌握的基础)
- 第四讲 数学公理化方法(上)
- setjmp 与 longjmp
- linux数据软件,Linux数据安全工具:数据镜像软件DRBD的管理与维护
- java frameview_Java FrameLayout.removeView方法代码示例
- remoting 中事件找不到订阅者时引发异常的解决办法
- 从零基础入门Tensorflow2.0 ----四、12. tf_data基础api使用
- 采用文件白名单方式构建主机安全环境
- 成信钟楼定时微博报时的设计与实现
- 《孙子兵法》第一篇《始计》的主要原则
- 360 路由器设置 虚拟服务器,360安全路由器的设置方法