MySQL所有語句集合


mysql對庫的基本操作

net start mysql 啟動數據庫服務
mysql -h localhost -a root -p 使用命令登陸
net stop mysql 關閉數據庫服務
show databases 查看mysql中以存在的數據庫
create database 數據庫名 創建數據庫
create database(if not exists) 庫名 檢查數據庫名稱是否存在,不存在創建該數據庫,存在則不創建
use 數據庫名 使用數據庫

select database()

select sohema()

獲取當前使用的數據庫

drop database 數據庫名 刪除數據庫
drop database if exists 庫名 判斷數據庫存在刪除

mysql對表的操作

create table 表名 (字段名 數據類型 約束條件,....) 創建表
PRIMARY KEY 定義主鍵約束
AUTO_increment 定義自增屬性
NOT NULL

不為空約束

unique 唯一約束

mysql對表中數據的基本操作

  1. 使用in關鍵字查詢指定記錄

    select  *  from  表名    where    字段名    in    (條件);可以有多個用逗號隔開

    2018-04-28_131941.png

  2. 使用NOT in 查詢指定記錄

    select     *     from    表名    where    字段名    not    in    (條件查詢所不能滿足的數據多個條件用逗號隔開)

    2018-04-28_132548.png

  3. 帶between     and 的范圍查詢

    select     *    |字段名    from    表名    where    指定字段的名字    between    值    and    值

    2018-04-28_133535.png

  4. 帶like的字符匹配查詢

    select     *    from    表名    where    指定字段    like    想要匹配的值

    2018-04-28_133828.png

  5. 帶有%和_結合like查詢

    select    *    字段名    from    表面    where    字段名    like    “_值”    |    "%值"    (_代表單個字符,%代表多個字符)

    2018-04-28_134304.png

  6. 查詢空值

    select    *    from    表名    where    字段    is    null

    2018-04-28_134452.png

  7. 查詢非空值

    select    *    from    表名    where    字段    is    not    null

    2018-04-28_134634.png

  8. 使用and實現多條件查詢

    select    *    from    表名      where     字段名=值1    and    字段名=值2

    2018-04-28_134915.png

  9. 使用or實現多條件查詢

    select    *    from    表名    where    字段名 =值1    or    字段名 =值2

    2018-04-28_135208.png

  10. 篩選重復的記錄

    select    distinct    字段名    from    表名

對表中數據深入查詢

    1.對表中數據深入查詢

        select    *    |    字段名    from    表名    order    by    排序字段

2018-04-28_135702.png

    select    *    |字段名    from    表名    order    by    排序字段1    排序字段2(選排序第一個,然后排序后面的,

從大到小,每個字段后面都要加上desc)

        

    2.指定排序的順序

        select    *    |字段名    from    表名    order    by    排序字段     desc/asc(asc從小到大,desc從大到小)

2018-04-28_140227.png

    3.分組查詢(將相同的數據放入一組)

    (1)select    字段名    | *    ,group_concat(    *   |    字段名)  from     表名    group    by    分組字段    

2018-04-28_142659.png

 

     4.使用having過濾分組

            select     字段名    ,    group_concat(字段名2) as    別名    from    表名    group    by    字段名    having    count(*|字段名2)>指定數    (having是二次分組,判斷大於指定數的記錄)

2018-04-28_143911.png

    5.分組后統計

            select     字段名,    count(*) as    別名    from    表名    group    by    分組字段    with    rollup

        2018-04-28_181935.png

    6.使用limit限制查詢數量

            select     *    from    表名    limit    n,m(顯示從n(n從0開始)+1行開始)總共顯示m條數據

2018-04-28_182259.png

    7.使用集合函數查詢

        (1)sum()    求和函數的使用

                select    sum(字段名)    as    別名    from    表名

                    2018-04-28_182514.png

        (2)avg()    求平均值

                select    avg(字段名)    from    表名

2018-04-28_182807.png

        (3)avg函數和group by一起使用求每個分組的平均值

                select    分組字段    ,    avg(字段名)    from    表名    group    by    分組字段

2018-04-28_183054.png

        (4)max()函數求指定列的最大值

                select    max(指定列) from    表名    

2018-04-28_183248.png

        (5)min()函數指定列最小值

                select    min    (指定列)    from    表名

2018-04-28_202933.png

