7.在创建表以后添加约束

该博客介绍了如何使用SQL创建数据库表,包括设置自增、非空、默认和检查约束。在创建过程中遇到错误1075,提示自增约束位置不正确,解决方案是移除auto_increment后再添加。之后通过ALTER TABLE语句添加了主键、唯一性、检查约束,并展示了查看表结构的命令,确保约束已成功添加。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

create table t_player(
	sno int(8) , -- suto_increment 自增约束只能添加在列级约束后面
	sname varchar(5) not null , -- not null 非空约束只能在列级约束后面
	sex char(1) default '男', -- default 默认约束值只能在列级约束后面
	age int (3),
	enterdate date,
	classname varchar(10),
	email varchar(15)
);

-- 1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
-- 错误解决办法:就是将auto_increment去掉


-- 在创建表以后添加约束:
alter table t_player add constraint pk_ply primary key (sno); -- 增加主键约束
alter table t_player modify sno int(8) auto_increment; -- 修改自增条件
alter table t_player add constraint ck_ply_sex check (sex='男'||sex='女');
alter table t_player add constraint ck_ply_age check (age>=18 and age<=50);
alter table t_player add constraint uq_ply_email unique (email);

-- 查看表结构
desc t_player;

验证约束添加成功:查看表结构:

 

在MySQL中,创建数据并设置约束通常是在CREATE TABLE语句中完成的。以下是一些常见的约束类型以及如何在创建时设置: 1. **主键约束** (Primary Key): 使用 `PRIMARY KEY` 关键字指定一或一组作为主键,保证唯一性和非空。例如: ``` CREATE TABLE users ( id INT PRIMARY KEY, username VARCHAR(50) NOT NULL ); ``` 2. **唯一约束** (Unique): 使用 `UNIQUE` 关键字确保某的值在整个中是唯一的,可以有多个字段构成组合唯一键: ``` CREATE TABLE emails ( user_id INT, email VARCHAR(100) UNIQUE, PRIMARY KEY (user_id, email) ); ``` 3. **外键约束** (Foreign Key): 当一个引用另一个的某个字段时,可以使用 `FOREIGN KEY` 和 `REFERENCES` 来确保关联完整性: ``` CREATE TABLE orders ( order_id INT AUTO_INCREMENT PRIMARY KEY, customer_id INT, FOREIGN KEY (customer_id) REFERENCES customers(customer_id) ); ``` 4. **检查约束** (Check): `CHECK` 可用于验证特定的数据是否满足条件,比如年龄大于0: ``` CREATE TABLE employees ( age INT CHECK (age > 0), ... other columns ... ); ``` 5. **默认值约束** (Default): 使用 DEFAULT 关键字为字段提供默认值: ``` CREATE TABLE products ( price DECIMAL(8,2) DEFAULT 0.00, ... other columns ... ); ``` 6. **NOT NULL约束**: 确保字段不允许为空: ``` CREATE TABLE addresses ( street VARCHAR(100) NOT NULL, city VARCHAR(50) NOT NULL ); ``` 在创建时,可以在相应的定义后添加上述约束。每个约束都可以独立使用,也可以组合使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值