数据库的分类
- 关系型数据库
- 用“表”保存数据,相关数据存入一张表中
- 非关系型数据库
- 键值数据库
- 对象数据库
主流关系型数据库
Oracle-----甲骨文-----收费
DB2-----IBM公司-----应用于大型系统,Unix / linux
SQL Server-----微软-----只能在Windows下运行 .net(C#)
了解一下背景信息,下来直接上数据库中最常用的操作,select语句。
SELECT查询语句
1:查询所有数据
语法:
SELECT
字段名
FROM
表名
例:SELECT name FROM user;
2:根据条件查 WHERE
- where子句用于规定选择的标准
- 如果需要有条件的从表中选取数据,可将where子句添加到select语句的后面。
- where子句是决定一条查询语句最后显示多少条目数的关键。
在where中我们会使用一些运算符,大致与Java相同。
1:and、or
例:select ename from emp where mgr=7698 and comm>1000;
2:like
3:> < >= <= = != <>(不等于)
4:is null, is not null, in,not
5:between x and y;
语法:
SELECT
字段名
FROM
表名
WHERE
条件(一般是以字段=值的形式出现)
一个条件查询
SELECT name FROM user WHERE id=1;
多条件 并关系 AND 查询
SELECT name FROM user WHERE id=1 AND deptno=2;
多条件 或关系 OR 查询
SELECT name FROM user WHERE id=1 OR deptno=2;
范围查询 BETWEEN….AND
SELECT name FROM user WHERE id BETWEEN 11 AND 15;
AND OR
- 在where子句中两个或多个条件结合起来
- 结合的结果与Java中的&& || 一致
- 在不明确优先级的情况下,请使用()
3:模糊查询 LIKE
语法:
SELECT
字段名
FROM
表名
WHERE
条件(一般是以字段=值的形式出现)
%通配符代表任意多个字符
SELECT name,id FROM user WHERE Name like ‘%超’;
_通配符代表任意一个字符
SELECT name,id FROM user WHERE Name like ‘%哈哈‘;
4:排序 ORDER BY
- 用于根据指定的列对结果集进行排序
- 排序方式:默认升序;小———->大
- asc为升序,desc降序
- order by语句必须写在where语句之后
语法:
SELECT
字段名
FROM
表名
WHERE
条件(一般是以字段=值的形式出现)
ORDER BY
ASC或者DESC
按照价格升序排列
SELECT name FROM user ORDER BY id ASC;
按照价格降序排列
SELECT name FROM user ORDER BY id DESC;
按照两列进行排序,前面的为主要的
SELECT name FROM user ORDER BY id,deptno;
5:统计函数(聚合函数)
sum();返回列的总数(总额)
SELECT sum(sal) FROM emp;
avg();返回数值列的平均值,null 不包含在计算中。
SELECT sum(sal),avg(sal) FROM emp;
count();返回指定列的总数目,null不计数。
SELECT count(id) FROM emp;
SELECT count(*) FROM user WHERE username='1' AND password='11';
count(*)指结果级的条目数,返回值是1或0
max();返回一列中的最大值,null不计算
SELECT max(Price) FROM Ca
min();返回这一列中的最小值,null不计算
SELECT min(Price) FROM Car
6:分组查询 GROUP BY
分组查询通常和聚合函数一起使用;
GROUP BY 必须在 WHERE 和 ORDER 之间;
一条select语句分组查询,select后面跟随的字段会存在普通的字段和聚合函数,那么分组条件一定包含select后面的普通字段。
SELECT 列名,.......,聚合函数(一个或多个)
FROM 表名
WHERE 过滤条件
GROUP BY 分组排序
ORDER BY 排序
6.1:有条件的分组统计 HAVING 子句
查询部门的平均工资,前提是该部门的平均工资高于2000
SELECT avg(sal) avg,deptno
FROM emp
GROUP BY deptno
HAVING avg>2000;
7:分页查询 LIMIT
- LIMIT begin,size
- begin 是本页数据的起始行,从0开始(数据的条数)
size 是指本页显示的总行数(数据的条数)
查询所有商品,并按照单价正序排列,显示其中第一页(每页5条)
SELECT
price
FROM
t_item
GROUP BY
price
LIMIT 0,5;
8:去重查询
SELECT distinct Brand FROM Car;
9:子查询
- 1、子查询是指,在DML语句中,嵌套了另外一个查询(DQL)语句
- 2、某些DDL也可以使用子查询。
- 3、子查询语句,称为内部查询,而包含子查询的查询语句,称为外部查询。
- 4、常用的子查询会出现两种情况
- 外部查询的where子句使用子查询。
- 子查询在from后面,用子查询的结果充当一张表。
- 5、子查询可以在使用表达式的任何地方使用,但是必须在括号中关闭。
- 6、子查询可以嵌套在另外一个子查询中。
10:关联数据查询
- 从多张表中查询相应记录信息。
- 关联查询的重点在于这些表中的记录的对应关系,这个关系也称之为连接条件(关联条件)