增删查改-MySQL

系统 1958 0

查询:

在MySQL中,select的基本语法形式:

      
        select
      
      
         属性列表

    
      
      
        from
      
      
         表名和视图

    
      
      
        [
      
      
        where 条件表达式
      
      
        ]
      
      
        [
      
      
        group by 属性名 [having 条件表达式
      
      
        ]
      
      
        ]

    
      
      
        [
      
      
        order by 属性名 [asc|desc
      
      
        ]
      
      ]
    

  看看具体的用例:

首先看看表的结构:

      mysql
      
        >
      
      
        desc
      
      
        user
      
      
        ;


      
      
        +
      
      
        --
      
      
        --------+-----------------+------+-----+---------+----------------+
      
      
        |
      
       Field    
      
        |
      
       Type            
      
        |
      
      
        Null
      
      
        |
      
      
        Key
      
      
        |
      
      
        Default
      
      
        |
      
       Extra          
      
        |
      
      
        +
      
      
        --
      
      
        --------+-----------------+------+-----+---------+----------------+
      
      
        |
      
       id       
      
        |
      
      
        int
      
      (
      
        4
      
      ) unsigned 
      
        |
      
       NO   
      
        |
      
       PRI 
      
        |
      
      
        NULL
      
      
        |
      
       auto_increment 
      
        |
      
      
        |
      
       account  
      
        |
      
      
        varchar
      
      (
      
        10
      
      )     
      
        |
      
       NO   
      
        |
      
      
        |
      
      
        NULL
      
      
        |
      
      
        |
      
      
        |
      
       password 
      
        |
      
      
        varchar
      
      (
      
        10
      
      )     
      
        |
      
       NO   
      
        |
      
      
        |
      
      
        NULL
      
      
        |
      
      
        |
      
      
        +
      
      
        --
      
      
        --------+-----------------+------+-----+---------+----------------+
      
    

最简单的查找,查找出全部,*匹配所有数据,user就是表名:

      mysql
      
        >
      
      
        select
      
      
        *
      
      
        from
      
      
        user
      
      
        ;


      
      
        +
      
      
        --
      
      
        --+------------+----------+
      
      
        |
      
       id 
      
        |
      
       account    
      
        |
      
       password 
      
        |
      
      
        +
      
      
        --
      
      
        --+------------+----------+
      
      
        |
      
      
        1
      
      
        |
      
       xujianguo  
      
        |
      
       xjg      
      
        |
      
      
        |
      
      
        2
      
      
        |
      
       wenjian    
      
        |
      
       cwj      
      
        |
      
      
        |
      
      
        3
      
      
        |
      
       xiongsheng 
      
        |
      
       hxs      
      
        |
      
      
        +
      
      
        --
      
      
        --+------------+----------+
      
    

加入条件后的查询:

      mysql
      
        >
      
      
        select
      
      
        *
      
      
        from
      
      
        user
      
      
        ->
      
      
        where
      
       id 
      
        >
      
      
        1
      
      
        ->
      
      
        order
      
      
        by
      
       id 
      
        desc
      
      
        ;


      
      
        +
      
      
        --
      
      
        --+------------+----------+
      
      
        |
      
       id 
      
        |
      
       account    
      
        |
      
       password 
      
        |
      
      
        +
      
      
        --
      
      
        --+------------+----------+
      
      
        |
      
      
        3
      
      
        |
      
       xiongsheng 
      
        |
      
       hxs      
      
        |
      
      
        |
      
      
        2
      
      
        |
      
       wenjian    
      
        |
      
       cwj      
      
        |
      
      
        +
      
      
        --
      
      
        --+------------+----------+
      
    

带in关键字的查询:

  用in关键字可以判断某个字段的值是否在指定的集合中。

      mysql
      
        >
      
      
        select
      
      
        *
      
      
        from
      
      
        user
      
      
        ->
      
      
        where
      
       id 
      
        in
      
      (
      
        1
      
      , 
      
        3
      
      
        );


      
      
        +
      
      
        --
      
      
        --+------------+----------+
      
      
        |
      
       id 
      
        |
      
       account    
      
        |
      
       password 
      
        |
      
      
        +
      
      
        --
      
      
        --+------------+----------+
      
      
        |
      
      
        1
      
      
        |
      
       xujianguo  
      
        |
      
       xjg      
      
        |
      
      
        |
      
      
        3
      
      
        |
      
       xiongsheng 
      
        |
      
       hxs      
      
        |
      
      
        +
      
      
        --
      
      
        --+------------+----------+
      
      
        2
      
       rows 
      
        in
      
      
        set
      
       (
      
        0.02
      
       sec)
    

