美文网首页
2019-01-07今日份的SQL学习

2019-01-07今日份的SQL学习

作者: bf3780a4db09 | 来源:发表于2019-01-07 16:46 被阅读4次

    SQL这个东西真的不用就会忘记,,,不过也确实好多都是很久之前学的,有些知识点也已经模糊了,这次刚好好好学一学,今天看视频的时候摘了几个感觉不太熟的点,,基本都记下来了哈哈哈,忘记说了,看的是秦路的视频,老师声音很好听嘿嘿。

    Select基础部分

    有一些之前没有怎么用到的,不太熟练的部分

    1)Select city,companyId from data.company(查询具体的字段,字段之间用逗号隔开)

    2)Select * from company

    limit 100;(分号代表语句的结尾,limit表示只要结果的前100条数据)

    3)!=和<>这两个都表示不等于

    selelct * from company

    where city != “上海”;(提取上海以外城市的公司信息)

    select * from company

    where city <> “上海”;

    4)select * from company

      where city in (“上海”,”北京”);(提取上海和北京的公司信息)

    或者select * from company

      where city = “上海”

       orcity = “北京”;(此处in和or的输出结果一样

       select* from company

      where city not in (“上海”,”北京”); (提取上海和北京以外的公司信息,in的否定not in

    条件查询部分

    1)  and和or执行逻辑,and优先执行,作为一个条件(这一块之前真的没注意过,重点关注!)  

    SELECT * FROM data.dataanalyst

    where city = "上海"

    and education = "本科"

    or workYear = "1-3年";

    上述查询语句,本意是查询city在上海的(结果中city应该只等于上海),education为本科或者工作1-3年的人(education和workYear二选一),但是结果中出现了city为非上海的数据,此处涉及到and和or同时出现时,SQL的执行优先级问题。

    实际上该语句的查询目标为

    SELECT * FROM data.dataanalyst

    where (city = "上海"

    and education = "本科")

    or workYear = "1-3年";

    此处,and优先计算组成条件1,即city是上海的且education是本科为条件1,workYear等于1-3年为条件2,结果为条件1成立或者条件2成立的数据,因此出现了city为北京、深圳,以及education等于大专的数据。

    如果要实现原来的查询目标,SQL语句如下

    SELECT * FROM data.dataanalyst

    where city = "上海"

    and (education = "本科"

    or workYear = "1-3年");

    结果如下

    勤用括号还是有用滴!

    例如:查询上海的本科职位以及北京的硕士职位

    SELECT * FROM data.dataanalyst

    where

    (city = "上海"

    and education = "本科")

    or

    (city = "北京"

    and education = "硕士");

    2)like的使用,匹配字段值,%的使用

    SELECT * FROM data.dataanalyst

    where

    secondType like "%开发%";(包含“开发”两个字的职位)

    SELECT * FROM data.dataanalyst

    where

    secondType like "开发%";(以“开发”两个字开头的职位)

    SELECT * FROM data.dataanalyst

    where

    secondType like "%开发";(以“开发”两个字结尾的职位)

    3)group by函数

    SELECT city,count(positionId),count(distinct companyId) FROM data.dataanalyst

    group by city;(每个城市招多少个岗位,多少家公司在招聘)

    SELECT city,education,count(positionId)

    FROM data.dataanalyst

    group by city,education;(每个城市各个学历招多少个岗位)

    例子:

    eg.1每个城市的应届毕业生招多少个

    SELECT city,workYear,count(positionId) FROM

    data.dataanalyst

    where workYear = "应届毕业生"

    group by city;

    eg.2每个城市有多少公司在招应届毕业生

    SELECT

    city,workYear,count(positionId),count(companyId) FROM data.dataanalyst

    where workYear = "应届毕业生"

    group by city;

    相关文章

      网友评论

          本文标题:2019-01-07今日份的SQL学习

          本文链接:https://www.haomeiwen.com/subject/ztnurqtx.html