添加某几列
insert into user (id,username,password) values (null,'aaa','123'); 添加所有列
insert into user values (null,'bbb','123',23,'1993-09-01');
添加中文记录
insert into user values (null,'张三','123',23,'1993-09-01'); 2, SQL修改表的记录
select name,english+chinese+math as sum from exam;
条件查询
n 使用where子句
u > , < , >= , <= , <> ,=
u like:模糊查询
u in:范围查询
u 条件关联:and , or ,not
查询李四学生的成绩:
select * from exam where name = '李四';
查询名称叫李四学生并且英文大于90分
select * from exam where name = '李四' and english > 90;
其他数据库操作:
切换数据库: use 数据库名称;
查看当前正在使用的数据库: select database();
查询姓李的学生的信息:
like可以进行模糊查询,在like子句中可以使用_或者%作为占位符。_只能代表一个字符,而%可以代表任意个字符。
* like ‘李_’ :名字中必须是两个字,而且是姓李的。
* like ‘李%’ :名字中姓李的学生,李子后可以是1个或任意个字符。
* like ‘%四’ :名字中以四结尾的。
* like ‘%王%’ :只要名称中包含这个字就可以。
select * from exam where name like '李%';
查询英语成绩是69,75,89学生的信息
select * from exam where english in (69,75,89);
排序查询
使用order by 字段名称 asc/desc;
查询学生信息,并且按照语文成绩进行排序:
select * from exam order by chinese;
查询学生信息,并且按照语文成绩倒序排序:
select * from exam order by chinese desc;
查询学生信息,先按照语文成绩进行倒序排序,如果成绩相同再按照
英语成绩升序排序
select * from exam order by chinese desc,english asc;
查询姓李的学生的信息,按照英语成绩降序排序
select * from exam where name like '李%' order by english desc; 分组统计查询 1, 聚合函数使用
sum();
获取所有学生的英语成绩的总和:
select sum(english) from exam;
获取所有学生的英语成绩和数学成绩总和:
select sum(english),sum(math) from exam;
查询姓李的学生的英语成绩的总和
select sum(english) from exam where name like '李%';
查询所有学生各科的总成绩:
select sum(english)+sum(chinese)+sum(math) from exam;
count();
获得学生的总数
select count(*) from exam;
获得姓李的学生的个数
select count(*) from exam where name like '李%';
max();
获得数学成绩的最高分:
select max(math) from exam;
min();
获得语文成绩的最小值
select min(chinese) from exam;
avg();
获取语文成绩的平均值
select avg(chinese) from exam;
2 分组查询
语法:使用group by 字段名称;
环境准备:
create table orderitem(
id int primary key auto_increment,
product varchar(20),
price double
);
insert into orderitem values (null,'电视机',2999);
insert into orderitem values (null,'电视机',2999);
insert into orderitem values (null,'洗衣机',1000);
insert into orderitem values (null,'洗衣机',1000);
insert into orderitem values (null,'洗衣机',1000);
insert into orderitem values (null,'冰箱',3999);
insert into orderitem values (null,'冰箱',3999);
insert into orderitem values (null,'空调',1999);
按商品名称统计,每类商品所购买的个数:
select product,count(*) from orderitem group by product;
按商品名称统计,每类商品所花费的总金额:
select product,sum(price) from orderitem group by product;
按商品名称统计,统计每类商品花费的总金额在5000元以上的商品
where的子句后面不能跟着聚合函数。如果现在使用带有聚合函数的条件过滤(分组后条件过滤)需要使用一个关键字having
select product,sum(price) from orderitem group by product having sum(price) > 5000;
按商品名称统计,统计每类商品花费的总金额在5000元以上的商品,并且按照总金额升序排序
select product,sum(price) from orderitem group by product having sum(price) > 5000 order by sum(price) asc; 总结 S(select)… F(from)…W(where)…G(group by)…H(having)…O(order by);