数据库操作
use java10;
-- 对已经存在的表,再添加一个新的列
alter table `user`add sex varchar(1) null;
select * from user;
-- 修改一行数据中的,某个列的值
update user set name='小王' where pwd='992';
-- 同时修改两个列的值,一次修改多个列,用逗号隔开
update user set age=18,sex='男'where name='小明';
update user set age=16,sex='女'where name='小红';
update user set age=17,sex='男'where name='小王';
update user set age=19,sex='男'where name='小莫';
-- 查询
-- 查询性别是男,年龄大于18岁的
select * from user where sex='男' and age>18;
-- 查询结果,只需要名字
select name from user where sex='女' and age>18;
-- 统计男生多少人 count是mysql自带的函数
-- 表示统计记录条数
select count(*) from user where sex='男';
-- 计算男生的平均年龄
select avg(age) from user where sex='男';
-- 找出整个用户表,最大的年龄
select max(age) from user;
-- 找出整个用户表的 最小的年龄
select min(age) from user;
select * from user;
-- 分组查询
select count(*),sex from user group by sex;
-- 取别名,用as,当然as 也可以不写,用空格代替
select count(*)as '总人数' ,sex '性别' from user group by sex;
select name,pwd from user where name='小明' and pwd='123';
select count(*)as'总人数',classmate from students group by classmate;
select * from students where classmate='java10'or classmate='java9';
use java10;
-- 添加一个科目列
alter table students add subject varchar(10) null;
select * from student1;
update students set subject='语文';
insert into students (name,pwd,classmate,score,subject)
values('哈哈','1234','java10','语文');
insert into students (name,pwd,classmate,score,subject)
-- 一次复制用户数量的科目,其他变量不变,语文变成数学(一次把语文的记录复制到数学)
select name,pwd,classmate,score,'数学' from students where subject='语文';
-- 统计 java10班的每一科目加起来的平均成绩
select avg(score) from students where classmate='java10';
-- 统计 java10班的每一个科目的平均成绩
select avg(score) subject from students where classmate='java10' group by subject;
-- 每个班有多少人语文成绩大于80 (语句的语序是 要先确定是班的人所以写了classmate from students,然后是语文成绩并且大于80,所以where subject='语文' and score>80,然后要分组每个班,所以group by classmate)
select count(*),classmate from students where subject='语文' and score>80 group by classmate;
-- having查询,优秀人数大于1的班级,意思是group by后要再加过滤条件
-- where 和 having 的区别:分组以后再过滤只能用having,group by后面只能用having
-- where用于表明的后面,用来过滤查询结果
select count(*),classmate from students where subject='语文' and score>80 group by classmate having count(*)>1;
-- 排序 使用 order by 列名 表示结果根据这个列的值排序
-- 默认是从小到大。升序
select * from students where classmate='java10' and subject='语文' order by score;
-- order by score desc 加desc表示从大到小排序,降序
select * from students where classmate='java10' and subject='语文' order by score desc;
Java三种集合的特点
package com.yqm.day7;
import java.util.HashMap;
public class MapTest {
//map是无序的,等于没有下标,跟前两个集合的区别,单个map key不能重复,value可以重复
public static void main(String[] args) {
HashMap map=new HashMap();
//HashMap特点:
//1.map存储数据的格式是:key -value
//2.集合里面数据是无序的
//3.key是不可以重复,value可以重复
//数组的特点
//1.创建的时候必须规定里面的value的数据类型
//2.创建的时候,必须规定数组的长度
//3.集合里面的数据有序,可以通过下标访问
//ArrayList的特点
//1.value的类型可以不固定,放任何类型
//2.不固定长度
//3.集合里面的数据有序,可以通过下标访问
map.put("aa", 123);
map.put("bb", "asd");
//通过key获取value
System.out.println(map.get("aa"));
}
}
数据库的语句还是要多熟练运用和记住概念,用法的!