带between and的范围查询:

  between and关键字可以判断某个字段的值是否在指定的范围内。

      mysql
      
        >
      
      
        select
      
      
        *
      
      
        from
      
      
        user
      
      
        ->
      
      
        where
      
       id 
      
        between
      
      
        2
      
      
        and
      
      
        3
      
      
        ;


      
      
        +
      
      
        --
      
      
        --+------------+----------+
      
      
        |
      
       id 
      
        |
      
       account    
      
        |
      
       password 
      
        |
      
      
        +
      
      
        --
      
      
        --+------------+----------+
      
      
        |
      
      
        2
      
      
        |
      
       wenjian    
      
        |
      
       cwj      
      
        |
      
      
        |
      
      
        3
      
      
        |
      
       xiongsheng 
      
        |
      
       hxs      
      
        |
      
      
        +
      
      
        --
      
      
        --+------------+----------+
      
    

带like的字符匹配查询:

  like关键字可以匹配字符串。

      mysql
      
        >
      
      
        select
      
      
        *
      
      
        from
      
      
        user
      
      
        ->
      
      
        where
      
       account 
      
        like
      
      
        '
      
      
        wen%
      
      
        '
      
      
        ;


      
      
        +
      
      
        --
      
      
        --+---------+----------+
      
      
        |
      
       id 
      
        |
      
       account 
      
        |
      
       password 
      
        |
      
      
        +
      
      
        --
      
      
        --+---------+----------+
      
      
        |
      
      
        2
      
      
        |
      
       wenjian 
      
        |
      
       cwj      
      
        |
      
      
        +
      
      
        --
      
      
        --+---------+----------+
      
    

分组查询:

  group by关键字与group_concat函数一起使用,进行分组显示。

      mysql
      
        >
      
      
        select
      
      
        *
      
      
        from
      
      
        user
      
      
        ;


      
      
        +
      
      
        --
      
      
        --+------------+----------+
      
      
        |
      
       id 
      
        |
      
       account    
      
        |
      
       password 
      
        |
      
      
        +
      
      
        --
      
      
        --+------------+----------+
      
      
        |
      
      
        1
      
      
        |
      
       xujianguo  
      
        |
      
       xjg      
      
        |
      
      
        |
      
      
        2
      
      
        |
      
       wenjian    
      
        |
      
       cwj      
      
        |
      
      
        |
      
      
        3
      
      
        |
      
       xiongsheng 
      
        |
      
       hxs      
      
        |
      
      
        |
      
      
        4
      
      
        |
      
       zheng      
      
        |
      
       cwj      
      
        |
      
      
        +
      
      
        --
      
      
        --+------------+----------+
      
      
        

mysql
      
      
        >
      
      
        select
      
       password, group_concat(account) 
      
        from
      
      
        user
      
      
        ->
      
      
        group
      
      
        by
      
      
         password;


      
      
        +
      
      
        --
      
      
        --------+-----------------------+
      
      
        |
      
       password 
      
        |
      
       group_concat(account) 
      
        |
      
      
        +
      
      
        --
      
      
        --------+-----------------------+
      
      
        |
      
       cwj      
      
        |
      
       wenjian,zheng         
      
        |
      
      
        |
      
       hxs      
      
        |
      
       xiongsheng            
      
        |
      
      
        |
      
       xjg      
      
        |
      
       xujianguo             
      
        |
      
      
        +
      
      
        --
      
      
        --------+-----------------------+
      
    

使用count()函数查询:

      mysql
      
        >
      
      
        select
      
      
        count
      
      (
      
        *
      
      ) 
      
        from
      
      
        user
      
      
        ;


      
      
        +
      
      
        --
      
      
        --------+
      
      
        |
      
      
        count
      
      (
      
        *
      
      ) 
      
        |
      
      
        +
      
      
        --
      
      
        --------+
      
      
        |
      
      
        4
      
      
        |
      
      
        +
      
      
        --
      
      
        --------+
      
    

