本文整理自网络,侵删。
目录
- 一、 数据库的多表操作
- 二,操作
- 一对一
- 一对多
一、 数据库的多表操作
数据库的多表关系:
- 一对一
- 一对多
- 多对一
- 多对多
二,操作
一对一
建立数据表person
和card
,设置person
数据表id
为主键且自增,设置card
的id
为外键
// 创建person表 CREATE TABLE person ( id INT PRIMARY KEY AUTO_INCREMENT, // 主键 自增 NAME VARCHAR(20) ); // 创建card表 CREATE TABLE card ( id INT PRIMARY KEY AUTO_INCREMENT, // 主键 自增 number VARCHAR(20) UNIQUE NOT NULL,// 不能为null pid INT UNIQUE,// pid唯一 CONSTRAINT cp_fk1 FOREIGN KEY (pid) REFERENCES person(id) // 外键列 );
一对多
创建user数据表和orderlist数据表,这里不再设置uid为唯一值,因此是一对多的关系
// 创建user表 CREATE TABLE USER( id INT PRIMARY KEY AUTO_INCREMENT, // 主键 自增 NAME VARCHAR(20) ); // 添加数据 INSERT INTO USER VALUES (NULL, '张三'),(NULL, '李四'); // 创建orderlist表 CREATE TABLE orderlist( id INT PRIMARY KEY AUTO_INCREMENT, number VARCHAR(20), uid INT, // 这里没有再设置唯一值 CONSTRAINT out_fk1 FOREIGN KEY (uid) REFERENCES USER(id) // 外键列 ); -- 添加数据 INSERT INTO orderlist VALUES (NULL, 'hm001', 1), (NULL, 'hm002', 1),(NULL, 'hm003', 2),(NULL, 'hm004', 2);
- 多对多 创建student数据表,设置主键,再创建course数据表,创建中间表将两者关联起来
// 创建student表 CREATE TABLE student( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20) ); // 创建course表 CREATE TABLE course ( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(10) ); // 创建中间表 CREATE TABLE stu_course( id INT PRIMARY KEY AUTO_INCREMENT, sid INT, cid INT, CONSTRAINT sc_fk1 FOREIGN KEY (sid) REFERENCES student(id),// 设置外键 CONSTRAINT sc_fk2 FOREIGN KEY (cid) REFERENCES course(id)// 设置外键 );
多表查询-内链查询:
相关阅读 >>
【mysql数据库】第四章解读:schema与数据类型优化(上)
解决 sql 问题绝对能让你对 mysql 的理解更进一步!
更多相关阅读请进入《mysql》频道 >>

数据库系统概念 第6版
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » MySQL数据库的多表操作
标签:mysql
相关推荐
评论
管理员已关闭评论功能...