ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

mysql数据库的查询语句

2019-05-07 18:54:34  阅读:195  来源: 互联网

标签:语句 group 数据库 select mysql where having 字段名


===借助.sql脚本文件创建测试案例:脚本好处,批量执行。在mysql命令行,source XX.sql的绝对路径
select [选项] 列名 from 表名 [where 条件] [group by 分组]  [having 条件] [order by 排序][limit 限制]
==============begin========================================================================================
ME认为 select 【字段表达式】 from 【数据源】 where 【字段满足的条件】【对查出来的结果进一步处理】
    --having句子是限制 group的
--字段表达式 表名dual 是个伪表
    select 字段表达式 as 字段别名
【字段表达式】:
    ifnull(字段名,值)
【数据源】
--from 后是数据源:数据源可以是表
【字段满足的条件】
--where
    --mysql支持的操作符:> >= < <= = != not or and
    --in() 和 not in()
    --between…and | not between…and --前小后大 闭区间
    --is null 和is not null
    --like _表示一个字符 %表示0-多个
【对查出来的结果进一步处理】
--order by:
    !!!!order by的字段必须在select出来的字段中
    order by作用域此后的多列;asc/desc只能作用于其前的一列
===============end==============================
组函数:多行函数,或者聚合函数。
  此类函数的特征是,对表中的多行数据进行变换,返回一个值。与之对应的另一类函数为单行函数,即对表中的一行数据进行变换,产生一个结果。自动过滤空值
  就5个组函数:sum(字段名) avg(字段名) max(字段名) min(字段名) count(字段名或者*)
单行函数:
    
===============begin=================================
group by:select 字段中没有出现在聚合函数中的字段,都必须在group by中出现
having 条件,可以对group的结果集筛选

where VS having:一言以蔽之,where直接从数据表中的字段进行筛选,数据表中没有的字段,where没法筛选,having只能从前面的结果集中筛选,结果集中没有的,having没法筛选
无分组函数时候两者同
【关于group和having】:我的总结是先确定分组,再说,分组之后想从每组得到啥,然后再说,对每组的数据项怎样过滤。可以按照如下思路写sql:
select        ifnull(字段名,值) /distinct
from        
where
group by
having
order by
limit 起始位置,个数
==================end==================================
distinct XX,作用域后面的多列。!!!!
union
inner join on
=========子查询================
in /not in/exists和not exists
列查询
行子查询:()in(select XX)
表子查询:如果子查询的结果当成表来看,必须将子查询的结果取别名
==========事务管理================
数据库事务由以下的部分组成:
一个或多个DML 语句
一个 DDL(Data Definition Language – 数据定义语言) 语句
    一个 DCL(Data Control Language – 数据控制语言) 语句
开启事务:start transaction或begin [work]
提交事务:commit
回滚事务:rollback
eg:
mysql> start transaction;        # 开启事务
    -> update bank set money=money-100 where cardid='1001';
    -> update bank set money=money+100 where cardid='1002';  
mysql> commit                # 提交事务
mysql> rollback               # 回滚事务
提交:    显示提交:commit 
            隐式提交:1. 有DDL语句,如:create table除了创建表之外还会隐式提交Create之前所有
                        没有提交的DML语句。 2. 正常退出(exit / quit) 
    回滚:    显示回滚:rollback 
            隐式回滚:掉电、宕机、非正常退出。
===========================================
视图:仅仅是表结构,没有表数据,数据都存在具体的表中。对视图的操作如update操作,对应到具体的表上都会。
索引:索引表,行地址。由数据库自己维护,我们只需要创建和删除索引。b树 索引不适合更新和删除,?????why
    唯一键是索引,主键是索引,
    手动自己创建的索引-普通索引
    全文索引-mysql不支持全文索引
函数:


 

标签:语句,group,数据库,select,mysql,where,having,字段名
来源: https://blog.csdn.net/u013755520/article/details/89926938

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有