声明有外鍵的表

外键(Foreign Key)


先建立一个表: CREATE TABLE BookCategory
(
   CategoryId int primary key,
   CategoryName nvarchar(50)
)

再建一个表,引用外鍵
CREATE TABLE BookInfo
(
  BookId int primary key,
 CategoryId FOREIGN KEY REFERENCES BookCategory(CategoryId)
)
### 如何在 MySQL 中创建带有约束的用于维护两个之间的关系,确保数据的一致性和完整性。下面展示了如何通过 `CREATE TABLE` 语句定义新的同时加入约束。 #### 使用约束创建 当创建一个新的时,可以在该命令内指定约束条件。这通常是在子中完成的操作,其中会指明哪个字段作为以及它所引用的是哪一个父中的特定列[^3]。 ```sql create table stu_table( s_id int PRIMARY key auto_increment, s_name varchar(10) not null, s_sex char(1), s_age tinyint unsigned, c_id smallint unsigned, check(s_sex in ('男', '女')), check(s_age between 0 and 100), constraint fk_c_id foreign key (c_id) references class_table(c_id) ); ``` 此段 SQL 脚本建立了名为 `stu_table` 的学生信息格,并设定了 `s_id` 为主;同时设置了性别 (`s_sex`) 和年龄 (`s_age`) 字段的有效范围验证规则。最后部分则是关于班级 ID (`c_id`) 对应于另一个已存在的 `class_table` 里相同名称的主或唯一索引列上的关联声明。 对于那些已经存在而需要新增加的情况,则可以通过修改现有结构的方式来实现: ```sql alter table tb_employees add constraint fk_department foreign key(dept_id) references departments(dept_id); ``` 上述指令向员工记录(`tb_employees`)添加了一个新的限制,这个指向部门详情(`departments`)里的相应条目。需要注意的是,在执行此类操作之前应该确认目标数据库引擎支持事务处理功能(如 InnoDB),因为某些存储引擎可能不完全兼容所有的SQL标准特性[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值