連接查詢

    1.連接是關系型數據庫模型的主要特點連接查詢是關系型數據庫中最主要的查詢,主要包括內鏈接和外連接。以及復合條件查詢,通過連接運算符可以實現多表查詢

        (1)內鏈接語法

                    連接查詢是查詢多個表中相關聯的數據行,內鏈接返回查詢結果集合中的僅是符合查詢條件和連接條件的數據

                    A.    select    表名1.字段名1,    表名1,字段名2,表名2.    字段名1,表名2.字段名2    from    表名1,表名2    where    表明1.字段?=表名2.字段?(字段名?代表兩張表共有的字段名)

                    B.    select    表名1.字段名,    表名2.字段名2    from    表名1    inner    join    表名2    on    表名1.字段?=表名2.字段?(字段名?代表兩張表共有的字段名)

        (2)外聯接查詢

                在內鏈接中我們知道內連接查詢僅是符合查詢條件和連接條件的數據,但有時候需要包含沒有關聯的行中數據即返回查詢結果集合中的不僅包含符合連接條件的行,而且還包括左表,右表中的所有數據行

                外聯接分為:左連接    右連接

                (主表)左連接的結果包括left    outer關鍵字語句中指定的左表的所有行。而不僅僅是連接列所匹配的行,如果左表的某行在右表中沒有匹配的行。右表的所有選擇列均為空值

                語法:(左)

                        select    表1    .字段名,    表名2.字段名    from    表1    left    outer    join    表2    on    表1.字段名?=表2.字段名?

                    (右)

                        select                                                                               right    outer    join

外鍵約束

        foreign    key    外鍵約束,外鍵作用保證數據的唯一一致性和完整性

        子表外鍵字段必須和主表中主鍵字段數據類型保持一致

    (1)建表時,設置外鍵

                constraint 外鍵名稱    foreign key (外鍵字段) references 主表名(主鍵字段名稱)        (constraint    外鍵名稱    可選默認mysql會自動創建)

    (2)刪除外鍵

                alter    table    表名    drop    foreign    key    外鍵名

    (3)動態添加外鍵

                alter    table    表名    add    foreign    key(外鍵字段)    references    主表名 (主鍵字段)        (在添加外鍵時必須確認表中數據合法)

 

子查詢

        (1)帶exists的子查詢

                    select    *    from    表名    where    exists(子查詢語句);        (子查詢只要查詢出的記錄>=1,則執行外部查詢)

2018-04-29_161534.png

        (2)帶in關鍵字的子查詢

                    select    *    from    表名    where    字段名    in(子查詢語句)        (相同數值匹配——》顯示相同的數值)

        2018-04-29_163435.png

        (3)帶比較運算符的子查詢

                    select    字段名    from    子表名    where    字段名    >    |     =    |    <(子查詢語句)        (子查詢語句里面得出的結果只能是一條,否則無法比較)

        (4)帶any    some    all關鍵字的子查詢

                    select    字段名1    from    表名1    where    字段名1    >any(select    字段名    from    表名2)

2018-04-29_164432.png

運算符 any some all
>   >= 最小值 最小值 最大值
<   <= 最大值 最大值 最小值
= 任意值 任意值  
!=     任意值

與any    some不同的是all需要用時滿足所有內層的查詢條件

 

聯合查詢

        聯合查詢結果(查詢兩個表指定字段合並起來的數據)(合並時兩個表對應的列數和數據類型必須要相同)

            select    字段名    from    表名1    union    all    select    字段名    from    表2    (加了all顯示重復的數據,不加則不顯示重復的數據)

2018-04-29_165237.png

索引

    索引的功能就是加快對表中的數據的查詢速度

    (1)創建索引

                a.    創建表時創建索引    index    索引名(指定字段)

                b.    添加索引    create    index    索引名    on    表名(指定字段)

2018-04-29_170224.png

                c.    刪除索引    drop    index    索引名    on    表名

2018-04-29_170457.png

                b.    查看索引    show    index    from    表名

 

mysql存儲過程概念

        存儲過程就是在數據庫中定義一些sql語句的集合,然后之間調用這些存儲過程來執行sql語句,功能就是避免開發人員重復編寫sql語句。從而可以減少客戶端和服務器端的數據傳輸

        (1)創建存儲過程的語法

                    create    procedure    存儲過程(參數列表)

                                begin    //開始

                                            存儲過程體(一種合法有效的sql語句)

                                end    //代表結束


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM