数据库设计与SQL查询:一对一、一对多、多对多关系
数据库设计与SQL查询:一对一、一对多、多对多关系
根据经验独立构建数据库并创建不同类型的关系表,可以按照以下步骤进行:
- 创建数据库
CREATE DATABASE mydatabase;
USE mydatabase;
- 创建一对一关系的表
CREATE TABLE person (
id INT PRIMARY KEY,
name VARCHAR(50),
address VARCHAR(100)
);
CREATE TABLE passport (
id INT PRIMARY KEY,
person_id INT,
passport_number VARCHAR(20),
FOREIGN KEY (person_id) REFERENCES person(id)
);
- 创建一对多关系的表
CREATE TABLE department (
id INT PRIMARY KEY,
name VARCHAR(50)
);
CREATE TABLE employee (
id INT PRIMARY KEY,
name VARCHAR(50),
department_id INT,
FOREIGN KEY (department_id) REFERENCES department(id)
);
- 创建多对多关系的表
CREATE TABLE course (
id INT PRIMARY KEY,
name VARCHAR(50)
);
CREATE TABLE student (
id INT PRIMARY KEY,
name VARCHAR(50)
);
CREATE TABLE course_student (
course_id INT,
student_id INT,
FOREIGN KEY (course_id) REFERENCES course(id),
FOREIGN KEY (student_id) REFERENCES student(id)
);
- 进行等值查询
- 一对一关系的等值查询
SELECT person.name, passport.passport_number
FROM person
INNER JOIN passport ON person.id = passport.person_id
WHERE person.id = 1;
- 一对多关系的等值查询
SELECT employee.name, department.name
FROM employee
INNER JOIN department ON employee.department_id = department.id
WHERE department.id = 1;
- 多对多关系的等值查询
SELECT student.name, course.name
FROM student
INNER JOIN course_student ON student.id = course_student.student_id
INNER JOIN course ON course_student.course_id = course.id
WHERE student.id = 1;
以上是一个简单的示例,根据实际需求您可能需要更多的表和字段来构建数据库,并编写适合的SQL语句。请根据实际情况进行适当修改。
原文地址: http://www.cveoy.top/t/topic/bnlN 著作权归作者所有。请勿转载和采集!