其中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)