MySQL数据查询--select的基本用法

数据查询(select)

1.基本用法
    select 查询字段            6
    from 表名或视图名(逐行扫描)    1
    where条件(行过滤)            2
    group by 分组            3
    having 分组筛选            4
    order by 排序 [asc | desc]        5

-1- 注释:
    单行:-- 注释
    多行:/* 注释 */

-2- as的两种用法:
    1)给字段或者表取别名:字段名|表名 [as] 别名
    2)添加附加字段:'附加字段值' as 附加字段名
       :附加字段值如果是null 或者数字可以不加引号,但如果是字符串,必须加引号,否则会报错没有这个字段。

-3- 连接函数concat()
    concat(字段名,'连接值') (位置可以互换)
    例:select name as 姓名, concat(age,'岁') as 年龄, concat('中国',city) as 所在地, '中国' as 国家
        from Students;

-4- 逻辑运算 && || ! ==>  and  or  not

-5- 查询指定数目的数据(记录)条数:
    MySQL:limit m,n;        从第m个索引开始取n个值(m从0开始)

-6- 升序、降序问题:
    :1)一个查询语句中可以指定多个排序方式,如果第一个排序方式相同,则按第二个排序方式,以此类推。
        2)如果排序的字段值相同,且没有其他排序方式,则此时会按照默认的id排序。

-7- 聚合函数(统计)
    1)sum:对数值的字段进行求和    例:select sum(age) from Students;
    2)avg:对数值的字段求平均值
    3)max:对数值、日期或字符类型进行求最大值    
    4)min:
    5)count:计数:count(字段)--> 统计列中非空字段的个数
          统计行数:count(*)--> 统计结果集中的行数
             
-8- distinct:删除重复值
    例:select distinct sex from Students;


2.模糊查询
-1- like:字符串的模糊查询,通常会与通配符一起使用(也可以与正则表达式一起配合使用)
          如果只单独使用一个like,则 like 和 = 相同。
          :    os中的通配符:*    任意个字符
                                                ?    一个字符
          数据库中的通配符:%    任意个字符
                                             _    一个字符

-2- (not) between A and B:数值与日期的范围查询,介于两者之间
    :等价于 字段 >= A and 字段 <= B (匹配的范围包含A和B)

-3- (not) in:一个范围内值的匹配
    例:select * from Students where classId not in(1,3);

-4- substring()函数:截取一个字符串,进行匹配
例:查询出生日期在1960年至1969年出生的客户信息,返回客户名(根据身份证查询)
select Name as 客户名
from customers
/*     方法一:(前面是6个_)
 where CardNo like '______196%';    
*/
/*    方法二:
 where substring(CardNo,7,4) like '196_';
*/
    --  方法三:
 where substring(CardNo,7,4) between 1960 and 1969;    


3.分组查询
  基本用法:group by 分组字段1,分组字段2...
  :group后一般放的是select语句中的非聚合字段

4.分组筛选(过滤)
  having语句:实现分组后结果集的再次过滤
-1- having出现的前提是必须有分组group by查询,且放在其后

-2- where与having的区别:
    1)位置:where在group by之前,having在grop by之后;
    2)过滤对象:where 实现对表中行的过滤
         having 实现对象分组后的结果集的过滤

5.多表查询(连接查询)
  关键点:主外键的关系(父表  子表   主键  外键)
  实现:
-1- where:
    select 字段
    from 表1 , 表2 [表3,...]
    where 父表主键 = 子表外键 [and 主键 = 外键] [and 其他条件];

-2- join(连接)
    基本语法:
    select 字段
    from 子表1
    [inner | left | right] join 父表2
    on 父表2主键 = 子表1外键
    [join 子表3 on 子表1主键 = 子表3外键];

    1)内连接(交集):inner join
    2)外连接:
       左外连接:left join:若为空值则会设为null
       右外连接:right join

-3- 联合:union [all]:将多个查询结果合并成一个结果集
    语法:
    select 1
    union [all]
    select 2
    union [all]
    select 3;
    注:1> union:会删除联合在一起的重复记录
           union all:不会删除重复记录,将所有查询结果合并成一个结果集
            2> 查询结果的字段个数和类型要匹配。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值