在对表姓行更新操作时(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;