mysql常用sql语法

2 篇文章 0 订阅
2 篇文章 0 订阅
查询数据量:
select count(1) from  表名  (查出该表的全部数据的数据量)

简单查询:
select * from 表名 (查出该表的所有数据所有列的数据)
select s.xxx,s.xx from 表名 as s (把表设置别名s 只查s.xxx和s.xx两列的数据)

排序:
select  * from 表名 order by 排序的列名  排序条件(asc  升序| desc 倒序 )(根据排序的列名查出所有的数据并进行排序)

分组:
select  * from 表名 group by 分组列名 (查出分组后的表的所有列的数据,分组列名如果有相同的数据只会显示一条)

分组加条件:
select  * from 表名 group by 分组列名 having 条件 (查出分组后的表的所有列的数据,分组列名如果有相同的数据只会显示一条,如果想在分组后使用条件 可以使用 having 关键字,后面加上你的条件)

不匹配:
select  * from 表名 where 列名 not in  条件  (not in 是查找列名不在条件中的数据)

分条获取:
select  * from 表名 limit 1 ( limit 如果后边是一个参数,表示是取的数量,limit 如果是两个参数 (limit 1,2)表示从第几条取几条)

select  * from 表名 limit 1 offset 2( limit 取几条,offset 跳过多少条)

查询第排列第二的数据:
select e.emp_no,max(s.salary),e.last_name,e.first_name from  employees as e inner join salaries as s on e.emp_no=s.emp_no   where s.salary <(select  max(s.salary) from salaries as s  )      (使用子查询,查出salary 第二大的数据)

内连接简历表:
SELECT sCurrent.emp_no, (sCurrent.salary-sStart.salary) AS growth FROM (employees AS e
INNER JOIN salaries AS sCurrent ON e.emp_no=sCurrent.emp_no AND sCurrent.to_date='9999-01-01' INNER JOIN salaries AS sStart ON e.emp_no=sStart.emp_no AND sStart.from_date=e.hire_date)  (使用内连接 建立临时表)

排序编号:
1.DENSE_RANK()函数: select s.emp_no,s.salary,DENSE_RANK() OVER (order by salary DESC) from salaries as s (DENSE_RANK() OVER (排序条件)根据排序条件进行编列序号,条件列如果相同则序号相同) 

RANK()函数:
在计算排序时,若存在相同位次,会跳过之后的位次。
例如,有3条排在第1位时,排序为:1114······

ROW_NUMBER()函数:
这个函数赋予唯一的连续位次。
例如,有3条排在第1位时,排序为:1234······


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值