JavaWeb介绍
什么是JavaWeb?
- Web: 全球广域网,也称万维网(www),能够通过浏览器访问的网站
- JavaWeb:用Java技术来解决相关web互联网领域的技术栈
- 网页:展现数据;数据库:存储和管理数据;JavaWeb程序:逻辑处理
数据库
1. 数据库相关概念
- 数据库:
- 存储数据的仓库,数据是有组织的进行存储
- DataBase(DB)
- 数据库管理系统
- 管理数据库的大型软件
- DataBase Management System(DBMS)
- SQL
- Structured Query Language,SQL,结构化查询语言
- 操作关系型数据库的编程语言
- 定义操作所有关系型数据库的统一标准
- 常见的关系型数据库管理系统
2. MySQL数据库
关系型数据库
- 建立在关系模型基础上的数据库,简单说,关系型数据库是由多张能互相连接的二维表组成的数据库
- 优点:都使用表结构,格式一致,易于维护;使用通用的SQL语言操作,使用方便,可用于复杂查询;数据存储在硬盘中,安全。
3. SQL
- 结构化查询语言,一门操作关系型数据库的编程语言
- 定义操作所有关系型数据库的统一标准
(1)语法
- SQL语句可以单行也可以多行,以分号结尾
- 不区分大小写
- 单行注释: --注释内容或#注释内容
- 多行注释:/注释/
(2)分类
(3)DDL
A. 操作数据库
B. 操作表
(4)DML
(5)DQL
A. 基础查询
B. 条件查询
-- 条件查询
select * from stu where age > 20;
select * from stu where age >= 20;
select * from stu where age >= 20 && age <= 30;
select * from stu where age >= 20 and age <= 30;
select * from stu where age BETWEEN 20 and 30;
select * from stu where hire_date BETWEEN '1998-8-8' and '1999-2-2';
select * from stu where age != 18;
select * from stu where age <> 18;
select * from stu where age in(18,20,22);
select * from stu where age =18 or age = 20 or age = 22;
select * from stu where english = null; -- 错误写法
select * from stu where english is null;
select * from stu where english is not null;
-- 模糊查询 like==========
-- 1.查询姓马的
SELECT * from stu where name like '马%';
-- 2.查询第二个字是花的
SELECT * from stu where name like '_花%';
-- 3.查询名字中包含德的
SELECT * from stu where name like '%德%';
C. 排序查询
-- 排序查询========
-- 1.ASC 升序
-- 2.DESC 降序
-- 年龄升序
SELECT * from stu order by age asc;
-- 数学成绩降序
SELECT * from stu order by math desc;
-- 数学成绩降序,数学成绩一样再按照英语成绩升序
SELECT * from stu order by math desc,english asc;
D. 分组查询
- 聚合函数:将一列数据作为一个整体,进行纵向计算
- 聚合函数分类:
- 聚合函数语法:
select 聚合函数名(列名) from 表
-- 聚合函数
-- 1. 班级学生总数
SELECT * from stu;
select count(id) from stu; -- count统计的列名不能为null
-- 2. 数学成绩最高分
SELECT max(math) from stu;
-- 3. 数学成绩最低分
SELECT min(math) from stu;
-- 4. 数学成绩平均分
SELECT avg(math) from stu;
-- 5. 数学成绩总分
SELECT sum(math) from stu;
-- 分组查询
SELECT * from stu;
-- 1.男女各自数学平均分
select sex, avg(math) from stu group by sex;
-- 2.男女各自数学平均分以及各自人数
select sex, avg(math), count(*) from stu group by sex;
-- 3.男女各自数学平均分以及各自人数,要求:分数低于70的不参与
select sex, avg(math), count(*) from stu where math >70 group by sex;
-- 4.男女各自数学平均分以及各自人数,要求:分数低于70的不参与,分组之后人数大于2
select sex, avg(math), count(*) from stu where math >70 group by sex having count(*)>2;
E. 分页查询
-- 分页查询
SELECT * from stu;
-- 1. 从0开始查询,查询3条数据
select * from stu limit 0,3;
-- 2. 每页显示3条数据,查询第一页数据
select * from stu limit 0,3;
-- 3. 每页显示3条数据,查询第二页数据
select * from stu limit 3,3;
-- 4. 每页显示3条数据,查询第三页数据
select * from stu limit 6,3;