02、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;

寫在最後:

        1、本人由於在學校剛學,博客也是邊學習,邊更新,寫的不好的地方,希望各位大佬指正;

         2、有時候學業繁忙,更新會比較慢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章