1、insert 增加数据
使用insert语句向表中插入顾客的信息
insert into customer (id,name,gender,birthday,entry_date,job)values (null,'小明','男','1265-2-03','老板');
insert into customer values (null,'小红',女,'1238-03-03','学生');
2、select 查询语句
select * from customer;
select name as '姓名',gender from customer;
查询表中所有学生的信息。
select * from exam;
查询表中所有学生的姓名和对应的英语成绩。
select name,english from exam;
过滤表中重复数据
select distinct english from exam;
在所有学生分数上加10分特长分显示。
select name , math+10,english+10,chinese+10 from exam;
统计每个学生的总分。
select name ,english+math+chinese from exam;
使用别名表示学生总分。
select name as 姓名 ,english+math+chinese as 总成绩 from exam;
select name 姓名 ,english+math+chinese 总成绩 from exam;
select name english from exam;
使用where子句进行过滤查询
查询姓名为小明的学生成绩
select * from exam where name='小明';
查询英语成绩大于90分的同学
select * from exam where english > 90;
查询总分大于230分的所有同学
select name 姓名,math+english+chinese 总分 from exam where math+english+chinese>230;
查询英语分数在 80-100之间的同学。
select * from exam where english between 80 and 100;
查询数学分数为75,76,77的同学。
select * from exam where math in(75,76,77);
查询所有姓王的学生成绩。
select * from exam where name like '王%';
select * from exam where name like '王__';
查询数学分>70,语文分>80的同学。
select * from exam where math>70 and chinese>80;
使用order by关键字对查询结果进行排序操作
asc 升序 -- 默认就是升序 desc 降序
对语文成绩排序后输出。
select name,chinese from exam order by chinese desc;
对总分排序按从高到低的顺序输出
select name 姓名,chinese+math+english 总成绩 from exam order by 总成绩 desc;
对姓王的学生成绩排序输出
select name 姓名,chinese+math+english 总成绩 from exam where name like '王%' order by 总成绩 desc;
%代表匹配任意的多个字符
select * from customer where user_name like '王%' or user_name like '_王%' or user_name like '%王';
聚合函数
um() max() min() avg() count()
select avg(id) from customer where id >7 ;
select sum(id)/count(id) as '均值' from customer where id >7 ;
select count(id) from customer where id >7 ;
1、Count -- 用来统计符合条件的行的个数
统计一个班级共有多少学生?
select count(*) from exam;
统计数学成绩大于90的学生有多少个?
select count(*) from exam where math>70;
统计总分大于230的人数有多少?
select count(*)from exam where math+english+chinese > 230;
2、SUM -- 用来将符合条件的记录的指定列进行求和操作
统计一个班级数学总成绩?
select sum(math) from exam;
统计一个班级语文、英语、数学各科的总成绩
select sum(math),sum(english),sum(chinese) from exam;
统计一个班级语文、英语、数学的成绩总和
select sum(ifnull(chinese,0)+ifnull(english,0)+ifnull(math,0)) from exam;
3、AVG -- 用来计算符合条件的记录的指定列的值的平均值
求一个班级数学平均分?
select avg(math) from exam;
求一个班级总分平均分?
select avg(ifnull(chinese,0)+ifnull(english,0)+ifnull(math,0)) from exam;
4、MAX/MIN -- 用来获取符合条件的所有记录指定列的最大值和最小值
求班级最高分和最低分
select max(ifnull(chinese,0)+ifnull(english,0)+ifnull(math,0)) from exam;
select min(ifnull(chinese,0)+ifnull(english,0)+ifnull(math,0)) from exam;
5、分组查询
对订单表中商品归类后,显示每一类商品的总价
select product,sum(price) from orders group by product;
询购买了几类商品,并且每类总价大于100的商品
select product 商品名,sum(price)商品总价 from orders group by product having sum(price)>100;
where子句和having子句的区别:
where子句在分组之前进行过滤having子句在分组之后进行过滤
having子句中可以使用聚合函数,where子句中不能使用
很多情况下使用where子句的地方可以使用having子句进行替代
查询单价小于100而总价大于150的商品的名称
select product from orders where price<100 group by product having sum(price)>150;
sql语句书写顺序:
select from where groupby having orderby
sql语句执行顺序:
from where select group by having order by
备份恢复数据库
备份: 在cmd窗口下 mysqldump -u root -p dbName>c:/1.sql
恢复: 方式1:在cmd窗口下 mysql -u root -p dbName<c:/1.sql
方式2:在mysql命令下, source c:/1.sql
要注意恢复数据只能恢复数据本身,数据库没法恢复,需要先自己创建出数据后才能进行恢复.