设为首页 收藏本站
查看: 1147|回复: 0

[经验分享] 基本的查询sql语句

[复制链接]

尚未签到

发表于 2018-10-20 06:39:34 | 显示全部楼层 |阅读模式
  day03  基本的查询sql语句
  一、概述:
  学习MySQL数据库中一定要学会sql的查询功能,说白了,使用数据库就是存储数据,查询数据,使用这些数据的一个过程。只有查看了才知道我们是否存储成功,是否可以直接使用这些数据。
  二、具体的sql
  1、查询数据库的基本语法:
        select 需要查询的字段名和内容  
        from  指定相关的表名
  
        where  查询时所需要的条件
  
        group by  如何对结果分组
  
        order by  如何对结果瓶排序
  
        having   查询时满足的第二个条件
  
        limit 限定查询输出的结果
  (一):单表查询
  1、查询所有字段
        select * from 表名;  2、查询指定字段
        select 字段名  from 表名;  3、查询指定数据
        select  *  from  表名  where 条件;  4、带“in”关键字的查询
         select  *  from  表名  where 条件  [not] IN(元素1,...元素n);  
         译:not:是一个可选参数,加上not表示不在集合内满足条件
  
             元素:表示集合中的元素,各元素之间用逗号分开
  5、带“Between  And”的范围查询
          select * from 表名 where 条件 [not] between 取值1  and 取值2;  
          译:not:是一个可选参数,表示不在指定范围内满足条件
  
              取值1:表示范围的起始值
  
              取值2:表示范围的终止值
  6、带“like”的字符匹配查询【实现模糊查询】
            like字符来实现模糊查询,一般在我们网页的搜索、检索等部分就要使用到模糊查询  
            而使用的两种通配符:“%”和“_”两个。
  
            “%”:可以匹配一个或多个字符,可以代表任意长的字符串
  
            “_”:只匹配一个字符,如m_n;以m开头,n结尾的3个字符
  
          select * from 表名 where 条件  like ‘%a’;
  
          译:查询这个表中包含a字符的所有数据。
  7、带“And”的多条件查询
          select * from 表名  where 条件1 and 条件2;  
          译:使用and关键字连接多个条件
  8、带“Or”的多条件查询
          select * from 表名 where 条件1 or 条件2;  
           译:只要满足条件的其中之一都会被查询到
  9、使用“distinct”关键字取消重复的数据
          select distinct 字段名 from 表名;  
            译:取消查询结果中重复的记录行
  10、使用“order by”关键字排序
          select * from 表名 order by [asc][desc];  
            译:order by:是指使用什么方式来排序
  
                asc:是指“升序”排序
  
                desc:是指“降序”排序
  11、使用“group by”关键字分组
           select 字段1,字段2,... from  表名  group by 某个字段1或字段2分组查;  
            同时还可以多个字段进行分组
  12、使用“limit”限制查询结果的数量
           select * from order by asc  limit 3;  
            译:查询的结果显示前3条记录
  (二)聚合函数查询
  1、使用“count()”函数
          select count(*) from 表名;  
          译,统计表中所有的记录
  2、使用“sum()”函数
          select sum(row) from 表名;  
          译:求出表中行的总数。
  3、使用“avg()”函数
          select avg(row) from 表名;  
          译:求出表中行的一个平均值
  4、使用“max()”函数
          select max(row) from 表名;  
          译:查询表中row字段的最大值
  5、使用“min()”函数
          select min(row) from 表名;  
          译:查询表中row字段的最小值
  (三)连接查询
  1、内连接查询
          select 字段1,字段2,字段3 from 表名1,表名2 where 表名1.字段1=表名2.字段2;  
        实现表与表之间的连接查询就是要确定两张表中都有相同的字段名。
  2、外连接查询
  外连接与内连接不同,外连接时指使用“outer join”关键字将两张表连接起来。
  分为左外连接“left join”、右外连接“right join”、全连接3种类型
  语法:
        select 字段名称 from 表名1 left/right join 表名2 on 表名1.字段1=表名2.字段2;  2.1、左外连接“left join”
  左外连接:是指将左表的所有数据分别于右表的每一条数据进行连接组合,返回的结果除内连接的数据外,还包括左表中不符合的数据,并在右表的相应列中添加null值。
        select 字段名称 from 表名1 left join 表名2 on 表名1.字段1=表名2.字段2;  2.2、右外连接“right join”
  右外连接是指将右表中的所有数据分别于左表中的每一条数据进行连接组合,返回的结果除内连接的数据外,还包括右表中不符合的条件的数据,并在左表的相应列中添加null值。
        select 字段名称 from 表名1 right join 表名2 on 表名1.字段1=表名2.字段2;   2.3、交叉连接“cross join”:笛卡尔积
        select * from 表1 cross join 表2  (四)子查询
  子查询:就是select查询是另一个查询的附属。什么是附属关系,就是一个查询语句查询出来的结果是为第二个查询的一个条件或一个基础、前提等、只有当它查询出来以后才能够查询出第二个的结果。
  1、带“in”关键字的子查询
  使用in运算符是可以检测结果集中是否存在某个特定的值,如果检测成功就执行外部查询语句。
        select * from 表名1 where 字段1 in(select 字段1 from 表名2);  
        译:查询表1的所有记录,但是字段1必须要在表2中出现过。
  2、带比较运算符的子查询
  子查询使用运算符是比较平凡的,包括“=、!=、> 、< 、>=、

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-623780-1-1.html 上篇帖子: 3 Ways to Generate vCenter Support Bundle in vCenter Server Appliance 下篇帖子: 数据统计SQL备忘
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表