sql基本操作DQL

sql基本操作DQL–数据查询语言

1.1查询数据的基本语法

SELECT 字段名 1, 字段名 2, 字段名 3, ... FROM 表名;

 对列和表同时指定别名
SELECT 字段名 1 AS 别名, 字段名 2 AS 别名... FROM 表名 AS 表别名;

1.2清除重复值distinct

SELECT DISTINCT 字段名 FROM 表名;

可以作用于单列,也可以作用于多列

1.3查询结果参与运算

 某列数据和固定值运算
SELECT 列名 1 + 固定值 FROM 表名;

某列数据和其他列数据参与运算
SELECT 列名 1 + 列名 2 FROM 表名;

SELECT 列名 1 + 列名 2 FROM 表名;

***1.4条件查询

SELECT 字段名 FROM 表名 WHERE 条件;

(比较运算符)条件: >,<,<=,>=,=,<> --不等于 
between ...and  --范围
IN  --表示多个值
	 in 关键字
	SELECT 字段名 FROM 表名 WHERE 字段 in (数据 1, 数据 2...);
	in 里面的每个数据都会作为一次条件,只要满足条件的就会显示

LIKE '%张%'  --模糊查询
	通配符: % 匹配任意多个字符  _ 匹配一个字符
IS NULL  --查询某一列上为NULL的记录,不能用 =NULL
	
逻辑运算符
and 或 && 
or 或 ||
not 或 !

***1.5特殊查询

*排序查询
*聚合函数
*分组查询
*分页查询

select 字段 odder by 字段 asc(desc) -- 字段里面要是数值; 这里有第二排序规则
   
   聚合函数:5个 count
   			1.count:计算记录的个数
            2.max:计算列中的最大值
            3.min:计算列中的最小值
            4.sum:计算列中数据的和
            5.avg:计算列中数据的平均值
   
   select 分组字段,聚合函数() group by 分组字段;

   分页查询:limit (n-1)*页显示条数,页显示条数  第n页

2.约束
3.多表之间的关系
4.范式
5.数据库的备份与还原

排序查询-order by

 select * from student order by meth;           -- 不写则默认升序

 select * from student order by meth asc;       -- 数学成绩升序排列

 select * from student order by meth desc;       --

 select * from student order by meth asc,english asc;    -- english asc 第二排序,如果第一排序条件相同则按第二排序

聚合函数:将一列数据作为一个整体,进行纵向计算. – 聚合函数的计算排除非空值.需要使用ifnull()替换.

select count(name) from student;
select count(1) from student; -- 查询第一列的记录个数,一般包括有主键,所以查询速度快.
select count(*) from student;       -- 只要数据中的有一列有完整数据就会被计算入个数.
注意:聚合函数的计算,排除null值
解决方案:不选有null的,ifnull替换.
格式:select 函数(列) from 表; -- 注意是对数字进行的计算.

分组查询:group by:将列数组的信息,分组成若干组进行查询.

    select sex,avg(math) from student group by sex; -- 计算男女同学数学成绩的平均分.
      注意:分组字段:只能写入分组字段,或者是聚合函数.
    select sex,avg(math) from student where math>70 group by sex;
    select sex,avg(math) from student where math>70 group by sex;
    select sex,avg(math) from student where math>70 group by sex having count(id)>2;
        where 和having 的区别:
            where 在分组之前进行过滤,不能使用聚合函数.如果不满足条件则不参与分组
            having 在分组之后进行过滤,可以使用聚合函数.

分页查询:limit

    1.limit 开始的索引,每页的条数.
        每页显示三条数据
        select * from student limit 0,3; -- 第1页
        select * from student limit 3,3; -- 第2页
    2.-- 公式:
        开始的索引= (当前的页码-1)*每页显示的条数.
        select * from student limit (n-1)*10,10;  -- 每页10条,当前为第n页.
    3.limit操作是Mysql特有的分页操作.

你可能感兴趣的:(java复习)