
数据库
数据库知识点
algsup
这个作者很懒,什么都没留下…
展开
-
[mysql]leetcode627:交换工资(easy)
题目:case when then else end的用法:--简单Case函数CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女'ELSE '其他' END--Case搜索函数CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女'ELSE '...原创 2019-12-10 23:34:10 · 295 阅读 · 0 评论 -
[mysql]leetcode620:有趣的电影(easy)
题目:620. 有趣的电影代码如下:# Write your MySQL query statement below-- 解题思路:过滤条件为非boring且id为奇数,需要还需要按rating降序排序select *from cinemawhere mod(id,2)=1 and description!='boring'order by rating desc;...原创 2019-12-10 23:17:23 · 225 阅读 · 1 评论 -
[mysql]leetcode601:体育馆的人流量(hard)
题目:601. 体育馆的人流量代码如下:# Write your MySQL query statement below-- 解题思路:自连接三张表,然后三张表的id需要连续,且人流量都要大于等于100select distinct a.*from stadium a,stadium b,stadium cwhere((a.id=b.id-1 and b.id+1=c.id) o...原创 2019-12-10 23:10:43 · 361 阅读 · 0 评论 -
[mysql]leetcode197:上升的温度(easy)
题目:代码如下:# Write your MySQL query statement below-- 思路:自连接,过滤条件为a的温度小于b的温度,且时间相差为1-- datediff(a,b)计算两个时间之差(a-b)select b.Idfrom Weather a,Weather bwherea.Temperature < b.Temperature and dat...原创 2019-12-10 22:49:04 · 226 阅读 · 0 评论 -
[mysql]leetcode196:删除重复的电子邮箱(easy)
题目:代码如下:# Write your MySQL query statement below-- 思路:自连接,删除重复电子邮箱中id大的行delete afrom Person a,Person bwherea.Email = b.Email and a.Id > b.Id;...原创 2019-12-10 22:36:25 · 318 阅读 · 0 评论 -
[mysql]leetcode184:部门工资最高的员工(medium)
题目:184. 部门工资最高的员工代码如下:# Write your MySQL query statement below-- 思路:先对Employee表中的DepartmentId进行分组,然后检索每组里面Salary最高的薪水和部门id-- 将员工表和部门表内连接起来,内连接的条件为id要对应相等select Department.name as 'Depart...原创 2019-12-09 23:07:32 · 263 阅读 · 0 评论 -
[mysql]leetcode183:从不订购的客户(easy)
题目:183. 从不订购的客户代码如下::# Write your MySQL query statement below-- 过滤条件:Customers表的顾客id不在Order表的CustomerId就行了select Customers.name as 'Customers' from Customers where Customers.id not in( ...原创 2019-12-09 22:45:23 · 175 阅读 · 0 评论 -
[mysql]leetcode182:查找重复的电子邮箱(easy)
题目:代码如下:# Write your MySQL query statement below-- 思路:对检索出来的email进行分组,同时每组里面的email数要大于1-- group by字句中的列必须为检索列或者有效表达式-- group by搭配having来过滤分组-- 先对email进行分组,也就是相同的email分为一组,然后使用having过滤掉每组里面的数量需要...原创 2019-12-09 22:36:09 · 334 阅读 · 0 评论 -
[mysql]leetcode181:超过经理收入的员工(easy)
题目:代码如下:# Write your MySQL query statement below-- 思路:使用内连接两张表,a表的经理id与b表的员工id相等且该员工的薪水需要大于经理的薪水-- join on:内连接两张表select a.name as Employeefrom Employee as a join Employee as b on a.Ma...原创 2019-12-09 22:26:06 · 217 阅读 · 0 评论 -
[mysql]leetcode596:超过5名学生的课(easy)
题目:596.超过5名学生的课题解:直接对课表中的class进行分组,用having进行分组过滤,过滤的条件是学生的数量大于等于5,注意要使用distinct,因为学生的课不能重复。代码如下:# Write your MySQL query statement belowselect class from courses group by class having count(...原创 2019-11-28 21:18:10 · 205 阅读 · 0 评论 -
[mysql]leetcode595:大国家(easy)
题目:题解:送分题,很简单的代码如下:# Write your MySQL query statement belowselect name,population,area from Worldwhere area>3000000 or population >25000000;原创 2019-11-28 20:39:48 · 183 阅读 · 0 评论 -
mysql:查询N个连续出现的数字
前言:前面刚做的180.连续出现的数字是查询3个连续出现的数字,倘若要查询连续出现4,5…N个数字呢?当然这个问题肯定使用解决方法的,也可以说是模板。解决方法:1)找规律:我们发现连续的数字是相同的数字,但是id有可能不是连续的,我们就需要通过对结果集进行再次编号,让其变成连续的。原始数据表如下:2)我们需要使用row_number()来对id进行升序排序,sql语句如下:...原创 2019-11-28 20:33:05 · 6764 阅读 · 2 评论 -
[mysql]leetcode180:连续出现的数字(medium)
题目:题解:题解1:由于只需要检索至少连续出现三次的数字,所以我们暴力求解即可,也就是id连续,且num相同。题解2:直接套用查询连续出现N次数字即可。题解1的代码如下:# Write your MySQL query statement below-- 解法1:暴力法,直接查询连续出现三次的数字,也就是id连续,且num相同SELECT DISTINCT l...原创 2019-11-28 19:05:03 · 558 阅读 · 0 评论 -
[mysql]leetcode178:分数排名(medium)
题目:178.分数排名题解:本题的难点是给出分数如何算它排名呢?我们可以先提取出大于等于x(某个分数)的所有分数集合H,将H去重后的元素个数就是x的排名。比如a表的x为3.50,b表中大于等于3.50的不重复分数有4个,所以排名为4。代码如下:-- 建立两个分数表a,b-- a表用来查询分数,b表用来设置排名-- b表分数大于等于a表某个分数的个数就是排名,比如a表的3...原创 2019-11-28 11:13:46 · 376 阅读 · 0 评论 -
[mysql]leetcode177:第N高的薪水(medium)
题目:177. 第N高的薪水题解:将 Salary 去重并从低到高排序,要求返回第n高,用limit语法返回limit n-1,1即可,可能存在null,用临时表查询即可。代码如下:-- create function创建mysql函数-- returns int表示返回类型为int-- begin:函数开始 end:函数结束-- set n=N-1:在函数内部设置n等...原创 2019-11-28 10:46:19 · 273 阅读 · 0 评论 -
[mysql]leetcode176:第二高的薪水(easy)
题目:题解:简单sql查询,直接看代码即可代码如下:# Write your MySQL query statement below-- ifnull:判断第一个表达式是否为null,如果为null,则返回第二个参数的值,如果不为null则返回第一个参数的值-- distinct Salary:不同的薪水-- order by Salary desc:薪水降序排序-- l...原创 2019-11-28 10:06:13 · 200 阅读 · 0 评论 -
MySql:where和on之间的区别
前言:今日学习mysql连接查询,然后突然看到关键字on,不明白是啥意思。然后在网上查询和二哥的帮助下,了解了一些原因,记录如下。where与on之间的区别:1)on后面的是连接(join)条件,代表两个表建立关系所遵循的规则2)where后面的可以看作是筛选条件,是对最终结果集进行过滤所遵循的规则思考:在连接(join)两个表时可以不可以使用where字句呢?答案是肯定的...原创 2019-11-20 22:33:28 · 2437 阅读 · 0 评论 -
修改mysql8.0中数据库的名字
前言:今日在照着书本敲mysql命令,其中在学到数据库的更名的时候,我按照书本上的命令rename database oldname to newname;来更改数据库名就报错了。然后在网上查资料可知,这个命令仅在mysql5.0中存在,然而现在我们大多都使用的是mysql8.0以上版本,所以是不可行的。直接在data文件下,修改数据库的名字是行不通的。解决方法:将旧数据库拷贝新的数据库(本例...原创 2019-10-29 20:39:02 · 4797 阅读 · 0 评论 -
mysql查看数据表文件的存放路径
解决方法:show variables like '%datadir%';效果图:原创 2019-10-29 19:16:03 · 12600 阅读 · 3 评论 -
[mysql]leetcode175:组合两个表(easy)
题目:题解:因为表 Address 中的 personId 是表 Person 的外关键字,所以我们可以连接这两个表来获取一个人的地址信息。考虑到可能不是每个人都有地址信息,我们应该使用 outer join 而不是默认的 inner join。代码如下:# Write your MySQL query statement belowselect FirstName, LastN...原创 2019-10-11 21:58:57 · 185 阅读 · 0 评论