sql
一只放羊的
这个作者很懒,什么都没留下…
展开
-
mysql利用join优化子查询
有表user(id,name)和code(id,student_code)如果要查询code在user中的对应的全部内容(没有就为null)方式1(子查询):select a.id , a,name , (select b.student_code from code c where c.id=u.id) from user u方式2(left join查询)select u.id , u.name , c.student_codefrom user u left join code co原创 2020-05-20 17:09:56 · 293 阅读 · 0 评论 -
mysql使用join更新表
有表user(id,name)和code(id,student_code),如果要更新user中某一条记录,且更新条件需要依赖其他查询的查询结果(比如code的查询结果)。例如我们要更新student_code=1010的同学在user的name则可以写update user u join(select id from code c inner join user u on c.id=u.id) r on r.id=u.id set u.name='小明'...原创 2020-05-20 16:53:08 · 389 阅读 · 0 评论 -
centos6安装mysql
centos6安装mysql前言安装mysql1.检测系统是否已经安装过mysql或其依赖,若已装过要先将其删除,否则第4步使用yum安装时会报错:2.从mysql的官网下载mysql57-community-release-el6-5.noarch.rpm(注意这里的el6-5即适配RHEL6.5的版本,如果下载了其它版本后面的安装过程中可能会报错)3.安装第一步下载的rpm文件4.使用yum安...原创 2019-10-23 17:02:30 · 414 阅读 · 0 评论 -
datax之自定义sql
例如写入方表B有字段(b,c) ,读入方表A有字段(a),需求是将表A的a字段按照某一规则拆分成两部分,两部分分别存入B的b和c字段,那么单纯的字段之间的映射就不再适用,我们就需要借助querySql这个属性来解决这个问题。querySql里面可以自定义sql语句,你查询出来的字段你可以定义别名,别名的类型和写入方的字段名称和类型一致,就能做到自定义映射。...原创 2019-07-05 16:40:15 · 5758 阅读 · 0 评论 -
mysql之时间截取函数DATE_FORMAT
我有个datatime类型的数据,格式为yyyy-mm-dd hh-mm-ss ,现在我需要把这个数据分成两部分分别为 yyyy-mm-dd 和 hh-mm-ss,那么我就需要借助函数date_format()来实现。...原创 2019-07-05 10:24:30 · 6374 阅读 · 0 评论 -
MySQL DATEDIFF函数
作用:DATEDIFF函数计算两个DATE,DATETIME或TIMESTAMP值之间的天数。语法如下:DATEDIFF(date_expression_1,date_expression_2)得出来的结果是 date_expression_1 - date_expression_2的天数差注意:1.是前面天数减去后面天数2.DATEDIFF函数接受两个任何有效日期或日期时间值的参数。...原创 2019-05-26 13:48:07 · 1729 阅读 · 0 评论 -
LeetCode之部门工资前三高的员工
有表departmentEmployee编写一个 SQL 查询,找出每个部门工资前三高的员工。例如,根据上述给定的表格,查询结果应返回:±-----------±---------±-------+| Department | Employee | Salary |±-----------±---------±-------+| IT | Max | 9...原创 2019-05-22 11:30:22 · 283 阅读 · 0 评论 -
leetCode之 连续出现的数字 sql语句
1.题目有表Logs,要求编写一个 SQL 查询,查找所有至少连续出现三次的数字2.我的答案select DISTINCT Num as ConsecutiveNumsfrom(select num ,casewhen @agent = num then @count := @count + 1when (@agent := num) is not null then @cou...原创 2019-05-21 21:14:47 · 239 阅读 · 0 评论 -
sql之case用法
1.case expressionwhen value1 then returnvalue1when value2 then returnvalue2when value3 then returnvalue3else defaultvalueend例如:有表:执行:select name , (case NAMEwhen ‘世龙’ then ‘好孩子’else ‘坏孩...原创 2019-05-21 19:37:15 · 188 阅读 · 0 评论 -
sql之having用法
having经常和group by 联用,并且having需要和聚合函数应用。例如查询num出现至少三次的numselect distinct Num as ConsecutiveNums from LogsGROUP BY NumHAVING count(Num)>=3...原创 2019-05-09 22:30:00 · 10960 阅读 · 0 评论 -
mysql四大排名函数(row_number、rank、dense_rank、ntile)使用简介
有如下表1.row_numberrow_number在排名时序号 连续 不重复,即使遇到表中的两个3时亦如此执行select row_number() OVER(order by e.salary desc) as row_num , e.salaryfrom employee e结果如图注意:在使用row_number实现分页时需要特别注意一点,over子句中的order by...原创 2019-05-09 12:30:32 · 22692 阅读 · 14 评论 -
sql之查询子临时表在使用时要加别名
select(if((select count(e.Salary) from (select distinct e.Salary from Employee e) e)>=N, ( select min(e.Salary) from (select distinct e.Salary from Employee e order by...原创 2019-05-09 11:10:54 · 2199 阅读 · 0 评论 -
sql之if用法
1.if(exp1,exp2,exp3)exp1是一个boolean表达式,exp1是true执行exp2,否则执行exp32.ifnull(exp1,exp2)从exp1开始检测,如果遇到不是null的就直接返回该值原创 2019-05-09 11:03:33 · 702 阅读 · 0 评论 -
sql之limit
limit用法:1. limit m:表示从第一条数据开始检索m条数据2. limit m,n:表示从第m-1条数据开始检索n条数据3. limit m , offset n:表示从n-1条数据开始检索m条数据...原创 2019-05-08 21:27:13 · 136 阅读 · 0 评论 -
sql外联查询
select 字段from table1 left join table2on table1.啥=table2啥on 和 外联配套原创 2019-05-08 21:02:09 · 864 阅读 · 0 评论 -
sql之数据分组并找出每组某一字段为最大值的记录
再牛客上做了道题,说要查找所有员工最新的薪水情况,其表如下表名:salaries主要字段如下:emp_no(primary_key):职工号salary:薪水to_date(primary_key):发工资的时间我的理解:最最新的薪水情况也就是每个员工最晚发工资的时间对应的工资我的思路:1.将salaries中的数据按照emp_no分组,意在得到每一个职工的所有发工资记录2.每...原创 2019-04-14 12:34:26 · 5384 阅读 · 1 评论 -
mysql中where条件判定值啥时候用单引号
单引号一般用在字符串上比如 where name=‘xihaha’;当判定值不是字符串时就不需要单引号,比如一个字符char、int等等原创 2019-04-08 17:10:07 · 1319 阅读 · 0 评论 -
sql中all和any的区别
假如有表:select * from score where score>any(select score from score)表示只要比子查询中其中的一个结果大就行,带有or的成分。结果为12大不过任何一个数不满足;13比12大满足;15比12大满足;57比12大满足;select * from score where score>all(select score fr...原创 2019-03-05 08:32:52 · 763 阅读 · 0 评论