数据库设计与SQL查询:一对一、一对多、多对多关系

根据经验独立构建数据库并创建不同类型的关系表,可以按照以下步骤进行:

  1. 创建数据库
CREATE DATABASE mydatabase;
USE mydatabase;
  1. 创建一对一关系的表
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)
);
  1. 创建一对多关系的表
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)
);
  1. 创建多对多关系的表
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)
);
  1. 进行等值查询
  • 一对一关系的等值查询
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语句。请根据实际情况进行适当修改。

数据库设计与SQL查询:一对一、一对多、多对多关系

原文地址: http://www.cveoy.top/t/topic/bnlN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录