zoukankan      html  css  js  c++  java
  • mysql基础-数据库表简单查询-记录(五)

    0x01

    MySQL的查询操作
    单表查询:简单查询                 多表查询:连续查询                联合查询

    选择和投影
    投影:挑选要符合的字段     select 字段 .........
    选择:挑选符合条件的行  select 字段 from 表  ....... where .......

    投影:select 字段1,字段2,... from tb_name
    selcet * from tb_name
    选择:select 字段1,字段2,.... from tb_name where 子句

    布尔条件表达式操作符
    = 等值比较
    <=>:跟空值比较不会产生额外信息
    <>:不等值
    <     小于    
    <=   小于等于
    >     大于
    >=   大于等于

    IS NULL:是否为空
    IS NOT NULL:是否不为空
    LIKE:支持的通配符%(任意长度的任意字符)       (下划线) _(任意单个字符)
    RLIKE,REGEXP:支持使用正则表达式作为条件
    IN:判断某行的某一字段的值是否在给定的列表中  in(2.3.4.5.6.67.7.8.8 .......) 符合里面的条件即可
    BETWEEN...AND....:判断指定的值是否位于指定的范围之间  在两者之间的范围

    组合条件测试
    NOT !    ----- 非
    AND && ------ 和
    OR ||    ------  或

    排序
    order by ‘排序字段’
    默认为升序:ASC   默认不添加,  升序 ---- 即 从小到大 一次排序
    降序:DESC         降序   ----- 即 从大到小

    内置的聚合函数
    sum():求和
    AVG():平均值
    MAX():最大值
    MIN():最小值
    COUNT():个数统计    count(*)  效率不高,推荐在使用过程随便选个表中的字段进行查询--效率略高
    分组
    group by     ----- 可以理解为对某一类进行分类,例如  性别 男 女  , 班级等....
    对分组的条件过滤
    having        ----- 只能和group by 配合使用,不能单独使用 对分组后的数据进行过滤
    只返回有用的行
    LIMIT         limit 5   ------ 理解为表示从第一行显示到第五行   limit 3,8 ---理解为表示从第三行开始显示到第八行
    一个数为显示的行数
    两个数字为偏移第一个数字行,显示第二个数字

    select语句的执行流程
    from clause --> where clause --> group by --> having clause -->order by --> select -->limit

    先找表---> 条件过滤筛选  ----> 对左边筛选的数据进行分组 ----->  对分组后的数据进行过滤  ----> 对分组后过滤的数据进行排序  --->  将获取的最终结果进行查询  ---> 对获取的结果进行确认该显示哪条数据

    select语句
    distinct 重复的只显示一次    ---- 去重
    SQL_CACHE 缓存查询结果   
    SQL_NO_CACHE 不缓存查询结果

    实例

    select ClassID,count(Name) from students where ClassID is not null group by ClassID;

    select Gender,sum(Age) from students group by Gender;

    select avg(Age) from students group by ClassID having sum(Age) > 25;

    select ClassID from students where ClassID is not null group by ClassID having sum(Age) > 25;

    select Name,Gender,sum(Age) from students where Age > 25 group by Gender;

    复制一张表:

    第一种方法:

    create table tab2 like tab1; //复制结构了

    insert into tab2 select * from tab1; //复制数据

    这种方法可以比较完整       ----- 推荐使用这种方法

    第二种方法:

    create table tab2 select * from tab1; //同时复制结构和数据

    这种方法可能会丢一些结构信息,比如:索引,约束,自增长属性

  • 相关阅读:
    冲刺第十三天
    冲刺第十二天
    冲刺第十一天
    Android Studio三种运行方法
    第十三周学习进度
    冲刺第一阶段意见评论
    第十二周学习进度
    冲刺第十天
    大二暑假周总结(五)
    大二暑假周总结(四)
  • 原文地址:https://www.cnblogs.com/autopwn/p/5081124.html
Copyright © 2011-2022 走看看