Mosh|SQL教程第三弹--插入、更新、删除

其中PK表示主键、NN表示不为空、AI表示自动递增、Default表示默认值


一、插入(INSERT)

1、单行插入

 这里可以看到由于customer_id是自增的,因此我们可以使用DEFAULT进行赋值,也可以直接输入数字但是要避免重复。

也可以只写需要赋值的列,这样就不需要填自增或允许为空的值了(注意这里要一一对应)

2、插入多行

3、多表插入

由于orders只存放了订单号,没有存放订单内容。所以我们可以先在orders插入新的订单号,然后通过last_insert_id()获取最近插入的ID,这样我们就可以在order_items插入对应的订单内容了

二、一个表复制数据到另一个表

这将创建一个orders_archived表,并把orders表的数据复制到orders_archived中

值得注意的是:orders_archived表并不会把orders表中的PK、AI属性复制过去,需要我们手动修改

这种方式结合判断条件可以方便我们提取需要的数据放入表中,而不是全部数据直接放入

首先,将表中的数据清空

选择Truncate

这样我们就可以保留表格式并清空数据了

通过条件限制我们可以成功实现放入目标数据

练习:使用sql_invoicing里的invoices表、client表,创建一个新表invoices_archive。将invoices表中的client_id变成客户名,且只复制支付过的发票,也就是payment_date表有数据

 (注意:不可以用payment_date != NULL )

二、更新(UPDATE)

1、更新单行,修改invoice_id = 1的信息

2、更新多行

由于Workbench的安全设置,它不允许我们一次性修改多行,只需要在设置中取消最下面的安全更新即可

这样就可以一次性修改客户3的全部数据

练习:将customers表中生日小于1990-01-01的人积分加50

3、UPDATE中使用子查询,此处由于子查询返回的是单个数据所以用=

如果返回多个数据则需要用IN

练习:积分大于3000,如果下过单就更新注释改成金牌顾客

三、删除(DELETE)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值