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; //同时复制结构和数据

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

  • 相关阅读:
    numpy 基础 —— np.linalg
    图像旋转后显示不完全
    opencv ---getRotationMatrix2D函数
    PS1--cannot be loaded because the execution of scripts is disabled on this system
    打开jnlp Faild to validate certificate, the application will not be executed.
    BATCH(BAT批处理命令语法)
    oracle vm virtualbox 如何让虚拟机可以上网
    merge 实现
    Windows batch,echo到文件不成功,只打印出ECHO is on.
    python2.7.6 , setuptools pip install, 报错:UnicodeDecodeError:'ascii' codec can't decode byte
  • 原文地址:https://www.cnblogs.com/autopwn/p/5081124.html
Copyright © 2011-2022 走看看