三、SQL学习之增删改操作

在对表姓行更新操作时(UPDATE/INSERT INTO/DELETE) ,先用SELECT进行测试,以防过滤错误。

一、插入操作

SELECT * FROM prod_info WHERE cost=20.11;

--插入完整数据
INSERT INTO prod_info2(prod_id,prod_name,brand,type,class,cost,sale_price,supplier_id) 
                VALUES(40001,'电脑','联想','拯救者','电子产品',5000,5500,'DJ0001');
SELECT * FROM prod_info2 WHERE sale_price=5500;
--插入完整数据-可以不写插入属性,默认就是所有的属性都插入
INSERT INTO prod_info2
                VALUES(40003,'电视','方正','','',3000,3500,'DJ0004');
SELECT * FROM prod_info2 WHERE sale_price=3500;

--插入部分数据--必须写属性,并且要顺序一一对应
INSERT INTO prod_info2(prod_id,prod_name,supplier_id) VALUES(40002,'纽扣','DJ0003')
SELECT * FROM prod_info2 WHERE prod_id=40002;

--将SELECT的查询结果插入
SELECT * FROM prod_info2 WHERE prod_id=40002;

--插入查出来的部分属性 表后的属性和select选择出来的属性要顺序一致
INSERT INTO prod_info2(prod_id,prod_name,brand)
SELECT CONCAT('T',prod_id),prod_name,brand 
FROM prod_info2 WHERE prod_id=40002;

SELECT * FROM prod_info2 ORDER BY prod_id DESC;

--完整行插入,如果不备注被插入表的属性,则默认所有属性都插入
INSERT INTO prod_info2
SELECT CONCAT('F',prod_id),prod_name,brand,type,class,cost,sale_price,supplier_id 
FROM prod_info2 WHERE prod_id=40002;

SELECT * FROM prod_info2 ORDER BY prod_id DESC;

每个SQL查询中,insert into 只能执行一次,insert into  (),insert into()报错,即只能插入一行数据,要想插入多行,使用以下方法,或者导入csv文件

1.数据插入-----简单插入

SELECT * FROM prod_info WHERE cost=20.11;
--插入完整数据
INSERT INTO prod_info2(prod_id,prod_name,brand,type,class,cost,sale_price,supplier_id) 
                VALUES(40001,'电脑','联想','拯救者','电子产品',5000,5500,'DJ0001');
SELECT * FROM prod_info2 WHERE sale_price=5500;
--插入部分数据
INSERT INTO prod_info2(prod_id,prod_name,supplier_id) VALUES(40002,'纽扣','DJ0003')
SELECT * FROM prod_info2 WHERE prod_id=40002;

2.数据插入-----将SELECT查询出的结果(可以是一行,也可以是多行)插入表中(用SELECT语句替换VALUES语句)

--将SELECT的查询结果插入
SELECT * FROM prod_info2 WHERE prod_id=40002;

--插入查出来的部分属性 表后的属性和select选择出来的属性要顺序一致
INSERT INTO prod_info2(prod_id,prod_name,brand)
SELECT CONCAT('T',prod_id),prod_name,brand 
FROM prod_info2 WHERE prod_id=40002;

SELECT * FROM prod_info2 ORDER BY prod_id DESC;

--完整行插入,如果不备注被插入表的属性,则默认所有属性都插入
INSERT INTO prod_info2
SELECT CONCAT('F',prod_id),prod_name,brand,type,class,cost,sale_price,supplier_id 
FROM prod_info2 WHERE prod_id=40002;

SELECT * FROM prod_info2 ORDER BY prod_id DESC;

--完整多行插入
SELECT * FROM prod_info2 WHERE prod_id LIKE '1000%';

INSERT INTO prod_info2
SELECT CONCAT('T',prod_id),prod_name,brand,type,class,cost,sale_price,supplier_id  FROM prod_info2 WHERE prod_id LIKE '1000%';

SELECT * FROM prod_info2 WHERE prod_id LIKE 'T1000%';

1.手动加入数据

2.用SELECT插入一行

3.用SELECT插入多行  

二、更新操作

SELECT * FROM prod_info2 WHERE prod_id LIKE 'T1000%';

UPDATE prod_info2
SET sale_price=100
WHERE prod_id LIKE 'T1000%';



UPDATE prod_info2
SET sale_price=sale_price*0.9,class=CONCAT('$',class)
WHERE prod_id LIKE 'T1000%';

 

三、删除操作

SELECT * FROM prod_info2 WHERE prod_id LIKE 'T%' AND ISNULL(brand);

DELETE FROM prod_info2 WHERE prod_id LIKE 'T%' AND ISNULL(brand);

--依然保留表的结构
DELETE From prod_info2;

INSERT INTO prod_info2
SELECT * FROM prod_info WHERE prod_id LIKE '1000%';

--依然保留表的结构,性能更好
TRUNCATE TABLE prod_info2;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值