Day8 MySQL 对表的增删改查2

对表的增删改查2

1、对列的增改

1.1新建列

ALTER:
修改现存数据库对象,比如一张表

-- 对已存在的表,再添加一个新列
ALTER TABLE `user` ADD sex varchar(1) NULL;
alter table student add subject varchar(10) null;

格式:

  • ALTER TABLE 表名 ADD 列名<字段> 列名数据类型 值;
1.2同时修改多个列的值

UPDATE: 修改记录

update user set age=18,sex='男' where name='小明'; 
update user set age=16,sex='女' where name='小红';

格式:

  • update 表名 set 列名=‘值’,列名=‘值’ where 列名=‘值’;
  • 注意: int类型不需要 ’ ’ 用逗号","连接两个列

2、对表的查询-2

SELECT: 从一张或者多张表中检索特定的数据

2.1对多个条件进行查询

and连接

-- 查询大于18岁的男生
select * from user where sex='男' and age>18;
-- 查询结果只需要名字
select name from user where sex='女' and age>18;

or连接 :或者

--  查询班级是Java10或者Java9的学生
select * from student where classname='Java10' or classname='Java9';

注意: * 表示所有列

select name,pwd from user where name='小李' and pwd='123';//显示name  pwd 
select * from user where name='小李' and pwd='993';//显示所有列
2.2统计

count(): count是MySQL自带函数 :表示统计记录条数
格式: select count(*) from 表名 where 列名 group by 列名 having 条件

-- 统计男生人数
select count(*) from user where sex='男';

分组调查,分别统计: 使用 ------group by 根据什么来分组
group by 语句用于结合聚合函数,根据一个或多个列对结果集进行分组

-- 根据性别分组,分别有多少人
select count(*),sex from user group by sex;
select count(*) as '总人数',sex '性别' from user group by sex;

注意: 取别名,用as, 当然as 也可以不写,用空格代替

-- 每个班有多少人语文成绩大于80
select count(*),classname,subject from student where subject='语文' and score>80 
group by classname;
-- 查询,优秀人数大于2的班级
select count(*),classname,subject from student where subject='语文' and score>80
 group by classname having count(*)>2;

注意: where 和 having 的区别 :1、分组以后再过滤只能用用having 2、group by 后面只能用having 3、where用于表名的后面,用来过滤查询结果

2.3 计算平均值

avg()
格式: select avg(条件列名) from 表名 where 列名;

-- 计算男生的平均年龄
select avg(age) from user where sex='男';
-- 统计Java10 的平均成绩
select avg(score) from student where classname='Java10';
-- 统计Java10 的每一科的平均成绩
select avg(score),subject from student where classname='Java10' group by subject;
2.4 最大值 最小值

max() min()
格式: select max()\min() from 表名;

-- 找出整个用户表的 最大年龄
select max(age) from user;
-- 最小年龄
select min(age) from user;
上一篇:java day8


下一篇:python实训day8