-
2022-01-11 17:16:12
/题目:创建表Book表,字段如下:
bid整型,要求主键
bname学符型,要求设置唯一键,并非空
price浮点型,要求有默认值10
btypeId
类型编号,要求引用bookType表的id字段
已知bookType表(不用创建),字段如下:
id
name/一、创建表时添加外键约束
use books; CREATE TABLE booktype( id INT PRIMARY KEY, NAME VARCHAR(20) NOT NULL ); CREATE TABLE book( bid INT PRIMARY KEY, bname VARCHAR(20) UNIQUE, price FLOAT DEFAULT 10, btypeId INT REFERENCES booktype(id) );
二、先创建表,后添加约束
ALTER TABLE book ADD CONSTRAINT FK_Book FOREIGN KEY(btypeid ) REFERENCES booktype(id);
更多相关内容 -
mysql创建表时设置外键约束的方法
2021-01-18 19:18:26mysql创建表时设置外键约束的方法发布时间:2020-06-17 15:54:11来源:亿速云阅读:312作者:元一MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就...mysql创建表时设置外键约束的方法
发布时间:2020-06-17 15:54:11
来源:亿速云
阅读:312
作者:元一
MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
我们可以在创建表时设置外键约束:
在 CREATE TABLE 语句中,通过 FOREIGN KEY 关键字来指定外键,具体的语法格式如下:[CONSTRAINT ] FOREIGN KEY 字段名 [,字段名2,…]
REFERENCES 主键列1 [,主键列2,…]
举例:
现在在 test_db 数据库中创建一个部门表 tb_dept1,表结构如下图所示:
创建 tb_dept1 的 SQL 语句和运行结果如下所示。mysql> CREATE TABLE tb_dept1
-> (
-> id INT(11) PRIMARY KEY,
-
MYSQL 数据库给表加外键约束条件 (史上最详细教程)
2020-12-14 10:57:31下面是已经创建好的两个数据表!(还未加外键约束) 1. mysql> show columns from message;//信息表 +-----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default |... -
mysql建表时设置外键方法
2021-12-21 15:26:42 -
MySQL创建数据表并建立主外键关系详解
2020-12-16 08:11:45一、SQL语句创建数据表并设置主外键关系 create table demo.ChineseCharInfo ( ID int not null auto_increment, Hanzi varchar(10) not null, primary key (ID) ) engine=innodb auto_increment= -
关于Mysql新建表时设置外键或者从已有表中添加外键
2020-09-04 15:51:33关于Mysql新建表时设置外键或者从已有表中添加外键 *外键:在从表中与主表主键对应的那一列,如:下面例子中的联系人表中的(lkm_cust_id) 主表: 一方,用来约束别人的表 从表: 多方,被别人约束的表 1.新建表时 ...关于Mysql新建表时设置外键或者从已有表中添加外键
*外键:在从表中与主表主键对应的那一列,如:下面例子中的联系人表中的(lkm_cust_id)
- 主表: 一方,用来约束别人的表
- 从表: 多方,被别人约束的表
1.新建表时
[CONSTRAINT] [外键在这里插入代码片约束名称] FOREIGN KEY(外键字段名) REFERENCES 主表名(主键字段名);
例如: 此处在联系人表中添加外键(cust_id)
/*创建客户表*/ CREATE TABLE cst_customer ( cust_id bigint(32) NOT NULL AUTO_INCREMENT COMMENT '客户编号(主键)', PRIMARY KEY (`cust_id`) ) ENGINE=InnoDB AUTO_INCREMENT=94 DEFAULT CHARSET=utf8; /*创建联系人表*/ CREATE TABLE cst_linkman ( lkm_id bigint(32) NOT NULL AUTO_INCREMENT COMMENT '联系人编号(主键)', lkm_cust_id bigint(32) NOT NULL COMMENT '客户id(外键)', PRIMARY KEY (`lkm_id`), CONSTRAINT `FK_cst_linkman_lkm_cust_id` FOREIGN KEY (`lkm_cust_id`) REFERENCES `cst_customer` (`cust_id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
- 在已有表中添加外键
语法:
ALTER TABLE 从表 ADD [CONSTRAINT] [外键约束名称] FOREIGN KEY (外键字段名) REFERENCES 主表(主 键字段名);
3.补充----设置外键时on条件说明
-
. cascade方式
在父表上update/delete记录时,同步update/delete掉子表的匹配记录. set null方式
在父表上update/delete记录时,将子表上匹配记录的列设为null
要注意子表的外键列不能为not null. No action方式
如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作. Restrict方式
同no action, 都是立即检查外键约束. Set default方式
父表有变更时,子表将外键列设置成一个默认的值 但Innodb不能识别
-
MySQL 数据库创建 表间 关系 设置外键
2018-12-05 20:27:55将表中已有字段设置 外键 似乎不能设置为主键即使定义时没有定义主键也会报错 如 Multiple primary key defined 1。添加新字段 alter table 表名 add 字段名 字段描述; alter table student add phone varchar(20);... -
mysql建表外键怎么设
2021-03-15 20:14:19mysql建表外键怎么设mysql建表时设置外键的方法:在“CREATE TABLE”语句中,通过“[CONSTRAINT ] FOREIGN KEY 字段名 [,字段名2,…] REFERENCES 主键列1 [,主键列2,…]”语句设置。MySQL 外键约束(FOREIGN KEY)是表... -
mysql建立外键
2021-01-20 00:11:20建立外键的前提:本表的列必须与外键类型相同(外键必须是外表主键)。 外键作用: 使两张表形成关联,外键只能引用外表中的列的值!...主键 id 类型 int 创建含有外键的表: create table temp( id i -
mysql创建表(带外键)
2020-06-16 17:54:51创建department表: create table department( dept_name varchar(20), budget int, descript varchar(20), primary key(dept_name) ); 创建course表: create table course( course_id varchar(20), deptnames ... -
MySQL删除表的时候忽略外键约束的简单实现
2020-12-16 14:16:18删除表不是特别常用,特别是对于存在外键关联的表,删除更得小心。但是在开发过程中,发现Schema设计的有问题而且要删除现有的数据库中所有的表来重新创建也是常有的事情;另外在测试的时候,也有需要重新创建数据库... -
MySQL命令行&MySql外键设置详解 .txt
2021-12-21 17:09:01MySQL命令行&MySql外键设置详解 .txt -
MySQL创建表之后再加外键约束
2021-11-02 18:05:54创建两个表 CREATE TABLE `student1` ( `id` int(4) NOT NULL AUTO_INCREMENT COMMENT '学号', `name` varchar(30) NOT NULL DEFAULT '匿名' COMMENT '姓名', `pwd` varchar(20) NOT NULL DEFAULT '123456' ... -
MySQL 创建主键,外键和复合主键的语句
2020-12-15 08:17:17创建外键语法 ALTER TABLE news_info[子表名] ADD CONSTRAINT FK_news_info_news_type[约束名] FOREIGN KEY (info_id)[子表列] REFERENCES news_type[主表名] (id)[主表列] ; 3.使用组合主键 如果一列不能唯一区分一... -
Mysql表创建好后添加外键
2021-09-13 20:20:47命令:altertable需加外键的表addconstraint外键名foreignkey(需加外键表的字段名)referencnes关联表名(关联字段名); 注意:外键名不能重复 -
【MySQL】创建表时主键与外键
2021-04-16 16:06:591.什么时候用主键?主键的用处?保证数据的唯一性 2.一张表只能有一个主键吗?√ 3.一个主键只能是一列吗...另外,需要注意外键名不能重复,故在进行外键命名时,比如t2和t1进行外键关联,则命名为fk_t2_t1,若t3和.. -
Mysql创建外键约束的两种方式
2021-02-04 16:31:04通过给mysql的表字段添加外键约束,...1、创建表时直接创建外键约束create table books(bookid number(10) not null primary key,bookName varchar2(20) not null,price number(10,2),categoryId number(10) not nul... -
MySQL表创建及外键
2021-01-18 19:18:061. Employees数据库安装(1)... 表(Table)(1)表介绍表是关系数据库的核心表=关系表是记录的集合Mysql默认存储引擎都是基于行存储(2)表是数据的集合select * from table_name limit 1;集合是无序的。从表中随机... -
mysql怎么生成表的外键
2021-01-18 21:13:04在输入主表和从表的数据:insert into `yuangong` (`bianhao`, `mingcheng`) values('001','王媛媛');insert into `yuangong` (`bianhao`, `mingcheng`) values('002','张依依');insert into `gongzi` (`id`, `... -
mysql 创建表和外键关联
2021-07-19 17:29:44创建表 CREATE TABLE student( id INT(10) NOT NULL PRIMARY KEY, NAME VARCHAR(30) DEFAULT NULL, tid INT(10) DEFAULT NULL, KEY `fktid` (`tid`), CONSTRAINT `fktid` FOREIGN KEY(`tid`) REFERENCES `teacher` ... -
MySQL无法创建外键的原因及解决方法
2020-12-16 13:09:24关联2张表时出现了无法创建外键的情况,从这个博客看到,问题出在第六点的Charset和Collate选项在表级和字段级上的一致性上。我的2张表的编码charset和collate不一致,2张表都执行执行SQL语句: alter table 表名 ... -
mysql中设置外键的方式
2022-05-02 20:35:42mysql 设置外键的两种方式,mysql ,外键 -
【MySQL】创建数据表-外键
2022-05-25 11:18:53创建外键 方法一 drop table if exists base_info; create table base_info( id varchar(64) not null comment '主键', -- 其他字段省略 primary key(id) )engine=innodb default charset=utf8 comment '基本... -
为什么在创建php网站时在mysql数据库表中使用外键?
2021-04-04 06:40:15嗨,看看这里:http://www.sitepoint.com/mysql-foreign-keys-quicker-database-development/ [^] -
Mysql表创建外键报错解决方案
2021-01-19 21:42:57数据库表A: CREATE TABLE task_desc_tab ( id INT(11) PRIMARY KEY NOT NULL COMMENT '自增主键' AUTO_INCREMENT, <strong>taskname</strong> VARCHAR(200) NOT NULL COMMENT '任务名字', sqlname VARCHAR(20) ... -
MySQL外键约束详解
2021-12-19 08:02:01今天继续给大家介绍MySQL相关知识,本文主要内容是MySQL外键约束详解。 一、MySQL外键约束作用 二、外键约束创建 ...(二)在创建数据表时创建外键约束 (三)在创建数据表后添加外键约束 三、外键约束功能演示 -
mysql的一些基本操作 增删改查 创建表 插入列 设置主键外键 id自增
2022-03-16 11:27:25非自连接 内连接 ,外连接 union union有重 效率低 和 union all 多表联合查询的七种方式见 mysql 多表联合查询 的七种方式 全部 左连接 右连接 内连接_铭曱的博客-CSDN博客_mysql七种连接方式总共存在七总情况图一 ... -
【精华版】mysql创建表(带外键)
2017-04-17 23:26:53创建department表: create table department( dept_name varchar(20), budget int, descript varchar(20), primary key(dept_name) ); 创建course表: create table course( course_id varchar(20), deptnames ... -
MySQL中如何设置外键
2019-07-02 22:53:13下面我将以举例的方式说明,作者能力有限,欢迎指正和补充。 一、环境 ...Foreign key, 本关系表中的属性的属性值需要参照另外一个表中主键的属性值而存在,可为空也可不为空。 四、实例 目前有一个...