SQL基础学习笔记<第一天>

1.什么是数据库?
数据库是数据存储的集合
表是数据结构化的信息
2.区分
MYSQL 是一个数据库
SQL 数据查询语句
3.SQL基础语法
3.1 and,or语句
查询城市为上海学历为本科或者城市为北京学历为硕士的所有信息(注:and执行优先级排在or前,加括号可以改变优先级)

SELECT * FROM test.dataanalyst_sql
where (city = '上海'
and education = '本科')
or
(city = '北京'
and education = '硕士')

3.2 模糊查找 通过%
苏州% %苏州% %苏州

3.3 group by 语句 按照某字段查询(去除重复的)
查询不同城市岗位数和公司数,因为同一个公司可能存在多个岗位,故采用distinct进行去重

SELECT
	city,
	count( positionId ) AS '岗位数',
	count( DISTINCT companyId ) AS "公司数" 
FROM
	test.dataanalyst_sql 
GROUP BY
	city

结果如下:

3.4 having语句
test 3.4.1 筛选含有100个岗位及以上的城市中岗位数量

SELECT
	city,count(1) 
FROM
	test.dataanalyst_sql 
GROUP BY
	city 
HAVING
	count( positionId )>= 100

结果如下:

test 3.4.2 查找公司种类包含“电子商务”且该公司数量大于50的城市的该种公司数量

SELECT
	city,
	count( 1 ) 
FROM
	test.dataanalyst_sql 
WHERE
	industryField LIKE '%电子商务%' 
GROUP BY
	city 
HAVING
	count( companyId )>= 50

结果如下:

3.5 if语句
“1”可用其他任何字符代替,保证非空即可,该句意为包含“电子商务”的记为1个,不包含的记为0,筛选电子商务类公司大于50个以上的城市。[注意此处并不是筛选岗位,而是筛选的城市,因此结果中统计的数量为所有岗位的数量,而不单单是包含电子商务的岗位的数量。]

SELECT
	city,
	count( 1 ) 
FROM
	test.dataanalyst_sql 
GROUP BY
	city 
HAVING
	count(
IF
	( industryField LIKE '%电子商务%', 1, NULL )) >= 50

结果如下:

3.6 统计总数,电商数量,电商占比并且筛选出电商数量大于10的城市且按电商数量升序排序。
(注:select里面采用的别名话不能立刻在select中使用,只能在下面的from where等中使用,即将( industryField LIKE “%电子商务%”, industryField, NULL ))/ count( 1 ) 改为total/emarket会报错)

SELECT
	city,
	count( 1 ) AS "total",
	count(
	IF
	( industryField LIKE "%电子商务%", industryField, NULL )) AS "emarket",
	count(
	IF
	( industryField LIKE "%电子商务%", industryField, NULL ))/ count( 1 ) AS "电商占比" 
FROM
	test.dataanalyst_sql 
GROUP BY
	city 
HAVING
	emarket >= 10 
ORDER BY
	emarket

结果如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值