首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
首页 /
SQL菜鸟
#
SQL菜鸟
#
7782次浏览
66人互动
收藏话题
分享
此刻你想和大家分享什么
热门
最新
2024-12-14 23:17
Warwick Business School 运营
不会SQL的美团运营生存指南
有没有人和我一样只在学校里学过SQL(然后现在全部忘记),或者根本没有学过SQL?入职第一周mentor和我说,SQL是硬技能,一定要学会!接下来给大家分享一下自己学习SQL的方式。1. 第一步是先看书,了解相关的代码,例如select、 from、 where、 limit、 group by 等这些基本的语法逻辑和条件。我用的是Mosh大佬的笔记,大家在b站/知乎上都可以找到。基本上看到一半就知道大概的语法结构了。在这个期间建议找个研发/组内会写sql的同事帮忙,请她喝奶茶,一杯不行就两杯!2. 第二步是学习跨表连接 join,left join,right join等。在实际工作中经常会用到这些!!!!适用频率90%!!这个阶段会用到学城内部的文档+项目中一些小数据的提取。3. 第三步是了解美团各个底表的筛选逻辑。很多时候取出来的数不对,并不是因为代码错误,而是不了解这个数到底从哪取,表里的字段都代表什么。(每遇到一个新表,都要先去了解各个字段的含义)4. 第四个阶段就已经基本上可以解决工作中90%的SQL需求了。剩下的10%,我会去寻找小美(涉及到复杂的字段处理,AI yyds),或者找研发(部分字段没权限配额)。建议就是大家不要害怕向别人提问题,带点好吃的过去都能解决。但提问之前建议都先自己研究一下,如果是随便百度一下就能解决的问题,就还是自己解决吧~~要不然别人也会烦的
点赞
评论
收藏
分享
2024-09-22 15:32
已编辑
长江大学 Java
基础-窗口函数
1.取值函数1.1.FIRST_VALUE SELECT score-FIRST_VALUE(score) OVER(PARTITION BY name) # 窗口函数:按姓名分组,取出姓名等于当前姓名的分组中的第一行 FROM student; # 等价于 SELECT score-(SELECT score FROM student AS S WHERE S.name=P.name LIMIT 1) FROM student AS P; SELECT score-FIRST_VALUE(score) OVER(PARTITION BY name ORDER BY date ASC) # 窗...
MySQL
点赞
评论
收藏
分享
2024-09-23 18:26
已编辑
长江大学 Java
基础-子查询
1.前言子查询分为嵌套子查询和相关子查询两类嵌套子查询:子查询总共执行一次,执行完毕将值返回主查询相关子查询:主查询执行一行,子查询执行一次,如此往复至主查询执行完毕2.嵌套子查询2.1.标量子查询 SELECT * FROM student WHERE score=(SELECT MAX(score) FROM student); SELECT * FROM student WHERE score>(SELECT AVG(score) FROM student); 2.2.列子查询 # SOME等价于ANY,IN等价于=ANY或=SOME,NOT IN等价于<>ALL SE...
MySQL
点赞
评论
收藏
分享
2024-09-23 18:27
已编辑
长江大学 Java
基础-日期函数
1.日期生成类 SELECT NOW();# 返回当前日期与时间 SELECT CURDATE();# 返回当前日期 SELECT CURTIME();# 返回当前时间 SELECT DATE(NOW());# 返回当前日期 SELECT TIME(NOW());# 返回当前时间 SELECT MAKEDATE(2024,355);# 指定年份与第N天返回年份对应的日期,此处返回2024-12-20 SELECT MAKETIME(13,11,31);# 指定时分秒返回时间,此处返回13:11:31 2.日期计算类 # 注意操作时不要超过数据类型的取值范围 # 常规操作 SELECT ADDD...
MySQL
点赞
评论
收藏
分享
2024-09-19 12:20
已编辑
长江大学 Java
入门-SQL的书写规范(个人向)
1.注释的使用 -- 这是一条单行注释 # 这也是一条单行注释 /* 这是 多行 注释 */ 2.转义字符的使用 # 对于特殊字符如:引号,应使用转义字符反斜杠 SELECT '\''; # 输出单引号 SELECT '\\'; # 输出反斜杠 SELECT '\\\''; # 输出反斜杠和单引号 3.书写规范 # SQL对大小写不敏感,但还是应使用大小写对不同类型进行区分 SELECT # 关键字大写 PI.product_category AS 'product category', # 列名小写,根据实际要求命名或按照对应含义的字母缩写 # 尽可能使用下划线替代空格,如名称包含空格,使用...
MySQL
点赞
评论
收藏
分享
2024-09-23 21:11
长江大学 Java
入门-查询语句的基本用法
1.SELECT SELECT 1+1;# SELECT可以没有FROM SELECT 1+1 FROM DUAL;# 与上句等价,DUAL只是形式上的表 SELECT 1 AS a;# 起别名 SELECT 1 a;# 与上句等价,AS可以省略,但不建议省略 2.FROM SELECT name # 输出名字列 FROM student; SELECT name,score # 输出name,score列 FROM student; SELECT * # 输出所有列 FROM student; SELECT CONCAT('姓名:',name) AS name # 输出计算列 FROM st...
MySQL
点赞
评论
收藏
分享
2024-09-23 18:20
已编辑
长江大学 Java
基础-联接方式与集合操作
1.联接方式通常来讲,联接时由主表(事实表)在左侧,副表(维度表)在右侧事实表:学生考试成绩表,订单销售表等维度表:学生信息表,考试信息表,产品信息表等如果难以区分事实表和维度表,可根据分组字段决定,分组字段所在的为主表,另一表为副表自连接:员工邻接表(管理者同时也是员工,且每个员工的上级编号就在该员工所在行的字段),左侧作为上级表,右侧作为员工表1.1.交叉联接 # 笛卡尔积:每个员工都与所有部门组合,假定有n个员工和m个部门,则返回n*m行 SELECT dept_name,emp_name FROM employee AS E CROSS JOIN department AS D;# 注...
MySQL
点赞
评论
收藏
分享
2024-09-19 18:18
已编辑
长江大学 Java
基础-NULL的处理
NULL的处理往往是查询过程的处理重点,本文探讨一些可能的情况1.NULL的特性 # NULL与任何值比较或运算的结果都是NULL,包括其本身 SELECT 1>NULL;# NULL SELECT 1+NULL;# NULL SELECT NULL=NULL;# NULL # NULL的判定必须使用IS NULL或IS NOT NULL SELECT NULL IS NULL;# 1 2.聚合函数中的NULL # 聚合函数默认忽略NULL # 假定colname列中存在NULL SELECT COUNT(colname) FROM tbname;# 返回不包含NULL的总数 SELEC...
MySQL
点赞
评论
收藏
分享
2024-09-23 18:27
已编辑
长江大学 Java
基础-字符串函数
1.函数介绍 # MySQL字符串下标从1开始 # 字节数,数字字母英文符号等为单字节,汉字中文符号等字符根据字符集而定(此处按两字节) SELECT LENGTH(' 1B C.男。♂ ');# 13 # 字符数,不考虑字符的字节数,例如'男','。','♂' SELECT CHAR_LENGTH(' 1B C.男。♂ ');# 9 SELECT LEFT('ABCDE',3);# ABC SELECT RIGHT('ABCDE',3);# CDE SELECT MID('ABCDE',3,2);# CD SELECT LOWER('AaBb');# aabb SELECT UPPER('A...
MySQL
点赞
评论
收藏
分享
2024-09-19 12:21
已编辑
长江大学 Java
基础-CTE通用表达式
复杂查询的多层嵌套往往会造成逻辑混乱,给阅读也带来一定的障碍一般地,可利用CTE表达式帮助理清逻辑,也便于查找错误1.语法规则 # 单个表达式 WITH T AS (SELECT name,score FROM student WHERE name LIKE 'A*') SELECT AVG(score) FROM T; # 多个表达式 WITH T1 AS (SELECT date,score FROM student WHERE name='Alice'),# 多个表达式以逗号分隔 T2 AS (SELECT date, SUM(socre) OVER(ORDER BY date ASC)...
MySQL
点赞
评论
收藏
分享
2024-09-25 18:21
已编辑
长江大学 Java
基础-SELECT的执行顺序及注意事项(重要知识)
1.基础数据1.1.employee:1.2.department:1.3.查询结果2.演示代码 # 如果是学习初期,不要被此代码吓到,后面会有详细解释,不懂之处可在进一步学习时巩固 WITH D AS (SELECT dept_id, dept_name FROM department WHERE dept_id<='1004') # 取出部门编号小于'1004'的部门编号及对应部门名称,形成表D(CTE表达式) SELECT ANY_VALUE(D.dept_id) AS dept_id, IF(GROUPING(D.dept_name),'汇总',D.dept_name) AS n...
MySQL
点赞
评论
收藏
分享
2024-01-24 11:45
已编辑
重庆大学 数据库工程师
题解 | #统计每个学校的答过题的用户的平均答题数#
select u.university, count(q.question_id) / count(distinct q.device_id) from question_practice_detail q left join user_profile u on q.device_id = u.device_id group by u.university 思路:看到“每个学校”,想到 group by university;答题数和用户信息表的关联,join;用户的平均答题数 = 总的答题数 / 用户数;总的答题数 = count(q.question_id);总的用户数=count(dis...
点赞
评论
收藏
分享
玩命加载中
创作者周榜
更多
热议话题
更多
1
...
26届春招投递记录
0
2
...
Vibe Coding 会干掉初级岗位吗?
0
3
...
我的求职总结
0
4
...
美团秋招笔试
0
5
...
27届实习投递记录
0
6
...
实习生应该准时下班吗
0
7
...
职场吐槽大会
0
8
...
面试常问题系列
0
9
...
面试中的破防瞬间
0
10
...
我是XXX,请攻击我最薄弱的地方
0
牛客网
牛客网在线编程
牛客网题解
牛客企业服务