JAVAWeb学习笔记--SQL语句

添加数据

在这里插入图片描述
不建议使用第二种省略列名的方式。

修改数据

在这里插入图片描述需要注意的是:修改语句中如果不加条件,则将所有数据都修改!
如: update stu set tel=“1231241”;
会将表中所有点tel都设置为1231241

在这里插入图片描述

在这里插入图片描述

删除数据

在这里插入图片描述需要注意的是:修改语句中如果不加条件,则将所有数据都删除!

 

查询语法

在这里插入图片描述

基础查询

在这里插入图片描述不建议使用*,因为这样不方便代码的阅读、改进和注释

as的用法:

`SELECT name as '姓名' ,english as "英语" from stu;`

  

 

 

条件查询

在这里插入图片描述

具体案例:在这里插入图片描述在这里插入图片描述

-- 1.查询年龄大于20岁的学员信息
SELECT * from stu where age > 20;

-- 2.查询年龄大于等于20岁的学员信息
SELECT * from stu where age >= 20;

-- 3.查询年龄大于等于20岁并且年龄小于等于30岁的学员信息
SELECT * from stu where age >= 20 and age<=30;
SELECT * from stu where age BETWEEN 20 and 30;

-- 4.查询入学日期在'1998-09-01'到'1999-09-01' 之 间的学员信息
SELECT * from stu where hire_date between '1998-09-01' and '1999-09-01';

-- 5.查询年龄等于18岁的学员信息
SELECT * from stu where age =18;

-- 6.查询年龄不等于18岁的学员信息
SELECT * from stu where age !=18;
SELECT * from stu where age <>18;

-- 7.查询年龄等于18岁或者年龄等于20岁或者年龄等于22岁的学员信息
SELECT * from stu where age =18 or age=20 or age=22;
SELECT * from stu where age in (18,20,22);

-- 8.查询英语成绩为null的学员信息
-- 注意: nul1值的比较不能使用 = !=。需要使用is is not I
SELECT * from stu where english is NULL; 

模糊查询

通配符:
(1)_ :代表单个任意字符
(2)%号:代表任意个数字符

-- 模糊查询like =====================
/*
通配符:
(1)_ :代表单个任意字符
(2)%号:代表任意个数字符 
*/
-- 1.查询姓'马'的学员信息
SELECT * FROM stu where name like '马%';
-- 2.查询第二个字是'花'的学员信息
SELECT * FROM stu where name like '_花%';
-- 3.查询名字中包含'德'的学员信息
SELECT * FROM stu where name like '%德%';

  

在这里插入图片描述

排序查询

在这里插入图片描述

-- 1.查询学生信息,按照年龄升序排列
SELECT * from stu order by age asc;
-- 2.查询学生信息,按照数学成绩降序排列
SELECT * from stu order by math desc;
-- 3. 查询学生信息,按照数学成绩降序排列,如果数学成绩一样,再按照英语成绩升序排列
SELECT * from stu order by math desc , english asc;

  

在这里插入图片描述

分组查询

在这里插入图片描述
null不参与所有聚合函数的运算,也就是min,max这些都不会选取到null,求平均值也是直接忽略null;

 /*
	聚合函数
	count:统计数量
	max:求最大值
	min:求最小值
	sum:求和
	avg:求平均值
*/

-- 1.统计班级共有 多少个学生
select count(id) from stu ;
select count(*) from stu ;-- count不会统计为null的单元格
-- 2.查询数学成绩的最高分
select max(math) from stu;
-- 3.查询数学成绩的最低分
select min(math) from stu;
-- 4.查询数学成绩的总分
SELECT sum(math) from stu;
-- 5.查询数学成绩的平均分
SELECT avg(math) from stu;

  

分组查询

 

 

注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义这句话的意思是说:
分组字段和聚合函数前后需要对应,不然就没有意义
比如:SELECT name,sex,avg(math) from stu GROUP BY sex;
这里的name与后面的sex并没有对应,所以得到的结果一定也是没有意义的。

有意义:
在这里插入图片描述
无意义:
在这里插入图片描述

/* 分组函数
SELECT字段列表FROM表名[WHERE分组前条件限定]GROUPBY分组字段名[HAVING分组后条件过滤]...;
*/
select * from stu ;
-- 1.查询男同学和女同学各自的数学平均分
SELECT sex,avg(math) from stu GROUP BY sex;
/* 注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义这句话的意思是说:
分组字段和聚合函数前后需要对应,不然就没有意义
比如:SELECT name,sex,avg(math) from stu GROUP BY sex;
这里的name与后面的sex并没有对应,所以得到的结果一定也是没有意义的。
*/
-- 2.查询男同学和女同学各自的数学平均分,以及各自人数
select sex,count(sex),avg(math) from stu GROUP BY sex;
-- 3. 查询男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参与分组
select sex,count(sex),avg(math) from stu where math >70 GROUP BY sex ;
/*4.查询男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参与分组,分组之后人数大于2*/
select sex,count(sex),avg(math) from stu where math >70 GROUP BY sex having count(*)>1 ;

  

分页查询

在这里插入图片描述

/*
	SELECT字段列表FROM表名LIMIT起始索引 ,查询条目数
	*起始索引:从0开始
*/

select * from stu;
-- 1.从0开始查询,查询3条数据
SELECT * from stu limit 0,3;
-- 2.每页显示3条数据,查询第1页数据
SELECT * from stu limit 0 , 3;
-- 3.每页显示3条数据,查询第2页数据
SELECT * from stu limit 3 , 3;
-- 4.每页显示3条数据,查询第3页数据
SELECT * from stu limit 6 , 3;

-- 起始索引=(当前页码-1)*每页显示的条数

 

 

posted @ 2022-11-04 14:00  一统天下。  阅读(75)  评论(0编辑  收藏  举报