以后补充
第四章 数据库增删改查
一、插入行数据
mysql插入数据是按行插入的。
INSERT INTO customers (待插入列1,待插入列2,待插入列3)
VALUES(数据1,数据2,数据3) # 插入多行
,(数据1,数据2,数据3)
,(数据1,数据2,数据3)
INSERT INTO customers # 未指定插入列时全部插入
VALUES(数据1,数据2,数据3......)
,(数据1,数据2,数据3......)
,(数据1,数据2,数据3......)
# 插入分层行:什么是分层?可以理解同一个产品的两种销售价格。这种数据存储时需要用到分层。
INSERT INTO customers
VALUES(LAST_INSERT_ID(), data1, data2, data3, data...)
VALUES(LAST_INSERT_ID(), data1_1, data2, data3, data...)
二、创建表复制
CREATE table invoices_archived AS # 创建表
SELECT i.invoice_id # 子查询
,i.number
,c.name
,i.invoice_total
,i.payment_total
,i.invoice_date
,i.due_date
FROM sql_invoicing.invoices i
JOIN sql_invoicing.clients c
WHERE i.client_id = c.client_id
AND i.payment_date IS NOT NULL
三、UPDATE在表中更新多行
UPDATE sql_store.customers # 更新表
SET points = points + 50 # 更新表中列的值
WHERE birth_date < '1990-01-01'
四、UPDATE中使用子查询
UPDATE sql_store.orders o # 更新表
SET comments = '黄金会员' # 更新表中列的值
WHERE customer_id in
(SELECT customer_id
FROM sql_store.customers c
WHERE c.points >= 3000
)
五、删除行DELETE
DELETE FROM sql_invoicing.invoices i # 删除
WHERE i.client_id = # 这里如果不写就会删除整张表,所以要注意!
(
SELECT c.client_id
FROM sql_invoicing.clients c
WHERE c.name = 'Myworks'
)