- 浏览: 981423 次
文章分类
- 全部博客 (428)
- Hadoop (2)
- HBase (1)
- ELK (1)
- ActiveMQ (13)
- Kafka (5)
- Redis (14)
- Dubbo (1)
- Memcached (5)
- Netty (56)
- Mina (34)
- NIO (51)
- JUC (53)
- Spring (13)
- Mybatis (17)
- MySQL (21)
- JDBC (12)
- C3P0 (5)
- Tomcat (13)
- SLF4J-log4j (9)
- P6Spy (4)
- Quartz (12)
- Zabbix (7)
- JAVA (9)
- Linux (15)
- HTML (9)
- Lucene (0)
- JS (2)
- WebService (1)
- Maven (4)
- Oracle&MSSQL (14)
- iText (11)
- Development Tools (8)
- UTILS (4)
- LIFE (8)
最新评论
-
Donald_Draper:
Donald_Draper 写道刘落落cici 写道能给我发一 ...
DatagramChannelImpl 解析三(多播) -
Donald_Draper:
刘落落cici 写道能给我发一份这个类的源码吗Datagram ...
DatagramChannelImpl 解析三(多播) -
lyfyouyun:
请问楼主,执行消息发送的时候,报错:Transport sch ...
ActiveMQ连接工厂、连接详解 -
ezlhq:
关于 PollArrayWrapper 状态含义猜测:参考 S ...
WindowsSelectorImpl解析一(FdMap,PollArrayWrapper) -
flyfeifei66:
打算使用xmemcache作为memcache的客户端,由于x ...
Memcached分布式客户端(Xmemcached)
MySQL中对三种约束的支持:http://leekai.me/mysql-zhong-dui-san-zhong-yue-shu-de-zhi-chi/
MySQL的InnoDB默认支持5中约束,
– primary key
– unique key
– foreign key
– default
– not null
今天我们来操作一下唯一约束创建与删除,首先创建表:
查看表描述:
添加唯一约束:
查看表创建语句:唯一约束已添加
删除唯一约束:注意删除约束的方式,是drop INDEX,而不是drop INDEX;
添加联合唯一约束:
MySQL的InnoDB默认支持5中约束,
– primary key
– unique key
– foreign key
– default
– not null
今天我们来操作一下唯一约束创建与删除,首先创建表:
CREATE TABLE `user1` ( `name` varchar(20) NOT NULL, `email` varchar(100) default NULL, `phone` varchar(11) default NULL, PRIMARY KEY (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
查看表描述:
mysql> use test; Database changed mysql> desc user1; +-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | name | varchar(20) | NO | PRI | | | | email | varchar(100) | YES | | NULL | | | phone | varchar(11) | YES | | NULL | | +-------+--------------+------+-----+---------+-------+ 3 rows in set
添加唯一约束:
mysql> alter table user1 add constraint emailUnique UNIQUE(email); Query OK, 0 rows affected Records: 0 Duplicates: 0 Warnings: 0 mysql> desc user1; +-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | name | varchar(20) | NO | PRI | | | | email | varchar(100) | YES | UNI | NULL | | | phone | varchar(11) | YES | | NULL | | +-------+--------------+------+-----+---------+-------+ 3 rows in set
查看表创建语句:唯一约束已添加
mysql> show create table user1; +-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | user1 | CREATE TABLE `user1` ( `name` varchar(20) NOT NULL, `email` varchar(100) default NULL, `phone` varchar(11) default NULL, PRIMARY KEY (`name`), UNIQUE KEY `emailUnique` (`email`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 | +-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set mysql> show index from user1; +-------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | +-------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+ | user1 | 0 | PRIMARY | 1 | name | A | 0 | NULL | NULL | | BTREE | | | user1 | 0 | emailUnique | 1 | email | A | 0 | NULL | NULL | YES | BTREE | | +-------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+ 2 rows in set
删除唯一约束:注意删除约束的方式,是drop INDEX,而不是drop INDEX;
mysql> alter table user1 drop INDEX emailUnique; Query OK, 0 rows affected Records: 0 Duplicates: 0 Warnings: 0 mysql> show index from user1; +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+ | user1 | 0 | PRIMARY | 1 | name | A | 0 | NULL | NULL | | BTREE | | +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+ 1 row in set mysql> show create table user1; +-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | user1 | CREATE TABLE `user1` ( `name` varchar(20) NOT NULL, `email` varchar(100) default NULL, `phone` varchar(11) default NULL, PRIMARY KEY (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 | +-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set mysql> desc user1; +-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | name | varchar(20) | NO | PRI | | | | email | varchar(100) | YES | | NULL | | | phone | varchar(11) | YES | | NULL | | +-------+--------------+------+-----+---------+-------+ 3 rows in set mysql>
添加联合唯一约束:
mysql> alter table user1 add constraint email_Phone_Unique UNIQUE(email,phone); Query OK, 0 rows affected Records: 0 Duplicates: 0 Warnings: 0 mysql> desc user1; +-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | name | varchar(20) | NO | PRI | | | | email | varchar(100) | YES | MUL | NULL | | | phone | varchar(11) | YES | | NULL | | +-------+--------------+------+-----+---------+-------+ 3 rows in set mysql> show create table user1; +-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | user1 | CREATE TABLE `user1` ( `name` varchar(20) NOT NULL, `email` varchar(100) default NULL, `phone` varchar(11) default NULL, PRIMARY KEY (`name`), UNIQUE KEY `email_Phone_Unique` (`email`,`phone`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 | +-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set mysql> show index from user1; +-------+------------+--------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | +-------+------------+--------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+ | user1 | 0 | PRIMARY | 1 | name | A | 0 | NULL | NULL | | BTREE | | | user1 | 0 | email_Phone_Unique | 1 | email | A | 0 | NULL | NULL | YES | BTREE | | | user1 | 0 | email_Phone_Unique | 2 | phone | A | 0 | NULL | NULL | YES | BTREE | | +-------+------------+--------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+ 3 rows in set mysql>
发表评论
-
Deadlock found when trying to get lock; try restarting transaction解决方式
2017-07-18 23:00 2062MySQL 事务的学习整理:http://blog.csdn. ... -
MySQL慢日志
2017-05-18 16:05 1034The Slow Query Log:https://dev. ... -
The table is full问题解决过程
2017-05-06 15:29 7604The table‘xxxx’is full 设置临时表大小 ... -
百万级数据-程序迁移后续
2017-04-13 18:09 1635百万级数据-程序迁移:http://donald-draper ... -
Msyql日期字符串转换
2017-04-01 14:13 542Date和String的互相转换:http://www.tui ... -
Mysql FEDERATED引擎
2016-11-29 15:51 605使用mysql federated引擎构建MySQL分布式数据 ... -
MySQL触发器
2016-11-24 19:04 718CHANGE MASTER:http://dev.mysql. ... -
Mysql主从配置
2016-11-11 18:31 5291、主从服务器分别作以下操作: 1)版本一致 2)初始 ... -
百万级数据-程序迁移
2016-09-29 19:03 2633JVM学习笔记:http://blog.csdn.net/cu ... -
Mysql 备份工具XtraBackup增量备份
2016-08-05 18:11 723安装:http://donald-draper.iteye.c ... -
Mysql 备份工具XtraBackup全量备份
2016-08-05 16:41 565Percona安装:http://donald-draper. ... -
Mysql 备份工具XtraBackup 安装
2016-08-05 16:28 943开源热备工具XtraBackup下载:https://www. ... -
sysbench基准测试
2016-08-01 17:45 786下载sysbench:http://dev.mysql.com ... -
mysql 事务处理
2016-07-29 16:07 511创建表: CREATE TABLE `role` ( ` ... -
mysql 全文索引
2016-07-28 11:03 614mysql大表查询的时候,'String%'模糊查询可以使用B ... -
MySQL 物理文件的迁移
2016-07-26 15:39 2343参考资料:http://www.cnblogs.com/adv ... -
centos7 安装mysql
2016-07-26 11:36 747下载MYSQL-RPM包:http://downloads.m ... -
mysql 大表添加索引注意事项
2016-07-25 16:01 2642LINXU top命令: http://www.c ... -
mysql 大表分页查询测试分析优化
2016-07-25 11:30 1502索引概念: http://blog.csdn.net/xlur ... -
MySQL事务
2016-06-01 10:49 615事务基础知识:http://my.oschina.net/je ...
相关推荐
MySQL 字段约束是指在 MySQL 中对字段的定义时添加的约束或修饰符,它们可以用来增加对输入数据的约束。今天我们来看一下 MySQL 的字段约束:NULL 和 NOT NULL 修饰符、DEFAULT 修饰符、AUTO_INCREMENT 修饰符。 ...
再根据新的需求重新添加约束。 4. **删除外键约束** 删除外键约束直接使用`ALTER TABLE`命令即可。例如,要从`vip`表中删除`user_id`的外键约束: ```sql ALTER TABLE vip DROP FOREIGN KEY FK1C81D1738DA76; ...
在数据库设计中,数据完整性是至关重要的,而MySQL的约束机制正是为了确保数据完整性和一致性而设立的。本文将深入探讨其中的一种约束类型——外键约束(Foreign Key Constraint),它是关系数据库模型中的核心概念...
接下来,我们来看MySQL添加字段的语法: ```sql ALTER TABLE <表名> ADD <新字段名><数据类型>[约束条件]; ``` 这个命令的解释如下: - `<表名>`:指定你想要修改的表的名称。 - `<新字段名>`:即将添加的新字段...
MySQL 非空约束(NOT NULL)是指字段的值不能为空,这种约束可以在创建表时或修改表时添加。非空约束的作用是确保字段的值不能为空,否则数据库系统就会报错。 创建表时设置非空约束 在创建表时,可以使用 NOT ...
MySQL 外键的添加与删除参考 MySQL 外键是关系数据库管理系统中的一种约束机制,它能够确保数据的一致性和完整性。外键是指在一个表中字段的值必须存在于另一个表中的字段值中。MySQL 中的外键只能在 InnoDB 存储...
- 在MySQL中,添加外键约束使用`ALTER TABLE`语句,可以指定`ON DELETE`和`ON UPDATE`行为,以控制当父表记录更改或删除时子表的响应。 总的来说,理解并熟练掌握MySQL的表约束和表关系对于设计高效、稳定且符合...
本文将详细介绍如何在MySQL命令行环境下添加用户、管理权限以及删除用户。 1. **创建用户** 使用`CREATE USER`语句来创建新的用户。基本格式如下: ``` CREATE USER 'username'@'host' IDENTIFIED BY 'password'...
在MySQL数据库管理中,删除表是一项需要谨慎操作的任务,尤其是当表之间存在外键约束时。外键约束是关系数据库中确保数据完整性和一致性的重要机制,它不允许在父表(引用其他表的字段的表)中删除那些已被子表引用...
表的约束,主键 候选键 非空约束 默认值,创建主键(表级方式和列级方式 单列主键,复合主键)修改主键 删除主键;创建候选键 修改候选键 删除候选键;创建非空约束 删除非空约束;添加默认值 修改默认值;
### MySQL约束课堂笔记知识点 #### DQL:查询语句 **1. 排序查询** - **语法**:`ORDER BY`子句用于对结果集按照一个或多个列的值进行排序。 - 示例语法:`ORDER BY column1 ASC|DESC, column2 ASC|DESC` - `...
除了创建外键约束之外,MySQL还提供了多种管理外键约束的方法,包括添加、删除和修改外键约束等操作。 1. **添加外键约束**:如果在创建表时未定义外键约束,可以通过`ALTER TABLE`语句添加外键约束。 ```sql ...
例如,创建表时可以添加约束: ```sql CREATE TABLE Students ( ID INT PRIMARY KEY, Name VARCHAR(50) NOT NULL, Age INT CHECK (Age BETWEEN 0 AND 150) ); ``` 或者在已有表上添加约束: ```sql ALTER ...
- **示例**:添加约束:`ALTER TABLE students ADD CONSTRAINT chk_age CHECK (age BETWEEN 18 AND 25);` 10. **约束在复杂查询中的应用**: - **定义**:展示如何在复杂的SQL查询中利用约束。 - **作用**:提高...
根据提供的文件信息,本文将详细解析 MySQL 中常用的几种表约束,并通过具体的 SQL 语句示例来阐述每种约束的应用场景及其重要性。 ### 一、主键约束(PRIMARY KEY) 主键约束用于唯一标识表中的每一行记录,确保...
首先,我们来看一下MySQL添加字段的基本语法: ```sql ALTER TABLE <表名> ADD <新字段名><数据类型>[约束条件]; ``` 1. **<表名>**:这是你要修改的已有数据表的名称。确保表名符合MySQL的命名规则,通常是小写...
MySQL 处理添加外键时提示 Error 150 问题的解决方法 MySQL 中添加外键时,可能会遇到 Error 150 的问题,这个问题是 MySQL 本身的 bug,已经被报告到 MySQL 开发者列表中很多年了。然而,导致这个错误的原因却并...
MySQL-如果你在添加外键时忘加约束名,如何找到系统默认的约束名
本资源提供了 MySQL 数据库实训答案,涵盖了数据库定义、表操作、约束应用等多方面的知识点。 数据库定义和操作 在 MySQL 中,创建数据库使用 `CREATE DATABASE` 语句,例如 `CREATE DATABASE MyDb;`。创建表使用 ...