MYSQL中约束及修改数据表
MYSQL中约束及修改数据表
28:约束
约束保证数据的完整性和一致性
约束分为表级约束和列级约束
约束类型包括:
NOT NULL(非空约束)
PRIMARY KEY(主键约束)
UNIQUE KEY(唯一约束)
DEFAULT(默认约束)
FOREIGN KEY(外键约束)
29:查看数据表的存储引擎
SHOW CREATE TABLE 数据表名;
30:删除表中的数据
DELETE FROM 数据表名 WHERE 条件;
31:外键约束的参照操作(外键约束的要求解析)
外键约束保证数据一致性,完整性,实现一对多或者一对一关系
(含有外键的表称为子表)
外键约束的要求
1:父表和子表必须使用相同的存储引擎,而且禁止使用临时表
2:数据表的存储引擎只能为InnoDB
3:外键列和参照列必须具有相似的数据类型,其中数字的长度或是否有符号位必须相同,而字符的长度则可以不同
4:外键列和参照列必须创建索引。如果外键列不存在索引的话,MYSQL将自动创建索引
32:查看是否存在索引
SHOW INDEXES FROM provinces;
以网格的形式显示索引
SHOW INDEXES FROM provinces\G;
33:外键约束的参照操作
CASCADE:从父表删除或者更新且自动删除或者更新子表中匹配的行
《在两表中插入记录,必须先在父表中插入记录》
SET NULL:从父表删除或者更新行,并且设置子表中的外键列为NULL,如果使用该选项,必须保证子表列没有指定NOT NULL
RESTRICT:拒绝对父表的删除或者更新操作
NO ACTION:标准sql的关键字,在my sql中与RESTRICT相同
删除表中的数据
DELETE FROM 数据表名 WHERE 条件;
34:表级约束和列级约束
对一个数据列建立的约束,称为列级约束《实际开发中多用》
对多个数据列建立的约束,称为表级约束
列级约束既可以在列定义时声明,也可以在列定义后声明,
表级约束只能在列定义后声明。
35:修改数据表(修改,删除)
添加单列
ALTER TABLE 数据表名 ADD 列名称 列定义 [FIRST] 指定列
添加单列(不可以指定位置)
...
删除列
ALTER TABLE 数据表名 DROP 列名;
添加主键约束(只可以有一个)
添加唯一约束(可以添加多个)
添加外键约束
添加或者删除默认约束
删除主键约束
删除唯一约束
查看约束的名字
SHOW INDEXES FROM 数据表的名字;
删除外键约束
查看外键名称
SHOW CREATE TABLE 数据表名;
删除索引
修改列定义
修改列名称
修改数据表的名字
相关文章
- MySQL数据库的事务管理
- mysql与java数据类型对照
- MySQL将一张表的某些列数据,复制到另外一张表,并且修改某些内容
- MySql增加字段、删除字段、修改字段名称、修改字段类型
- MySql修改表结构
- MySQL给一个字段递增赋值
- Ubuntu修改MySQL默认数据库目录
- MySQL内核月报 2015.02-MySQL · 捉虫动态· 变量修改导致binlog错误
- MySQL group_concat()详解
- MySQL FORMAT函数示例
- mysql常用基础操作语法(二)~~对表的增删改操作【命令行模式】
- 【已解决】MySQL - 存储过程SQL中的错误1064 BEGIN DECLARE VAL bigint 1064 -
- 〖Python 数据库开发实战 - MySQL篇㉟〗- 综合案例 - 数据库ER图设计、新闻类型表与用户角色表的创建
- MySQL用户及数据安全专题
- mysql5.7 mysql库下面的user表没有password字段无法修改密码
- mysql主从复制-方案1
- 关于MySQL日志,我与阿里P9都聊了些啥?
- mysql修改编码
- MySQL 查询数据库和表在使用的引擎和编码并修改使用引擎和编码
- Mysql之修改mysql的视图定义者
- MySQL修改密码的3种方式
- mysql修改权限
- MySQL修改存储过程(ALTER PROCEDURE)
- Mycat启动正常但无法连接ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql
- mysql root 修改密码 远程登陆