MYSQL 数据库给表加约束条件 (史上最详细教程!)!!

先查看下已经创建好的表,若不会创建请看上期视频!!
为message表:

mysql> show columns from message;// 命令
+-----------+--------------+------+-----+---------+-------+
| Field     | Type         | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| m_id      | int(11)      | YES  |     | NULL    |       |
| m_name    | varchar(60)  | YES  |     | NULL    |       |
| m_sex     | varchar(16)  | YES  |     | NULL    |       |
| m_brith   | date         | YES  |     | NULL    |       |
| m_address | varchar(250) | YES  |     | NULL    |       |
+-----------+--------------+------+-----+---------+-------+

可以看到表中字段没有加约束条件,下来我们来加一下吧!
1.给m_id字段加主键约束primary key条件!

mysql> alter table message add primary key(m_id);//命令
Query OK, 0 rows affected (0.99 sec)//出现这,表示已成功!

下来来看下表的结构吧!

mysql> show columns from message;//命令
+-----------+--------------+------+-----+---------+-------+
| Field     | Type         | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| m_id      | int(11)      | NO   | PRI | NULL    |       |
| m_name    | varchar(60)  | YES  |     | NULL    |       |
| m_sex     | varchar(16)  | YES  |     | NULL    |       |
| m_brith   | date         | YES  |     | NULL    |       |
| m_address | varchar(250) | YES  |     | NULL    |       |
+-----------+--------------+------+-----+---------+-------+

可以看到主键加入成功!
2.给m_id字段加自动编号auto_increment

mysql> alter table message modify m_id int auto_increment;//命令
Query OK, 0 rows affected (1.19 sec)//自动编号加入成功!

同样来看下表的结构吧!

mysql> show columns from message;//命令
+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| m_id      | int(11)      | NO   | PRI | NULL    | auto_increment |
| m_name    | varchar(60)  | YES  |     | NULL    |                |
| m_sex     | varchar(16)  | YES  |     | NULL    |                |
| m_brith   | date         | YES  |     | NULL    |                |
| m_address | varchar(250) | YES  |     | NULL    |                |
+-----------+--------------+------+-----+---------+------------

可以看到自动编号加入成功!
3.给表m_name字段加唯一约束unique

alter table message add unique(m_name);//命令
Query OK, 0 rows affected (0.66 sec)//表示成功!

下来看一下表的结构吧!

mysql> show columns from message;//命令
+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| m_id      | int(11)      | NO   | PRI | NULL    | auto_increment |
| m_name    | varchar(60)  | YES  | UNI | NULL    |                |
| m_sex     | varchar(16)  | YES  |     | NULL    |                |
| m_brith   | date         | YES  |     | NULL    |                |
| m_address | varchar(250) | YES  |     | NULL    |                |
+-----------+--------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

可以看到加入成功!
4.给表m_sex加非空约束not null

mysql> alter table message modify m_sex varchar(16) not null;//命令
Query OK, 0 rows affected (1.01 sec)//成功!

查看下表的结构

mysql> show columns from message;//命令
+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| m_id      | int(11)      | NO   | PRI | NULL    | auto_increment |
| m_name    | varchar(60)  | YES  | UNI | NULL    |                |
| m_sex     | varchar(16)  | NO   |     | NULL    |                |
| m_brith   | date         | YES  |     | NULL    |                |
| m_address | varchar(250) | YES  |     | NULL    |                |
+-----------+--------------+------+-----+---------+----------------+

5.给表m_sex加默认约束default,默认为女吧!!

mysql> alter table message modify m_sex varchar(16) default '女';//命令
Query OK, 0 rows affected (0.47 sec)//成功!

查看下表的结构!

mysql> show columns from message;//命令
+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| m_id      | int(11)      | NO   | PRI | NULL    | auto_increment |
| m_name    | varchar(60)  | YES  | UNI | NULL    |                |
| m_sex     | varchar(16)  | YES  |     ||                |
| m_brith   | date         | YES  |     | NULL    |                |
| m_address | varchar(250) | YES  |     | NULL    |                |
+-----------+--------------+------+-----+---------+----------------+

可以看到加入成功!
6.给表m_id 加检查约束check

mysql> alter table message add constraint m_id check(m_id>10);//命令
Query OK, 0 rows affected (0.62 sec)//成功

查看下表的结构!

mysql> show columns from message;//命令
+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| m_id      | int(11)      | NO   | PRI | NULL    | auto_increment |
| m_name    | varchar(60)  | YES  | UNI | NULL    |                |
| m_sex     | varchar(16)  | YES  |     ||                |
| m_brith   | date         | YES  |     | NULL    |                |
| m_address | varchar(250) | YES  |     | NULL    |                |
+-----------+--------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

咱们下期来说外键约束吧,
关注我持续为你更新!!

  • 24
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论
MySQL数据库教程天花板,MySQL安装到MySQL高级,强硬! MySQL是一个开源的关系型数据库管理系统,具有稳定性、可靠性和灵活性的特点。它能够处理大量数据和高并发请求,广泛应用于各种规模的应用系统中。 MySQL的学习过程可以说是没有天花板的,从入门到精通都需要耐心和实践。在MySQL教程中,我们可以学习到数据库的基本概念、SQL语言的使用、数据表的操作等基础知识。通过逐步深入学习,我们可以掌握更高级的数据库设计和优化技巧,如索引的使用、查询优化、事务处理等。 MySQL的安装也是相对简单的,只需要下载对应版本的安装包,按照提示进行安装即可。安装完成后,我们可以通过MySQL的命令行工具或者图形化界面进行数据库的管理和操作。 随着MySQL的不断发展,它也提供了许多高级功能和扩展。例如,MySQL支持存储过程、触发器和事件调度,这些能够实现一些复杂的业务逻辑和自动化操作。此外,MySQL还支持分布式架构、数据备份和恢复、集群等高级功能,以满足大规模应用系统的需求。 在实际应用中,为了保证MySQL数据库的性能和安全性,我们需要注意数据库的配置和维护。例如,可以通过调整缓冲区的大小、优化查询语句、监控系统性能等手段提高MySQL的性能。同时,我们也需要保证数据库的安全,使用合适的用户权限管理、数据加密和安全备份策略等。 总之,MySQL数据库教程不仅仅局限于基础知识,还可以深入学习和应用各种高级功能和技术。MySQL的安装和配置也是相对简单和灵活的。掌握MySQL数据库的知识和技术,可以提升数据管理和应用开发的能力,从而为实际项目的开发和运维带来便利和效益。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

送你一朵小红花&

你的鼓励就是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值