mysql外键怎么插入数据:MySQL 数据库 增删查改
mysql外键怎么插入数据:MySQL 数据库 增删查改
方法二:直接克隆
#直接将源表的查询结果给创建的新表
CREATE TABLE 克隆表名(SELECT * FROM 源表名);
SHOW CREATE TABLE 克隆表名\G; #获取数据表的表结构、索引等信息
注意:直接克隆无法复制原表的 主键、自动增长、约束、索引等配置。 用 LIKE 可以。
DELETE FROM 表名;
#DELETE清空表后,返回的结果内有删除的记录条目;DELETE工作时是一行一行的删除记录数据的;如果表中有自增长字段,使用DELETE FROM 删除所有记录后,再次新添加的记录会从原来最大的记录 ID 后面继续自增写入记录。
truncate table 表名;
#TRUNCATE 清空表后,没有返回被删除的条目;TRUNCATE 工作时是将表结构按原样重新建立,因此在速度上 TRUNCATE 会比 DELETE 清空表快;使用 TRUNCATE TABLE 清空表内数据后,ID 会从 1 开始重新记录。
#相当于直接格式化表
创建临时表
临时表是在当前连接中生效的表。
- 临时表创建成功之后,使用 SHOW TABLES 命令是看不到创建的临时表的;
- 临时表会在连接退出后被销毁。 如果在退出连接之前,也可以可执行增删改查等操作,比如使用 DROP TABLE 语句手动直接删除临时表。
CREATE TEMPORARY TABLE 表名 (字段1 数据类型 字段2 数据类型[ ...][ PRIMARY KEY (主键名)]);
例:
CREATE TEMPORARY TABLE TEM_TABLE (ID int(4) PRIMARY KEY REMARK VARCHAR(20));
INSERT INTO TEM_TABLE VALUES(1001 '临时表');
SELECT * from TEM_TABLE;
执行 quit 退出连接后,再次登录,就操作不了临时表了
外键的定义:如果同一个属性字段X 在表一中是主键,而在表二中不是主键,则字段X称为表二的外键。
主键表和外键表的理解:
(1)以公共关键字作主键的表为主键表(父表、主表)
(2)以公共关键字作外键的表为外键表(从表、外表)
注意:
1. 与外键关联的主表的字段必须设置为主键。
2. 要求从表不能是临时表,主从表的字段具备相同的数据类型、字符长度和约束。
#创建主表HOBBY
CREATE TABLE HOBBY (HOBID int(4) HOBNAME VARCHAR(50));
#创建从表HOBBY_DETAIL
CREATE TABLE HOBBY_DETAIL (ID int(4) PRIMARY KEY AUTO_INCREMENT NAME VARCHAR(10) AGE int(3) HOBID int(4));
#为主表HOBBY 添加一个主键约束。主键名建议以“PK_”开头。
ALTER TABLE HOBBY ADD CONSTRAINT PK_HOBID PRIMARY KEY (HOBID);
#为从表HOBBY_DETAIL 表添加外键,并将 HOBBY_DETAIL 表的 hobid 字段和 HOBBY 表的 hobid 字段建立外键关联。
#外键名建议以“FK_”开头。
ALTER TABLE HOBBY_DETAIL ADD CONSTRAINT FK_HOB FOREIGN KEY (HOBID) REFERENCES HOBBY (HOBID);
DESC HOBBY_DETAIL ;
#插入新的数据记录时,要先主表再从表
INSERT INTO HOBBY VALUES(1 'Football');
INSERT INTO HOBBY_DETAIL VALUES(1 'Messi' 32 1);