SQL语句汇总(二)——数据修改、数据查询

系统 1467 0

SQL语句第二篇,不说废话直接开始吧。

 

首先创建一张表如下,创建表的方法在上篇介绍过了,这里就不再赘述。

 

添加新数据:

      
        INSERT
      
      
        INTO
      
      
        <
      
      表名
      
        >
      
       (
      
        <
      
      列名列表
      
        >
      
      ) 
      
        VALUES
      
       (
      
        <
      
      值列表
      
        >
      

如:

      
        INSERT
      
      
        INTO
      
       t_student (student_id,student_name,student_age,student_sex) 
      
        VALUES
      
       (
      
        1
      
      ,
      
        '
      
      
        大毛
      
      
        '
      
      ,
      
        18
      
      ,
      
        '
      
      
      
        '
      
      );
    

其中列名可以省略,省略之后要求插入的值必须与列一一对应:

      
        INSERT
      
      
        INTO
      
       t_student 
      
        VALUES
      
       (
      
        2
      
      ,
      
        '
      
      
        王二
      
      
        '
      
      ,
      
        20
      
      ,
      
        '
      
      
      
        '
      
      );
    

多行数据添加:

      
        INSERT
      
      
        INTO
      
       t_student 
      
        VALUES
      
       (
      
        3
      
      ,
      
        '
      
      
        张三
      
      
        '
      
      ,
      
        22
      
      ,
      
        '
      
      
      
        '
      
      
        ),

                 (
      
      
        4
      
      ,
      
        '
      
      
        李四
      
      
        '
      
      ,
      
        17
      
      ,
      
        '
      
      
      
        '
      
      
        ),

                 (
      
      
        5
      
      ,
      
        '
      
      
        王五
      
      
        '
      
      ,
      
        23
      
      ,
      
        '
      
      
      
        '
      
      );
    

SQL语句汇总(二)——数据修改、数据查询

 

更改数据:

      
        UPDATE
      
       表名 
      
        SET
      
       列1
      
        =
      
      新值1,列2
      
        =
      
      新值2 
      
        WHERE
      
       过滤条件
    

假如要修改李四的年龄为21岁

      
        UPDATE
      
       t_student 
      
        SET 
      
      student_age
      
        =
      
      
        21
      
      
        WHERE 
      
      student_name
      
        =
      
      
        '
      
      
        李四
      
      
        '
      
      ;
    

SQL语句汇总(二)——数据修改、数据查询

注:修改多个列的值时用逗号隔开。要想设置某一列的值为空,只需让<列名>=NULL 即可。WHERE表示过滤条件。

 

删除数据(行):  

      
        DELETE
      
      
        FROM
      
       表名 
      
        WHERE
      
       过滤条件
    

现要删除20到22岁的学生信息:

      
        DELETE
      
      
        FROM
      
       t_student 
      
        WHERE
      
       student_age 
      
        BETWEEN
      
      
        20
      
      
        AND
      
      
        22
      
      ;
    

WHERE的判断条件之后会更详细的介绍。

删除除了DELETE还有一种方法 TRUNCATE,写法:

      
        TRUNCATE
      
      
        TABLE
      
       表名
    

二者区别在于:

DELETE会记录日志,意味着删除后的数据还可以恢复,但是效率低。TRUNCATE不会记录日志,删除后的数据不能恢复,但是效率高。需要注意的是,TRUNCATE不能用于有外键约束引用的表。

 

查询操作

分类:

–投影操作
  指定查询结果中能显示哪些列
–选择操作
  指定哪些行出现在结果中
–排序操作
  指定查询的结果以什么样的顺序显示
 
投影操作:
          
            SELECT
          
           列1,列2 
          
            FROM
          
           表名
        

多个列中间用逗号隔开,如果选择所有列可以用*号简写。

还是此表:

SQL语句汇总(二)——数据修改、数据查询

现在只想要查看姓名和年龄列:

          
            SELECT
          
           student_name,student_age 
          
            FROM
          
           t_student;
        

SQL语句汇总(二)——数据修改、数据查询

注意这里不是把其他列删除了,而是只显示我们想看见的部分。

          
            SELECT
          
           CONCAT(student_name,
          
            '
          
          
            ——
          
          
            '
          
          ,student_age) 
          
            '
          
          
            组合值
          
          
            '
          
          
            FROM
          
           t_student;
        

CONCAT,可以将列与列之间用想要的符号连接起来:

SQL语句汇总(二)——数据修改、数据查询

 

排除重复——DISTINCT

现给原表加入一班级列:

SQL语句汇总(二)——数据修改、数据查询

按照之前方法查询班级列得到:

SQL语句汇总(二)——数据修改、数据查询

但是我们只想查看具体有哪些班级,这里就需要用到去重,也就是 DISTINCT

          
            SELECT
          
          
            DISTINCT
          
           student_class 
          
            FROM
          
           t_student;
        

 

返回限定行数的查询——LIMIT

LIMIT后面参数为1或2个:

LIMIT N 表示从第一行开始返回N行结果,LIMIT i,N 表示从第i+1行开始返回N行结果。

例:

      
        SELECT
      
      
        *
      
      
        FROM
      
       t_student LIMIT 
      
        3
      
      ;
    

      
        SELECT
      
      
        *
      
      
        FROM
      
       t_student LIMIT 
      
        2
      
      ,
      
        3
      
      ;
    

*注:LIMIT很重要,它是之后做数据表格分页的关键。

 

选择操作——WHERE:

分为单条件选择与多条件选择

单条件选择标准结构:

      
        SELECT
      
       列1, 列2 
      
        FROM
      
       表名 
      
        WHERE
      
       列3 
      
        =
      
       值 
    

关系运算符包括:>  >=  <  <=  =  !=

多条件选择标准结构:

      
        SELECT
      
       列A, 列B 
      
        FROM
      
        WHERE
      
       条件1 (
      
        AND
      
      或者OR) 条件2
    

其中AND表示并且,OR表示或者。

 

选择范围——BETWEEN

如:

      
        SELECT
      
      
        *
      
      
        FROM
      
       t_student 
      
        WHERE
      
       student_age 
      
        BETWEEN
      
      
        20
      
      
        AND
      
      
        23
      
      ;
    

BETWEEN后的值为从下限到上限。

 

定义集合——IN或NOT IN

现在想查看年龄为17、20、23的学生信息:  

      
        SELECT
      
      
        *
      
      
        FROM
      
       t_student 
      
        WHERE
      
       student_age 
      
        IN
      
       (
      
        17
      
      ,
      
        20
      
      ,
      
        23
      
      );
    

反之NOT IN就是选择不包括在集合里的学生信息。

 

模糊查询——LIKE

为了更好的解释模糊查询,这里重新建张表:

SQL语句汇总(二)——数据修改、数据查询

这里姓王的兄弟们躺枪...别介意。

首先先说下占位符与通配符:

占位符 "_",表示任何单个字符。

通配符 "%",表示包含零或多个字符。

下面就来用模糊查询逐一选中我们想要的行。

名字只有两个字的:

      
        SELECT
      
      
        *
      
      
        FROM
      
       t_student 
      
        WHERE
      
       student_name 
      
        LIKE
      
      
        '
      
      
        __
      
      
        '
      
      ;
    

这里可能看不清,引号里实际是两个占位符。

所有姓王的:

      
        SELECT
      
      
        *
      
      
        FROM
      
       t_student 
      
        WHERE
      
       student_name 
      
        LIKE
      
      
        '
      
      
        王%
      
      
        '
      
      ;
    

最后一个字 是“王”的:

      
        SELECT
      
      
        *
      
      
        FROM
      
       t_student 
      
        WHERE
      
       student_name 
      
        LIKE
      
      
        '
      
      
        %王
      
      
        '
      
      ;
    

只要是名字中有“王”字的:

      
        SELECT
      
      
        *
      
      
        FROM
      
       t_student 
      
        WHERE
      
       student_name 
      
        LIKE
      
      
        '
      
      
        %王%
      
      
        '
      
      ;
    

SQL语句汇总(二)——数据修改、数据查询

这下模糊查询就很明白了吧,当然还有其他组合,大家可以自己尝试。

 

处理空值数据:

判断条件不能用列名=NULL,而是要用IS NULL或IS NOT NULL。

标准写法:

      
        SELECT
      
      
        *
      
      
        FROM
      
       t_student 
      
        WHERE
      
       性别 
      
        IS
      
      
        NULL
      
    

 

排序操作——ORDER BY:

使用ORDER BY时,列名上指定ASC或DESC。ASC表示正序,DESC表示倒序。如果不指定则默认为正序。

按年龄排:

      
        SELECT
      
      
        *
      
      
        FROM
      
       t_student 
      
        ORDER
      
      
        BY
      
       student_age 
      
        ASC
      
      ;
    

SQL语句汇总(二)——数据修改、数据查询

      
        SELECT
      
      
        *
      
      
        FROM
      
       t_student 
      
        ORDER
      
      
        BY
      
       student_age 
      
        DESC
      
      ;
    

SQL语句汇总(二)——数据修改、数据查询

 

最后一定要注意!

基本查询SQL的执行顺序:

1.执行FROM 2.WHERE条件过滤 3.SELECT投影 4.ORDER BY排序

 

SQL的第二篇就到这里了,博主写的快吐了!感觉学的时候没这么多啊,希望各位认同的朋友顶一下,也好让我有动力写完。

SQL语句汇总(二)——数据修改、数据查询


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

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

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

【本文对您有帮助就好】

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

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