DML操作表记录-增删改【重点】
-
准备工作: 创建一张商品表(商品id,商品名称,商品价格,商品数量.)
create table product(
pid int primary key auto_increment,
pname varchar(40),
price double,
num int
);
1.1 插入记录
1.1.1 语法
-
方式一: 插入指定列, 如果没有把这个列进行列出来, 以null进行自动赋值了.
eg: 只想插入pname, price , insert into t_product(pname, price) values('mac',18000);
insert into 表名(列,列..) values(值,值..);
注意: 如果没有插入了列设置了非空约束, 会报错的
-
方式二: 插入所有的列,如果哪列不想插入值,则需要赋值为null
insert into 表名 values(值,值....);
eg:
insert into product values(null,'苹果电脑',18000.0,10);
insert into product values(null,'华为5G手机',30000,20);
insert into product values(null,'小米手机',1800,30);
insert into product values(null,'iPhonex',8000,10);
insert into product values(null,'iPhone7',6000,200);
insert into product values(null,'iPhone6s',4000,1000);
insert into product values(null,'iPhone6',3500,100);
insert into product values(null,'iPhone5s',3000,100);
insert into product values(null,'方便面',4.5,1000);
insert into product values(null,'咖啡',11,200);
insert into product values(null,'矿泉水',3,500);
1.2 更新记录
1.2.1语法
update 表名 set 列 =值, 列 =值 [where 条件]
1.2.2练习
-
将所有商品的价格修改为5000元
update product set price = 5000;
-
将商品名是苹果电脑的价格修改为18000元
UPDATE product set price = 18000 WHERE pname = '苹果电脑';
-
将商品名是苹果电脑的价格修改为17000,数量修改为5
UPDATE product set price = 17000,num = 5 WHERE pname = '苹果电脑';
-
将商品名是方便面的商品的价格在原有基础上增加2元
UPDATE product set price = price+2 WHERE pname = '方便面';
1.3 删除记录
1.3.1 delete
根据条件,一条一条数据进行删除
-
语法
delete from 表名 [where 条件] 注意: 删除数据用delete,不用truncate
-
类型
删除表中名称为’苹果电脑’的记录
delete from product where pname = '苹果电脑';
删除价格小于5001的商品记录
delete from product where price < 5001;
删除表中的所有记录
delete from product;
1.3.2 truncate
把表直接DROP掉,然后再创建一个同样的新表。删除的数据不能找回。执行速度比DELETE快
truncate table 表;
1.3.3 工作中删除数据
-
物理删除: 真正的删除了, 数据不在, 使用delete就属于物理删除
-
逻辑删除: 没有真正的删除, 数据还在. 搞一个标记, 其实逻辑删除是更新 eg: state 1 启用 0禁用
DQL操作表记录-查询【重点】
1.1 基本查询语法
select 要查询的字段名 from 表名 [where 条件]
1.2 简单查询
1.2.1 查询所有行和所有列的记录
-
语法
select * form 表
-
查询商品表里面的所有的列
select * from product;
1.2.2 查询某张表特定列的记录
-
语法
select 列名,列名,列名... from 表
-
查询商品名字和价格
select pname, price from product;
1.2.3 去重查询 distinct
-
语法
SELECT DISTINCT 字段名 FROM 表名; //要数据一模一样才能去重
-
去重查询商品的名字
SELECT DISTINCT pname,price FROM product
注意点: 去重针对某列, distinct前面不能先出现列名