MySQL数据库基本操作(二)

一、筛选条件:

   (一)、比较运算符:

          1、等于:         = 注意!不是 ==

          2、不等于:     !=<>

          3、大于:         >

          4、大于等于: >=

          5、小于:           <

          6、小于等于: <=

          7、IS NULL

          8、IS NOT NULL

  (二)、逻辑运算符:

          与 AND            或 OR             非 NOT

 (三)、其他操作:

          1、排序(order by):

SELECT columns FROM tb_name ORDER BY col [asc/desc] ;
-- 正序 asc(默认)  -- 倒序 desc

          2、限制(limit):

SELECT columns FROM tb_name  LIMIT start, count ;
-- LIMIT count;
-- LIMIT start,count;

           3、去重(distinct):

SELECT DISTINCT filer_name FROM tb_name;

            4、模糊查询 like "%"

                   任意多个字符: %

                   任意一个字符:  _

            5、查询范围:

                  (1)、连续范围:BETWEEN a AND b

                                 a <= value <= b

                  (2)、间隔查询:IN

                                  a in (10, 20, 30 [...])

二、聚合与分组(重难点):

      (一)、常用聚合函数:

-- 统计个数
COUNT(column)

-- 最大值
MAX(column)

-- 最小值
MIN(column)

-- 求和
SUM(column)

-- 平均值
AVG(column)

-- 列出字段全部值
GROUP_CONCAT(column)

       (二)、分组查询(group by):

SELECT group_column, aggregations
FROM tb_name
GROUP BY group_column;

-- 在分组的情况下,只能够出现分组字段和聚合字段
-- 其他的字段没有意义,会报错!

       (三)、聚合筛选(having):

SELECT group_column, aggregations 
    FROM tb_name
    GROUP BY group_column
    HAVING conditions;
-- 加having条件表达式,可以对输出的结果做出限制


          假如说:
                       一个查询语句中同时包含了别名(as),聚合函数, where, having
               那么他们的执行顺序是

                      1、先是执行:where
                      2、然后执行:聚合函数和别名 
                      3、最后执行:having
三、子查询(了解):

        (一)、概念:将一个查询的结果留下来用于下一次查询 ( select 中嵌套 select )。

        (二)、要求:1、嵌套在查询内部;

                                 2、必须始终出现在圆括号内。

-- 求出学生的平均年龄
select avg(age) from student;

-- 查找出大于平均年龄的数据
select * from student where age > 20;

--#将求出的平均年龄的SQL语句用于查找大于平均年龄的语句中
select * from student where age > (select avg(age) from student);

四、连接查询(了解):

 (一)、内连接(inner join)

         1、无条件内连接

                    无条件内连接,又名交叉连接/笛卡尔连接

                    第一张表种的每一项会和另一张表的每一项依次组合

select * from student [inner] join grades;

         2、有条件内连接

                  在无条件内链接的基础上,加上一个on子句

                  当连接的时候,筛选出那些有实际意义的记录来进行组合

select * from student inner join grades on number = student_number;

 (二)、外连接({left | right} join)

        1、左外连接: (以左表为基准)

                 两张表做连接的时候,在连接条件不匹配的时候

                 留下左表中的数据,而右表中的数据以NULL填充

select * from student left join grades on number=student_number;

        2、右外连接: (以右表为基准)

                 对两张表做连接的时候,在连接条件不匹配的时候

                 留下右表中的数据,而左表中的数据以NULL填充

select * from grades right join student on number=student_number;

MySQL数据库基本操作(一)

MySQL数据库基本操作(三)

写在最后:

        1、本人由于在学校刚学,博客也是边学习,边更新,写的不好的地方,希望各位大佬指正;

         2、有时候学业繁忙,更新会比较慢。

发布了11 篇原创文章 · 获赞 18 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_39828850/article/details/82222843