Inserting a/multiple/hierarchical Row(s)| 插入单/多/分层行 | MySQL

Inserting a Row

学习如何在表中插入一行
会使用的语句:INSERT INTO

案例

在customer表中插入一行,该表的列及其属性如下:
在这里插入图片描述

方式一

输入所有该表中对应的列所赋予的值

INSERT INTO customers
VALUES (
	default,
	'June',
	'Zhu',
	NULL,
    '15819287702',
    'address',
	'city',
	'CA',
    DEFAULT)  
-- 按照column依次给出要填入的值
-- 建议不要输入确切的值,因为这列不能有重复值,防止重复报错
-- 字符串和日期要带上引号,单引号双引号都可以

方式二

选择部分列,赋值

INSERT INTO customers(
	first_name,
    last_name,
    birth_date,
    address,
    city,
    state)
-- 在表的后面,写出想要插入值的列
-- 这样就不用在使用DEFAULT或者NULL的值了,只需要给上述列提供值
VALUES (
	'June',
	'Zhu',
	NULL,
    'address',
	'city',
	'CA')  

这个方式的一个好处是,可以不按照原表的列顺序进行赋值
可以通过改变INSERT INTO后的排序,来输入对应的VALUES后的值
在这里插入图片描述
在这里插入图片描述

Inserting multiple Rows

案例

以shipper表为例
在这里插入图片描述
在这里插入图片描述

代码

INSERT INTO shippers (name)
VALUES 
	('Shipper1'),
	('shipper2'),
	('shipper3')

结果在这里插入图片描述

练习

在product表中插入三行
在这里插入图片描述

代码

INSERT INTO products (name,quantity_in_stock,unit_price)
VALUES
	('June' , '5' ,'5.20'),
	('June2' , '5' ,'5.20'),
	('June3' , '5' ,'5.20'),
    ('June4' , '5' ,'5.20'),
    ('June5' , '5' ,'5.20')

结果在这里插入图片描述

在这里插入图片描述

Inserting hierarchical Rows

如何向多表插入数据
这里将展示如何在子母表中插入对应数据
这里使用到的表包括orders和order_items
比如一个订单会有多个产品,如何保证联动的关系下插入数据

首先了解一下order表有哪些列
在这里插入图片描述

了解一下如何获取新记录的id

INSERT INTO orders (customer_id,
					order_date,
                    status)
VALUES (1,
		'2023-08-02',
        1);
				
SELECT LAST_INSERT_ID ()
-- 它能返回 我们插入新行时MYSQL生成的那个id   

在这里插入图片描述
在这里插入图片描述
获取到该id后,我们可以用于插入到子记录表中

查看一下order_items里的列有哪些
在这里插入图片描述
编写代码

INSERT INTO orders (customer_id,
					order_date,
                    status)
VALUES (1,
		'2023-08-02',
        1);
        
INSERT INTO order_items ()
VALUES 
	(LAST_INSERT_ID (),1,1,2.95),
    (LAST_INSERT_ID (),2,1,2.95)

在这里插入图片描述

在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值