MySQL常用关键字
1.distinct
返回列值,去除重复值
SELECT DISTINCT 列名称 FROM 表名称
2.order by
根据字段由小到大排序(系统默认由小到大),
- 若第一个字段重复了,order by后再加一字段再比较。
- 也可将sal换成数字(代表在表中是第几个字段,从1开始计数)
select name,job,sal from table_name where name = ‘张三’ order by sal;
3.asc desc
手动指定按字段由小到大排序(升序关键字 asc)(降序关键字desc)
select name,job,sal from table_name where name = ‘张三’ order by sal desc;
4.limit
返回部分条数据
SELECT * FROM table LIMIT start_index,num_Line; // 表示从start_index开始 num_Line行数据
SELECT * FROM table LIMIT 0,-1; // 检索记录行 0-last.全部数据
SELECT * FROM table LIMIT 5; //检索前 5 个记录行
5. rank() dense_rank() row_number()
将表中按钱顺序排名。
注意:MySQL有rank关键字,建议将rank替换为`rank` 。不是单引号 是键盘1左边的符号。
rank():返回的相关等级会跳跃;
dense_rank():返回的相关等级不会跳跃;
row_number():返回的是行信息,没有排名;
select employee_name,money,rank() over(order by money) `rank`,dense_rank() over(order by money) dense_rank,row_number() over(order by money) row_numberfrom salary;
6.group by
将数据按照 group by 后面的字段分组,只返回每组的一条统计信息。即将字段值重复的行合并为一行
https://blog.csdn.net/qq403580298/article/details/90756352
每一个班级里面最高分数的同学是谁。
select name, class , max(score) from test_group group by class;
7.partition by
partition by关键字是分析性函数的一部分,它和聚合函数(如group by)不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,
partition by用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组。
partition by 与group by不同之处在于前者返回的是分组里的每一条数据,并且可以对分组数据进行排序操作。后者只能返回聚合之后的组的数据统计值的记录。
(1)把每个人学生的成绩按照升序排名 (思路:根据学生姓名分组 根据每个人成绩排序)
select *,ROW_NUMBER() over( partition by Name order by Score ) 排名 from UserGrade;
(2)把每个学科的成绩分别进行排名 (思路:根据学科分组 根据成绩排序)
select *,ROW_NUMBER() over( partition by Course order by Score ) 排名 from UserGrade;
8.having
having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录。
having与where的区别:
having是在分组后对数据进行过滤
where是在分组前对数据进行过滤
having后面可以使用聚合函数
where后面不可以使用聚合
在查询过程中执行顺序:from>where>group(含聚合)>having>order>select。
显示每个地区的总人口数和总面积.
select region, sum(population), sum(area) from bbc group by region;显示每个地区的总人口数和总面积.仅显示那些面积超过1000000的地区。
select region, sum(population), sum(area)
from bbc
group by region
having sum(area)>1000000;
不能用where来筛选超过1000000的地区,因为表中不存在这样一条记录。
9.in
in常用于where表达式中,其作用是查询某个范围内的数据。not in与in作用相反
select * from where field in (value1,value2,value3,…)
查询book表中id为2和4的所有数据:
select * from where id in (2,4)
10.on
on:作用是作为生成临时表的条件 。
where:临时表生成后,作为筛选。
on是生成临时表时使用的条件,上面我们采用的是左外连接,左外连接是以左表为基础的,左表的记录将会全部表示出来,而右表只会显示符合搜索条件的记录。也就是说emp是左表,dept是右表,条件是emp的deptno与dept中的deptno相等且为40时才连接,但emp表中不存在deptno为40的记录,也就是右表没有符合条件的记录,而记录不足的地方均用NULL来补充。
而where是在临时表生成好后,再对临时表进行过滤。也就是说emp表与dept的连接条件只是emp的deptno与dept中的deptno相等,然后在对生成的临时表进行筛选,由于emp表中不存在deptno为40的记录,所以未找到符合条件的记录。
由于内连接是从结果表中删除与其他被连接表中没有匹配行的所有行,所有在内连接时on和where的结果是相同的。而左外、右外与全连接由于它的特殊性,on和where造成的差别大小取决于表达式和表中的数据。
11.datediff
DATEDIFF() 函数返回两个日期之间的天数。
SELECT DATEDIFF('2008-12-30','2008-12-29') AS DiffDate
DiffDate |
---|
1 |
SELECT DATEDIFF('2008-12-29','2008-12-30') AS DiffDate
DiffDate |
---|
-1 |
12.in和exists
1. in()适合B表比A表数据小的情况
2. exists()适合B表比A表数据大的情况
当A表数据与B表数据一样大时,in与exists效率差不多,可任选一个使用.
select * from A where id in(select id from B)select a.* from A a where exists(select 1 from B b where a.id=b.id)
https://blog.csdn.net/weichi7549/article/details/108181623
13.decimal数据类型
float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位)double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E308(15个有效位)decimal:数字型,128bit,不存在精度损失,常用于银行帐目计算。(28个有效位)
decimal(a,b)
a指定指定小数点左边和右边可以存储的十进制数字的最大个数,最大精度38。 b指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从0 到 a之间的值。默认小数位数是 0。
score decimal(5,2) -- 取值范围是 -999.99 到 999.99
14.UNION和UNION ALL
UNION用于合并两个或多个select语句的结果集,多个select内部必须有相同数量的列,数据类型相似,列顺序相同。
select name from table1
union
select name from table2
union会把重复的值过滤掉,union all会把重复的值显示出来。
MySQL常用关键字相关推荐
- mysql常见关键字的用法_MySQL 常用关键字用法详解
MySQL 常用关键字用法详解 在开发工程中,操作数据库的时候经常会有不同类型的条件查询,除了使用where外,Mysql本身也提供了很多常用的关键字.本文主要介绍一些常用的关键字,像update.i ...
- MYSQL常用命令(转载)
1.导出整个数据库 mysqldump -u 用户名 -p --default-character-set=latin1 数据库名 > 导出的文件名(数据库默认编码是latin1) mysqld ...
- MySQL 常用SQL优化
MySQL 常用SQL优化 MySQL 常用SQL优化: 一.大批量插入数据: 1.对于load MyISAM存储引擎的表,可以通过关闭打开MyISAM表非唯一索引的更新来提升导入速度: 例:my ...
- php mysql curd_Php mysql 常用代码、CURD操作以及简单查询
C/S:Client Server B/S:Brower Server php主要实现B/S LAMP :Linux系统 A阿帕奇服务器 Mysql数据库 Php语言 mysql常用代 ...
- MySQL常用语句一、连接MySQL格式:mysql-h主机地址-u用户名-p用户密
一.连接MySQL 格式: mysql -h 主机地址 -u 用户名 -p 用户密码 1.例1:连接到本机上的MYSQL. 首先在打开DOS窗口,然后进入目录 mysql bin,再键入命令mysql ...
- Mysql常用基础命令操作实战
目录 一 启动与关闭MySQL 3 1.1 单实例MySQL启动与关闭方法 3 ※1※ 常规启动关闭数据库方式(推荐) 3 1.2 多实例MySQL启动与关闭 ...
- mysql 语句块语法_MySQL ------ MySQL常用语句的语法 (三十四)
MySQL常用的语句语法 注意:1. | 符号用来指出几个选中中的一个,因此NULL | NOT NULL 表示给出null 或 not null 2.包含在方括号中的关键字或子句是可选的(如 [li ...
- mysql常用函数参考
mysql常用函数参考 对于针对字符串位置的操作,第一个位置被标记为1. ASCII(str) 返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL,返回 ...
- mysql 分库分表 建表,mysql 分库分表 建表MySQL常用操作
通过命令行启动.停止MySQL服务器: start: net start mysql stop: net stop mysql 连接MySQL服务器:\>mysql -h127.0.0.1 -u ...
最新文章
- mysql 同一张表 某个字段更新到另一条数据上_面试基础:数据库MySQL基础入门(下)...
- linux日志服务是哪个,『学了就忘』Linux日志管理 — 2.日志服务rsyslogd
- [剑指offer]面试题22:栈的压入、弹出序列
- C++ —— C++内联函数
- LeetCode 1984. 学生分数的最小差值
- 服务器运行容器工具大盘点!
- PHP如何有效实现多视频同时上传功能
- python数学计算模块之math常用函数学习使用
- 使用git命令把自己的代码上传到gitlab上
- Java比较器-学习
- 黑帽SEO的作弊手法:
- 中国广电即将放号,感受到压力的中国移动率先推出19元5G套餐
- 移动端300ms延迟_移动端300ms延迟的解决方法
- 写给Python程序员的PHP快速入门教程
- 水库大坝实时安全监测特点分析
- 加强计算机管理,浅谈如何加强高校计算机专业管理
- QT实现的自定义按键精灵
- python硬币面值组合_【算法27】硬币面值组合问题
- elementUI tab 切换 table表头消失
- Centos7静默安装Oracle11gR2
热门文章
- 对微分和导数的区别理解
- cocos2d-x游戏开发系列教程-超级玛丽08-消息机制
- 2011年电子地图网站变化
- 简单认识JavaScript 与 DOM结构的文本、标签和属性节点
- 矩形选框工具和矩形工具的区别
- 怎么清除矩形的下边框html,ps如何去除不要的东西 在工具箱内找到矩形选框工具...
- C# -爬虫之WebBrowser跨域跨iframe获取网页源码
- 排课表--拓扑排序【自己写的拓扑排序方法】[1]
- 信捷XC PLC与7台海利普变频器 ,信捷XC系列PLC与7台海利普变频器通讯
- 如何用免费版EssentialPIM Pro Business管理你的个人信息V11.1