MySql数据库整理----查询篇

数据库的分类
  • 关系型数据库
    • 用“表”保存数据,相关数据存入一张表中
  • 非关系型数据库
    • 键值数据库
    • 对象数据库
主流关系型数据库
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:关联数据查询
  • 从多张表中查询相应记录信息。
  • 关联查询的重点在于这些表中的记录的对应关系,这个关系也称之为连接条件(关联条件)

猜你喜欢

转载自blog.csdn.net/qq_41244651/article/details/79575868