增删改功能
**[增]:**数据插入-INSERT INTO
INSERT INTO + 表名 + VALUES(插入值)
示例,允许NULL或缺省存在
插完整行:
INSERT INTO pro_info VALUES(1, '火腿肠', '55g', '2019/2/4', 12, 15.5, 21)
插部分/完整行
INSERT INTO pro_info(prod_id,prod_name...) VALUES(1, ‘火腿肠’ ...)
建议选择上面这种写法,因为这样可以调整列的顺序,可以只给部分行,表结果发生变化也不影响
注意:文本类型一定要加引号
变化:将SELECT语句查询结果直接插入表中:结果直接代替‘插入值’中
不影响WHERE/GROUP BY/HAVING 等子句的使用
可以调整列的顺序,可以只给部分行,表结构发生变化也不影响
示例代码:
INSERT INTO prod_info2(prod_id, prod_name, brand, type) SELECT CONCAT('a', p.prod_id), p.prod_name, p.brand, p.type FROM prod_info AS p WHERE p.prod_id = '10003';
[改]:数据更新:UPDATE
UPDATE[表名] SET [字段=值] WHERE [过滤条件]
注意:
1. 指定要更新的表,有且仅有一个,且# 必须是真实的表;
2. 更新多个字段,逗号隔开,#可以是计算表达式
3. 指定更新行,否则全部更新,#过滤条件可以有0个或多个
[删]:数据删除:DELETE
DELETE FROM [表名] WHERE [过滤条件]
删除的只是表中的数据,而非删除表
示例代码
DELETE FROM prod_info2 WHERE prod_name = '洗衣液';
TRUNCATE TABLE [表名]
清空表,表中无内容,但表仍然存在
示例代码
TRUNCATE TABLE prod_info2;
代码:
select * from prod_info2;
INSERT INTO prod_info2 VALUES('T0001','测试商品','test','test','test','16','20','NJ0001');
select * from prod_info2 order by prod_id desc;
-- 插入部分行
INSERT INTO prod_info2(prod_id, prod_name, brand, type) VALUES('T0002','测试商品','test','test');
INSERT INTO prod_info2(prod_id, prod_name, type, brand) VALUES('T0003','测试商品','type','brand'); #改变顺序了
SELECT * FROM prod_info AS p WHERE p.prod_id = '10001';
INSERT INTO prod_info2 SELECT * FROM prod_info AS p WHERE p.prod_id = '10001';
INSERT INTO prod_info2 SELECT CONCAT('c', p.prod_id),p.prod_name, p.brand, p.type, p.class, p.cost, p.sale_price, p.supplier_id
FROM prod_info AS p
WHERE p.prod_id = '10001';
INSERT INTO prod_info2(prod_id, prod_name, brand, type) SELECT CONCAT('a', p.prod_id), p.prod_name, p.brand, p.type FROM prod_info AS p WHERE p.prod_id = '10003';
SELECT CONCAT('T', prod_id),prod_name, brand, type
FROM prod_info as p
WHERE p.prod_id LIKE '2000_';
INSERT INTO prod_info2
SELECT CONCAT('T', prod_id), p.prod_name, p.brand, p.type, p.class, p.cost, p.sale_price, p.supplier_id
FROM prod_info AS p
WHERE p.prod_id LIKE '2000_';