2021-10-19 SQL 查询语句

查询 

select  字段1 字段2   * 代表全部字段

from 表名

where 字段名=值

条件:

    运算符: =   <   >   <=   >=  !+

  like:模糊查询   

       一:%表示零个或多个字符的任意字符串

                      1. LIKE'Mi%' 将搜索以字母 Mi开头的所有字符串

                      2. LIKE'%er' 将搜索以字母 er 结尾的所有字符串

                      3. LIKE'%en%' 将搜索在任何位置包含字母 en 的所有字符串                           

      : _(下划线)表示任何单个字符

            LIKE'_heryl' 将搜索以字母 heryl 结尾的所有六个字母的名称(如 Cheryl、Sheryl)

      :[ ] 表示指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符

            LIKE'[CK]ars[eo]n' 将搜索下列字符串:Carsen、Karsen、Carson 和 Karson,Carson)。

            LIKE'[M-Z]inger' 将搜索以字符串 inger 结尾、以从 M 到 Z 的任何单个字母开头的所有名称

       四: [^] 不属于指定范围 ([a-f]) 或集合 ([abcdef]) 的任何单个字符

             LIKE'M[^c]%'将搜索以字母 M 开头,并且第二个字母不是 c 的所有名称

        :* 它同于DOS命令中的通配符,代表多个字符

              c*c代表cc,cBc,cbc,cabdfec等多个字符。

    查询空的字段 

                            where 字段 is null; null 判断只能用is

    查询区间

                            between 开始值 and 结束值   类似于(>= 开始 <=)

                            select * from 表名 where age between 29 and 34  (年龄在29到34之间的)

    多个条件   

                            and  or 

                            select * from 表名 where age between 29 and 34 and age = '女'  多条件用and连接

    排序

                            order by 字段1,字段2 (有升序和降序,默认为升序)

                            升序 asc   降序 desc  

                            先排字段1 ,再排字段2     

                            select * from 表 order by 字段 ( asc  / desc  )

    分页

                            limit  开始的行数,行数  (开始行数从0开始)

                            limit 2,4  从第二行开始,取4条  如果后面的数据不够不报错,有多少显示多少

    函数

                            count()  计数  (几行) select count(*) from 表名; (查询表多少行数据)

                            sum()  求和                    

                            avg()  平均值

                            max()  最大值

                            min()  最小值

    别名

                            字段,表

                            字段名 as 别名(不用加单引号)

                            as可以默认不写

                            select count(*) as 行数 from 表名;

多表联查

 一:内连接(找到2张表的交集)  inner join on

        select * from 表1,表2 where 表1.id = 表2.id

                                                                                     (关键字,关联)

        select 字段1,字段2 from  表1 inner join 表2 on  表1.字段 = 表2.字段 where 表1的其他条件 and 表2的条件

-- 9、查询学号为AF121105同学的所有科目信息,显示sno,sname,cno,grade

SELECT s.*,c.cno,c.grade FROM zy_student s

INNER JOIN  zy_sc c ON s.sno = c.sno WHERE s.sno = 'AF121105'

//  inner join添加第一张表    on通过sno关联

二:左外连接   left join on

        以左表为主,左表数据全部展示,右表没有就显示空

三:右外连接  right join on

        以右表为主,右表数据全部展示,左表没有就显示空

四:全外连接

        左表行数 * 右表行数

五:自连接

        一张表,承担左表右表的角色

你可能感兴趣的:(2021-10-19 SQL 查询语句)