mysql学习笔记
Cobian_Kurt
这个作者很懒,什么都没留下…
展开
-
SQL中的null问题汇总
比较操作符 with null任何值和NULL使用比较运算符(>,<,>=,<=,<>,=)或者(in, not in, any/some, all)比较时,返回值都为NULLin / not in with nullselect * from test;+------+------+ | a | b | +------+------+ | 1 | 1 | | 1 | NULL | | NULL | NULL | +-.原创 2021-01-16 23:03:02 · 342 阅读 · 0 评论 -
SQL面试题一道(偏实际业务)
题目:Table Design小 Q 做了一个宠物周边购物 APP, 商品有小猫、小狗等不同宠物的玩具周边、口粮。用户在 App中可以浏览商城首页,点击浏览商品详情,加商品到购物车里,下订单,给商品打分。Q1 为了更好的了解用户的需求,小 Q 希望能够方便的分析用户数据,请你帮助他设计以下几张数据表:- t_dwd_app_user_info_ad- t_dwd_app_goods_info_ad- t_ods_app_user_event_ah-- Q1-- t_dwd_app_use原创 2020-12-02 00:10:44 · 215 阅读 · 0 评论 -
一些比较复杂的SQL题目
1.计算次日、三日、七日留存2. 计算最大连续登陆天数3.每个班平均分大于80分的人数及占比4.topN问题4——5题表格5. 找出2017年入学,专业为计算机的年龄最小的10位同学select name, id, class from(select name, id, class, rank() over(order by age) as rankingfrom tb_studentwhere in_time = 2017 and major = '计算机') as twhere r原创 2020-10-25 19:05:09 · 3527 阅读 · 1 评论 -
牛客网SQL刷题记录
查找入职员工时间排名倒数第三的员工所有信息,为了减轻入门难度,目前所有的数据里员工入职的日期都不是同一天SELECT * FROM employees ORDER BY hire_date DESC LIMIT 2,1;ORSELECT * FROM employees x WHERE 3 = (SELECT SUM(x.hire_date <= y.hire_date) FROM employees y)查找各个部门当前(dept_manager.to..原创 2020-10-24 09:03:29 · 224 阅读 · 0 评论 -
SQLZOO刷题记录
此文记录sqlzoo的全部刷题记录,不包括那些比较简单的题1.SELECT names表名: world字段名: name continent area population gdp capital tld flagFind the capital and the name where the capital includes the name of the country.SELECT capital, nameFROM worldWHERE capital like co原创 2020-10-23 13:53:09 · 422 阅读 · 0 评论 -
Mysql字符串函数
substr(string A, int start, int len) 返回A的子字符串concat(string A, string B, string C, …) 返回ABC拼接成的字符串concat_ws(sting X, string A, string B, string C,…) 返回由X间隔ABC拼接成的字符串concat_with_string的缩写length(string A)trim(string A)/ltrim(string A)/rtrim(string A).原创 2020-10-20 09:22:58 · 100 阅读 · 0 评论 -
Mysql窗口函数
窗口函数的基本语法如下:<窗口函数> over (partition by <用于分组的列名> order by <用于排序的列名>)<窗口函数>的位置,可以放以下两种函数:专用窗口函数序号函数:row_number() / rank() / dense_rank()分布函数:percent_rank() / cume_dist()前后函数:lag() / lead()头尾函数:first_val() / l原创 2020-10-14 16:17:45 · 1063 阅读 · 2 评论 -
Mysql子查询
子查询分类按照子查询结果集的行列数的不分为4种标量子查询(结果集中只有1行1列)列子查询(结果集中只有1列多行)行子查询(结果集中只有1行多列)表子查询(结果集一般为多行多列)按子查询出现在主查询中的不同位置分为4中select后面:仅支持标量子查询from后面:支持表子查询where/having后面:支持标量、列、行子查询exists后面(相关子查询):支持表子查询exists子查询先执行主查询,然后将主查询的结果根据子查询进行过滤,子查询中涉及到主查询中用到的字原创 2020-10-14 09:01:07 · 734 阅读 · 0 评论 -
Mysql时间函数汇总
创建表格并插入数据create table timefunc(str_time varchar(20),date_time datetime);insert into timefunc values('2020-09-28', '2020/09/28');insert into timefunc values('2020-09-28 10:10:10', '2020/09/28 10:10:10');insert into timefunc values('28-09-2020', '28-0原创 2020-09-28 17:20:08 · 243 阅读 · 0 评论 -
Mysql查询语句的执行顺序
select distinct afrom b left join con b.a = c.awhere d = 1group by ehaving avg(f) > order by g desclimit h 3,3执行顺序(1)from(2) on(3) join(4) where(5)group by(开始使用select中的别名,后面的语句中都可以使用)(6) avg,sum…(7)having(8) select(9) distinct(10) ord原创 2020-09-23 15:44:07 · 308 阅读 · 0 评论 -
关于Mysql的TIPS(持续更新)
where 后面不能直接跟聚合函数。一般来说,select中有聚合函数的话,只能再同时选出分组依据的字段(group by 后面的)。not in关键字不会自动忽略null值,需要手动剔除;in关键字会自动剔除。having中可以加聚合函数(先执行group by后,就可以使用聚合函数了)select、from、where、having 后面都可以加子查询。其中select不常用,from一般将子查询的结果作为临时表和外层查询联动,where和having类似,都是先用子查询查..原创 2020-09-19 21:10:20 · 94 阅读 · 0 评论 -
Mysql 中的 desc/explain 和 show
explain/descexplain或desc可用来查看表的基本信息和显示mysql如何使用索引来处理select语句以及连接表。-- 显示数据表各字段含义explain/desc <表名>-- 显示sql的执行效率explain/desc <sql>举例explain select * from emp \G*************************** 1. row *************************** id原创 2020-09-19 13:59:25 · 1129 阅读 · 0 评论