使用max()函数查询:

      mysql
      
        >
      
      
        select
      
      
        max
      
      (id) 
      
        from
      
      
        user
      
      
        ;


      
      
        +
      
      
        --
      
      
        -------+
      
      
        |
      
      
        max
      
      (id) 
      
        |
      
      
        +
      
      
        --
      
      
        -------+
      
      
        |
      
      
        4
      
      
        |
      
      
        +
      
      
        --
      
      
        -------+
      
    

  连接查询:

  将两个或者两个以上的表按照某个条件连接起来。

      mysql
      
        >
      
      
        select
      
      
        user
      
      
        .id, account, usermessage.message

    
      
      
        ->
      
      
        from
      
      
        user
      
      
        , usermessage

    
      
      
        ->
      
      
        where
      
      
        user
      
      .id 
      
        =
      
      
         usermessage.id;


      
      
        +
      
      
        --
      
      
        --+------------+----------+
      
      
        |
      
       id 
      
        |
      
       account    
      
        |
      
       message  
      
        |
      
      
        +
      
      
        --
      
      
        --+------------+----------+
      
      
        |
      
      
        1
      
      
        |
      
       xujianguo  
      
        |
      
       hello    
      
        |
      
      
        |
      
      
        2
      
      
        |
      
       wenjian    
      
        |
      
       love you 
      
        |
      
      
        |
      
      
        3
      
      
        |
      
       xiongsheng 
      
        |
      
       yes      
      
        |
      
      
        |
      
      
        4
      
      
        |
      
       zheng      
      
        |
      
       no no no 
      
        |
      
      
        +
      
      
        --
      
      
        --+------------+----------+
      
    

  子查询:

  也就是说查询语句里面嵌套着另外一个查询语句。

      mysql
      
        >
      
      
        select
      
      
        *
      
      
        from
      
      
        user
      
      
        ->
      
      
        where
      
       id 
      
        in
      
       (
      
        select
      
       id 
      
        from
      
       usermessage 
      
        where
      
       id 
      
        in
      
      (
      
        1
      
      , 
      
        2
      
      
        ))

    
      
      
        ->
      
      
         ;


      
      
        +
      
      
        --
      
      
        --+-----------+----------+
      
      
        |
      
       id 
      
        |
      
       account   
      
        |
      
       password 
      
        |
      
      
        +
      
      
        --
      
      
        --+-----------+----------+
      
      
        |
      
      
        1
      
      
        |
      
       xujianguo 
      
        |
      
       xjg      
      
        |
      
      
        |
      
      
        2
      
      
        |
      
       wenjian   
      
        |
      
       cwj      
      
        |
      
      
        +
      
      
        --
      
      
        --+-----------+----------+
      
    

  插入:

  在MySQL中,可以通过不指定具体字段名为表插入记录,其基本语句形式:

      
        insert
      
      
        into
      
       表名 
      
        values
      
      (值1, 值2......)
    
      mysql
      
        >
      
      
        insert
      
      
        into
      
       usermessage 
      
        values
      
      (
      
        5
      
      , 
      
        '
      
      
        no problem
      
      
        '
      
      
        );

Query OK, 
      
      
        1
      
       row affected (
      
        0.09
      
       sec)
    

这里就隐含了对应的值对应插入的规则。

  当然也可以指定插入,其基本的语句格式:

      
        insert
      
      
        into
      
       表名(属性1, 属性2......) 
      
        values
      
      (值1, 值2......)
    
      mysql
      
        >
      
      
        insert
      
      
        into
      
       usermessage(message, id) 
      
        values
      
      ("enen", 
      
        6
      
      
        );

Query OK, 
      
      
        1
      
       row affected (
      
        0.09
      
       sec)
    

更新:

  在MySQL中,update语句的基本语法形式:

      
        update
      
      
         表名

    
      
      
        set
      
       属性名1
      
        =
      
      值1, 属性名2
      
        =
      
      
        值2......

    
      
      
        where
      
       条件表达式;
    
      mysql
      
        >
      
      
        update
      
      
         usermessage

    
      
      
        ->
      
      
        set
      
       message 
      
        =
      
      
        '
      
      
        nimei
      
      
        '
      
      
        ->
      
      
        where
      
       id 
      
        =
      
      
        2
      
      
        ;

Query OK, 
      
      
        1
      
       row affected (
      
        0.11
      
       sec)
    

删除:

  在MySQL中,delete语句的基本语法形式为:

      
        delete
      
      
        from
      
       表名 
      
        [
      
      
        where 条件表达式
      
      
        ]
      
      mysql
      
        >
      
      
        delete
      
      
        from
      
       usermessage 
      
        where
      
       id 
      
        =
      
      
        5
      
      
        ;

Query OK, 
      
      
        1
      
       row affected (
      
        0.10
      
       sec)
    

增删查改-MySQL


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论