SQL
––
这个作者很懒,什么都没留下…
展开
-
SQL刷题笔记——GROUP_CONCAT()函数
GROUP_CONCAT()函数1.完整语法group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])-- 13、查询和"01"号的同学学习的课程完全相同的其他同学的信息 SELECT Student.*FROM StudentWHERE s_id IN (select s_id from score GROUP BY s_id HAVING s_i原创 2020-06-04 20:29:17 · 281 阅读 · 0 评论 -
SQL进阶学习——列转行
列转行一、使用UNION ALL1.原始数据:(4个季度的销售金额分为四列)给定一个公司所有员工各个季度销售金额的表格employee_sales:2.查询语句问题:依据 employee_id,把四个字段的数据放到一个字段中。思路:可以先查询出四个字段,然后用UNION ALL 组合。SELECT employee_id,employee_name,'一季度',sales_amount_q1 from employee_sales UNION ALLSELECT .原创 2020-06-02 11:57:46 · 466 阅读 · 0 评论 -
SQL进阶学习——行转列
行转列一、找出每个同学的各科成绩SELECT student_id,student_nameMAX(CASE WHEN subject_name = '高等数学'THEN score ELSE 0 END) AS'高等数学',MAX(CASE WHEN subject_name = '机械原理'THEN score ELSE 0 END) AS'机械原理',MAX(CASE WHEN subject_name = '概率论'THEN score ELSE 0 END) AS'概率论',MA原创 2020-06-01 21:34:50 · 216 阅读 · 0 评论 -
SQL必知必会补充学习——CASE WHEN逻辑转换
CASE WHEN逻辑转换语法一、适用于条件表达式为一定的范围CASE WHEN 条件表达式1 THEN 结果表达式1CASE WHEN 条件表达式2THEN 结果表达式2...ELSEEND例:根据交易数量,判断大单中单小单SELECT volume,CASE WHEN volume>=3000 THEN '大单' WHEN volume>300 AND volume<3000 THEN '中单' ELSE '小单'ENDFR.原创 2020-06-01 16:55:24 · 502 阅读 · 0 评论 -
《SQL必知必会》学习笔记——第十六课 更新和删除数据
第十六课 更新和删除数据一、更新数据(1)SET命令将新值赋给被更新的列UPDATE infSET age = '69',city = 'F'WHERE id = 5;二、删除数据(1)delect from指定要删除数据的表名;WHERE子句过滤要删除的行DELETE FROM score2WHERE id = 1;...原创 2020-05-20 10:20:32 · 193 阅读 · 0 评论 -
《SQL必知必会》学习笔记——第十五课 插入数据
第十五课 插入数据一、数据插入1.插入完整的行(1)注意:给出列名更安全INSERT INTO scoreVALUES('7','55','7');INSERT INTO score(id,score,rank)VALUES('8','54','8');(1)注意:被忽略的行允许NULL值;表定义中要给出默认值INSERT INTO score(id)VALUES('9');3.插入检索出的数据(1)注意:可以使用WHERE,.原创 2020-05-20 08:57:45 · 186 阅读 · 0 评论 -
《SQL必知必会》学习笔记——第十四课 组合查询
第十四课 组合查询一、组合查询1.使用情况(1)在一个查询中,从不同的表返回结构数据(2)对一个表执行多个查询,按一个查询返回数据二、创建组合查询1.使用UNION(1)对一个表执行多个查询,按一个查询返回数据(2)注意:对于复杂的过滤条件或从多表检索数据时,UNION更简单。SELECT id, age, genderFROM infWHERE city in ('C','D')UNIONSELECT id, age, genderFROM infWHE.原创 2020-05-20 08:21:57 · 221 阅读 · 0 评论 -
《SQL必知必会》学习笔记——第十三课 创建高级连结
第十三课 创建高级连结一、使用表别名二、使用不同类型的连结1.自连结(1)自连结用来替代从相同表中检索数据所使用的子查询语句SELECT i1.id,i1.age,i1.cityFROM inf as i1,inf as i2WHERE i1.city = i2.cityAND i2.name = 'allen';2.自然连结SELECT score.*,inf.id,inf.age,inf.cityFROM inf LEFT OUTER JOIN原创 2020-05-14 22:18:39 · 174 阅读 · 0 评论 -
《SQL必知必会》学习笔记——第十二课 连结表
第十二课 连结表一、创建连结SELECT inf.id,age,rankFROM inf,scoreWHERE inf.id = score.id;注意 WHERE inf.id = score.id 作为过滤条件,没有的话会输出笛卡尔积。二、内连结SELECT inf.id,age,rankFROM inf INNER JOIN scoreON inf.id = score.id;INNER JOIN的连结条件使用ON子句达到与WHERE一样的效果...原创 2020-05-14 21:38:10 · 184 阅读 · 0 评论 -
《SQL必知必会》学习笔记——第十一课 使用子查询
第十一课 使用子查询一、子查询过滤SELECT id,rankFROM scoreWHERE id in (SELECT id FROM inf WHERE age = 22)注意:子查询只能是单列二、作为计算字段SELECT id,age,(SELECT COUNT(*)FROM scoreWHERE inf.id = score.id) AS c_scoreFROM infORDER BY age;...原创 2020-05-14 20:46:14 · 171 阅读 · 0 评论 -
《SQL必知必会》学习笔记——第十课 分组数据
第十课 分组数据一、创建分组 Group BYSELECT age,gender,cityFROM infGROUP BY age;二、过滤分组 HAVING注意:having过滤分组;where过滤行SELECT age,gender,cityFROM infWHERE age>23GROUP BY ageHAVING gender >=1;三、分组和排序注意:GROUP BY 只能对SELECT列使用;order by 对所有列都.原创 2020-05-13 18:56:18 · 131 阅读 · 0 评论 -
《SQL必知必会》学习笔记——第九课 汇总数据
第九课 汇总数据一、聚集函数(1)定义:对某些航运行的函数,计算并返回一个值1.1 AVGSELECT AVG(age) AS avg_ageFROM infWHERE YEAR(birthday) = 2020ORDER BY id;1.2count函数(1)对age列非NULL的行进行计数SELECT count(age) AS num_ageFROM infWHERE YEAR(birthday) = 2020ORDER BY id;(2)对表...原创 2020-05-13 18:40:26 · 164 阅读 · 0 评论 -
《SQL必知必会》学习笔记——第八课 使用函数处理数据
第八课 使用函数处理数据一、文本处理函数(1)LEFT() LENGTH() LOWER LTRIM() RTRIM() RIGHT() UPPER()(2)SOUNDEX() 将文本转语音 P67二、日期和时间处理函数SELECT ageFROM infWHERE YEAR(birthday) = 2020ORDER BY id;MYSQL里用yea...原创 2020-05-13 18:14:46 · 174 阅读 · 0 评论 -
《SQL必知必会》学习笔记——第六课 用通配符进行过滤
第六课 用通配符进行过滤一、LIKE操作符(1)定义:用来匹配值的一部分的特殊字符(2)搜索模式:由字面值、通配符或者两者组合构成的搜索条件,如:WHERE name LIKE '%a%'1.1 百分号(%)通配符SELECT name,genderFROM infWHERE name LIKE '%a%';(1)注意:区分大小写、匹配不了NULL1.2下划线(—)通配符SELECT name,cityFROM infWHERE city LIKE '..原创 2020-05-13 10:15:27 · 165 阅读 · 0 评论 -
《SQL必知必会》学习笔记——第七课 创建计算字段
第七课 创建计算字段一、计算字段1.1 字段(1)在数据库中列一般被称为字段(2)SQL计算字段比在客户端更快二、拼接字段SELECT CONCAT(RTRIM(NAME),' (' ,RTRIM(city),')')AS name_cityFROM infORDER BY name;(1)拼接(cancatenate——[kənˈkætnˌeɪt])(2)MySQL中用Concat( , )(3)TRIM函数去除空格,RTRIM()去右边,LTRIM()去右边.原创 2020-05-13 09:10:01 · 229 阅读 · 0 评论 -
《SQL必知必会》学习笔记——第五课 高级过滤数据
第五课 高级过滤数据一、组合WHERE子句1.1 AND操作符SELECT id,age,genderFROM infWHERE age = 22 AND gender =1;AND都要符合1.2 OR操作符SELECT id,age,genderFROM infWHERE age BETWEEN 16 AND 30 or gender =1;OR子句任意条件匹配即可1.3 求值顺序SELECT id,age,genderFROM infWHER...原创 2020-05-12 21:53:51 · 138 阅读 · 0 评论 -
《SQL必知必会》学习笔记——第四课 过滤数据
第四课 过滤数据一、 使用WHERE子句SELECT id,age,cityFROM infWHERE age>20ORDER BY 2 ,3 DESC;注意:(1)WHERE子句同样在FROM子句之后给出(2)order by 子句同样放在最后二、WHERE子句操作符1.检查单个值SELECT id,age,cityFROM infWHERE age>20ORDER BY 2 ,3 DESC;2.不匹配度检查SELECT id,ag..原创 2020-05-12 21:31:57 · 186 阅读 · 0 评论 -
《SQL必知必会》学习笔记——第三课 排序检索数据
第三课 排序检索数据3.1 排序数据SELECT scoreFROM scoreORDER BY rank;注意:(1)SQL语句由很多子句构成。(2)ORDER BY子句须在最后。3.2按多个列排序SELECT id,age,cityFROM infORDER BY age,city;注意:(1)优先按照age排序,当且仅当age相同时按照city排序3.3 按列位置排序SELECT id,age,cityFROM infORD...原创 2020-05-12 20:58:08 · 126 阅读 · 0 评论 -
《SQL必知必会》学习笔记——第一课 了解SQL
第一课 了解SQL一、数据库基础1.1 数据库(1)定义:保存有组织的数据的容器(通常是一个文件或一组文件)(2)注意:数据库软件,如MySQL,应称为数据库管理系统(DBMS),而数据库是通过DBMS创建和操纵的容器。1.2 表(1)定义:某种特定类型数据的结构化清单。(2)注意:同一类型的数据或清单(3)模式:关于数据库和表的布局及特性的信息1.3 列和数据类型(1)列:表中的一个字段(2)数据类型:每个列所允许的数据的类型,起限制作用1.4 行(1)原创 2020-05-12 19:38:41 · 187 阅读 · 0 评论 -
SQL join
1.SELECT count(t.companyId)/count(1) FROM data.dataanalyst as d#where companyId = (#select companyId from data.company#where companyShortName = '唯医网'#)left join (SELECT * FROM data.companywhe...原创 2019-03-30 11:53:52 · 196 阅读 · 0 评论 -
SQL函数
1.left/locate,函数组合获取薪资下限SELECT left(salary,locate('k',salary)-1),salary FROM data.dataanalyst;8 8k-15k 20 20k-40k 10 10k-18k 8 8k-16k 10 10k-18k 15 15k-30k 16 ...原创 2019-03-30 10:30:08 · 134 阅读 · 0 评论 -
SQL:Group by
1.Group by 对数据进行分组,类似于Excel里的数据透视表1.1SELECT city,count(positionId),count(1),count(*) FROM data.dataanalystgroup by cityoutput:上海 979 979 979 北京 2347 2347 2347 南京 ...原创 2019-03-26 11:13:51 · 210 阅读 · 0 评论 -
SQL条件查找
1.SELECT * FROM data.dataanalystwhere (city = '上海'and education = '本科')or (city = '北京'and education = '硕士')2.SELECT * FROM data.dataanalystwhere secondType like '后端%'...原创 2019-03-26 10:17:59 · 492 阅读 · 0 评论