sql完成对表中数据的CRUD的操作
插入数据
列句:insert into 表名(列名1,列名2,列名3…)values(值1,值2,值3…)
例句简单写法:insert into 表名 values(值1,值2,值3…)
演示:insert into student(name,age,gender,id)values(‘lisi’,34,‘女’,5);
简单写法:insert into student values(‘lisi’,34,‘女’,5);
如果只插入部分列 ,不可用简单的写法
简单写法:如果插入的是全列名的数据,表名后面的列名可以省略
查看表中数据
select * from student;
批量插入
insert into student values
(‘zhangsan’,23,‘女’,6),(‘sun’,34,‘女’,9);
单挑插入和批量插入的效率
批量插入速度较快,但是若其中一条有问题不好排查
单挑插入速度不快,但好排除错误。
删除记录
delect from 表名 {where 条件}
delect from student where id=2
delect from student :如果没有指定条件,会将表中数据一条一条全部删除掉。
面试问题:
1)请说一下delect删除和truncate删除数据有什么区别
delete:DML 一条条删除表中的数据
truncate:DDL 先删除表,在重建表(影响表结构)
2)哪个执行率高?
需要看表中数据量,如果数据少,delete会比较高效
数据比较多,truecate会比较高效
更新表记录
update 表名 set列名=列的值,列名1=列的值2{where 条件}
update student set age=55 where name =‘li’
查询记录
select 【可选参数】{*}列名,列名1 from表名{where 条件}
例: 商品分类 手机数码,鞋靴箱包,
1.分类的id
2.分类的名称
3.分类描述
1)创建表
create table category(
cid int primary auto_increment,
cname varchar(10),
cdesc varchar (31)
);
insert into category values(null,‘手机’.‘方便携带’);
insert into category values(null,‘手机数码’.‘电子产品,黑马生产’);
insert into category values(null,‘鞋靴箱包’.‘纺织品’);
insert into category values(null,‘香烟酒水’.‘黄鹤楼,茅台,二锅头’);
insert into category values(null,‘酸奶饼干’.‘娃哈哈,安慕希’);
insert into category values(null,‘馋嘴零食’.‘花生瓜子,八宝粥,辣条’);
只查询名称和
select cname,cdesc from category;
所有商品
1.商品id
2.商品名称
3.商品的价格
4.生产日期
5.商品分类id
商品和商品分类:所属关系
create table product(
pid int primary key auto_increment,
pname varchar(10),
price double,
pdate timestamp,
cno int)
;
增加数据
insert into product values (null,‘小米mix4’,‘998’,‘null’,‘2’)
一次增加多条数据
insert into product values (null,‘锤子4’,‘2888’,‘null’,‘2’)
insert into product values (null,‘阿迪王’,‘99’,‘null’,‘3’)
insert into product values (null,‘老村长’,‘88’,‘null’,‘4’)
insert into product values (null,‘劲酒’,‘35’,‘null’,‘4’)
insert into product values (null,‘小熊饼干’,‘1’,‘null’,‘5’)
insert into product values (null,‘卫龙辣条’,‘1’,‘null’,‘6’)
insert into product values (null,‘旺旺饼干’,‘1’,‘null’,‘6’)
简单查询
查询所有的商品
select *from prodect;
查询商品名称和商品价格
select pname,price from product;
别名查询,as关键字,as可以省略
表别名 select p.pname,p.price from product p;(z主要是用在多表查询)
select p.pname,p.price
from product as p;
列别名select pname sa 商品名称,price as 商品价格 from product;
select pname as 商品名称,price as 商品价格 from product;
as可以省略~~
去掉重复的值
查询商品所有的价格
select price from product;
select distinct price from product; 去重复的数据
select运算查询 仅仅在查询结果上做了运算+ - * /
select * ,price1.5 from product;
select * ,price1.5as 折扣价 from product;
条件查询【where关键字】
delete中用过
指定条件,确定要操作的记录
例子:查询商品价格大于60元的商品信息
select * from product where price>60;
where 后的条件写法
关系运算符 > >= < <= =! = <>
<>不等于 标准sql语法
!=不等于 非标准的sql语法
查询商品价格不等于88的所有商品
select * from product where price<>88;
查询商品价格在10-100之间
select * from product where price>10 and price <100;
between…and…
select * from product where price between10 and 100;
逻辑运算 and or not