java入门之数据库-约束

本文介绍了数据库约束的概念,旨在确保数据的完整性。详细讲解了非空约束、默认约束、唯一约束、主键约束、自增约束、检查约束以及外键约束,并提供了各约束的使用示例和注意事项。特别指出,MySQL中不支持检查约束,通常通过枚举解决特定问题。外键约束是建立表间关联的关键,创建时需遵循先主表后从表的顺序。
摘要由CSDN通过智能技术生成


约束

约束: 在数据库中对数据库进行限制和约定
目的: 为了保证数据库中的数据的完整性 合理性 合法性 规范性。
格式:

	create table 表名(
		列名 数据类型 约束,
		列名 数据类型 约束,
		........
		全局约束...
	)	

1>非空约束

**概念:**在创建表的过程中,可以设置表的列的值不能为空null,not null

mysql> create table s1(
	-> id int, 
	-> name varchar(20) not null 
	-> ); 
	Query OK, 0 rows affected (0.01 sec) 
mysql> desc s1;
  +-------+-------------+------+-----+---------+-------+
  | Field | Type        | Null | Key | Default | Extra | 
  +-------+-------------+------+-----+---------+-------+ 
  | id    | int(11)     | YES  |     | NULL    |       | 
  | name  | varchar(20) | NO   |     | NULL    |       | 
  +-------+-------------+------+-----+---------+-------+

2>默认约束

默认约束: 在表中的列中如果没有赋值,则有一个默认值自动填充 default

mysql> create table s1( 
	-> id int, -> name varchar(20) not null, 
	-> sex char(2) not null default '男' 
	-> ); 
mysql> desc s2; 
+-------+-------------+------+-----+---------+-------+ 
| Field | Type        | Null | Key | Default | Extra | 
+-------+-------------+------+-----+---------+-------+ 
| id    | int(11)     | YES  |     | NULL    |       | 
| name  | varchar(20) | NO   |     | NULL   |       |   
| sex   | char(2)     | NO   |     ||       | 
+-------+-------------+------+-----+---------+-------+

3>唯一约束

唯一约束: 在表中约束中的值永远唯一
unique 非空的列,可以放置多个null值
第一种用法:

mysql> create table s3( 
	-> id int, -> name varchar(20) not null, 
	-> uid varchar(20) unique -> );
	Query OK, 0 rows affected (0.00 sec) 
mysql> desc s3; 
+-------+-------------+------+-----+---------+-------+ 
| Field | Type 		  | Null | Key | Default | Extra | 
+-------+-------------+------+-----+---------+-------+ 
| id    | int(11)     | YES  | NULL|         |		 |
| name  | varchar(20) | NO   |     | NULL    |		 | 
| uid   | varchar(20) | YES  | UNI 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值