十一、多表的创建及关系~一对多

多表的创建及关系-一对多

 

一对多:

 用户和订单

  --创建用户表

  create table user(

        id  int primary key auto_increment,

        username varchar(20)

);

--创建订单表

  create table orders(

            id  int primary key auto_increment,

           price double,

           user_id int

);

为了保证数据的有效性和完整性(不能随意删除增加),增加约束(外键约束),

          在多表的一方增加外键约束

                       格式:

                                     alter table 多表名称 add foreign key(外键名称) references 一表名称(主键);

                       例如:

                                    alter table orders add foreign key(user_id) reference user(id);

                  增加外键约束后,在执行删除用户数据时,如果该用户数据在订单表中有引用数据,则会发生失败

          增加了外键约束之后的特点:

                                1、主表中不能删除从表中已经引用的数据

                                2、从表中不能增加主表中不存在的数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在数据库中,一对多关系指的是一个的一条记录对应另一个中的多条记录,而多对多关系则指的是两个之间互相对应多条记录。下面是一些关于这两种关系的介绍和示例: 1. 一对多关系 假设我们有两个,一个是订单,一个是订单详情。一个订单可以对应多个订单详情,因此订单和订单详情之间就存在一对多的关系。在订单详情中,通常会有一个外键,指向订单中的订单ID。 ```sql -- 创建订单 CREATE TABLE orders ( order_id INT PRIMARY KEY, customer_name VARCHAR(50), order_date DATE ); -- 创建订单详情 CREATE TABLE order_details ( detail_id INT PRIMARY KEY, order_id INT, product_name VARCHAR(50), quantity INT, price DECIMAL(10, 2), FOREIGN KEY (order_id) REFERENCES orders(order_id) ); ``` 2. 多对多关系 假设我们有两个,一个是学生,一个是课程。一个学生可以选修多门课程,一门课程也可以被多个学生选修,因此学生和课程之间就存在多对多的关系。为了实现多对多关系,我们需要创建一个关系,用于存储学生和课程之间的对应关系。 ```sql -- 创建学生 CREATE TABLE students ( student_id INT PRIMARY KEY, student_name VARCHAR(50) ); -- 创建课程 CREATE TABLE courses ( course_id INT PRIMARY KEY, course_name VARCHAR(50) ); -- 创建关系 CREATE TABLE student_courses ( id INT PRIMARY KEY, student_id INT, course_id INT, FOREIGN KEY (student_id) REFERENCES students(student_id), FOREIGN KEY (course_id) REFERENCES courses(course_id) ); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值