4.数据库表的高级查询
4.数据库表的高级查询
4.1 in
使用场景:查询时,条件字段的值存在某个数据集中 数据集:可以是具体的某几个值,也可以是通过一个子查询得到的数据集 |
select ... from 表名 where 条件字段 in (数据集); |
比如: 从member表中查询用户id为1001,1002,1003的用户信息 select * from member where in(1001,1002,1003); |
select ... from 表名 where 条件字段 not in (数据集); 表示要查询的字段不存在这个数据集中 |
4.2 模糊查询 like
使用场景:查询的时候,条件字段的值不完整的情况下 |
|
% 匹配任意长度的字符串,%所在的位置不同代表的意思不同 |
|
select ... from 表名 where 条件字段 like '%XX'; |
条件字段以任意字符串开头 以XX结尾 |
select ... from 表名 where 条件字段 like 'XX%'; |
条件字段以XX开头 以任意字符串结尾 |
select ... from 表名 where 条件字段 like '%XX%'; |
条件字段包含XX |
比如 查询用户表中手机号以556结尾的用户信息 select * from member where mobilephone like '%556'; |
|
查询用户表中手机号后三位是556的用户信息 select * from member where mobilephone like '_________556'; |
占位符(下划线)_ 11位的手机号,输入9次下划线 |
4.3 分组 group by
使用场景: 按照某一个或多个字段进行分组,必须配合“聚合函数”使用,使用时至少需要一个分组字段。 |
select 查询字段,聚合函数 from <查询涉及到的表> group by 分组字段 having 过滤条件; |
聚合函数:对一组值执行计算并返回单一的值的函数。 sum()、count()、avg()、min()、max() |
having 过滤条件: 在分组结果的基础上再进行过滤,必须用having 过滤条件 |
Select *,max(amount) from invest group by loanid having max(amount)>20000.00 |
4.4 between
使用场景: 条件字段的取值处于两个数据范围内的情况,包含边界值。 |
select ... from 表名 where 条件字段 between 数据A and 数值B; |
比如 找出用户表可用余额在10000.00到40000.00的用户 select * from member where leaveamount between 10000.00 and 40000.00; |
4.5 去重 distinct
使用场景:去除查询结果中的重复数据 |
select distinct 字段名 from <表名>; |
比如 查询所有投资的用户id select distinct memberid from invest; |
4.6 分页 limit
使用场景:取查询结果的前几条 |
select ... from <表名> limit m,n; |
m:索引值从m开始。 n :每页要取多少条。 |
比如 每页取10条展示 第一页: limit 0,10 表示取索引从0开始取10条的记录 第二页:limit 10,10 表示取索引从10开始取10条的记录 那么当每页展示x条数据,取到第y页时,分页语句中的m,n分别为多少? (y-1)x , x |
4.7 排序 order by 排序字段名 降序(desc)、升序(asc)
不写desc、asc,默认升序 |
例如 查询用户信息,以用户名升序排列 select * from member order by regname; |
order by ... desc 降序 |
例如 查询用户信息,以用户id降序排列 select * from member order by id desc; |
order by ... asc 升序 |
例如 查询用户信息,以用户名升序排列 select * from member order by regname asc; |
4.8 select 函数; select 后面直接加函数
数值相关函数 |
|
求字段A的最大、最小、平均、和 |
min(字段A) max(字段A) avg(字段A) sum(字段A) |
日期函数 |
|
获取系统当前日期时间 |
sysdate() |
获取系统当前日期 |
curdate() |
获取系统当前时间 |
curtime() |
获取给定日期的年份、月份 |
year(date) month(date) |
为指定日期增加一个时间间隔 的函数 |
date_add(date,interval expr unit) 例如: select date_add(sysdate(),interval 1 day); 在当前时间增加1天 |
字符串函数 |
|
字符串拼接函数 |
concat(字段A,字段B) select concat(id,regname) from member; select concat('hello','world'); |
字符串截取函数 |
substr(字段A,截取开始的位置position,截取字符个数) select substr(regname,2,3) from member; 用户名从第二个字符开始截取3个字符 |
获取字符串长度的函数 |
length(字段A) select length(regname) from member;获取用户名的长度 |
4.9 select 查询语句的结构
select...查询字段...from..查询涉及到的表....where..关联条件....group by..按主键/id进行分组....having...分组后进行过滤...order by......limit......
4.10 子查询(嵌套查询)
select * from (select id,regname,mobilephone from member) as newtable where newtable.id>3;;
转载于:https://www.cnblogs.com/Aphrodite/p/10064958.html
4.数据库表的高级查询相关推荐
- ylb:SQL 表的高级查询-多表连接和子查询
ylbtech-SQL Server: SQL Server-表的高级查询-多表连接和子查询 SQL Server 表的高级查询-多表连接和子查询. 1,ylb:表的高级查询-多表连接和子查询 返回顶 ...
- mysql查询库表变更信息_PythonMySQL进行数据库表变更和查询
这篇文章主要介绍了Python MySQL进行数据库表变更和查询的相关资料,需要的朋友可以参考下 Python连接MySQL,进行数据库表变更和查询: python mysql insert dele ...
- mysql数据库实验查询_MySQL数据库表数据的查询操作实验
实验3.MySQL数据库表数据的查询操作实验(1) 一.实验目的 掌握SELECT 语句的基本语法格式. 掌握SELECT 语句的执行方法. 掌握SELECT 语句的 GROUP BY 和 ORDER ...
- 通过表单设计器动态生成数据库表以及动态查询的功能实现
表单设计器动态生成数据库表以及动态查询的功能实现 前言 1. 功能实现 1.1 效果说明 1.2 功能流程图 1.3 具体后端实现 1.4 实现效果 2. 尾声 前言 前两天安排了作为Java小码农的 ...
- oracle将查询结果声明为伪表,Oracle查询操作(增删改查,伪表,高级查询)实例讲解...
SQL查询操作:增删改查 一.SQL操作符 算术操作符 + - * / 比较操作符 = != < > <= >= BETWEEN--AND IN LINK IS NULL 逻辑 ...
- 数据库SQL的高级查询
高级查询 高级查询以及导入导出,表的复制.重命名, 1.子查询 定义:一个查询语句中嵌套另一个查询 例如 查询金额超过平均值的订单 select * from orders where amt > ...
- Go 学习笔记(55)— Go 标准库 sql (初始化数据库、插入、更新、删除数据库表、单行查询、多行查询、事务处理)
1. 标准库说明 Go 的标准库中是没有数据库驱动,只提供了驱动接口,有很多第三方实现了驱动,我们这里选择 go-sql-driver 这个实现是目前使用最多的.github 地址是:https:// ...
- 数据库表空间大小查询
Oracle中有两种含义的表大小 一种是分配给一个表的物理空间数量,而不管空间是否被使用.可以这样查询获得字节数: select segment_name, bytes from user_segm ...
- mysql高级操作_mysql数据库表的高级操作
1.复制表结构 语句:create table 表b like 表a; 说明:a.只是使用表a的结构重新创建一个表b. b.只是复制表a的结构,不包含表的数据. 2.备份SQl执行结果 语句:crea ...
最新文章
- 七夕要到了,用Python比心表白
- MPB:西农焦硕组-​土壤微生物响应环境变化的系统发育保守性和环境阈值
- 【numpy】tensordot的用法研究
- java文件用editplus乱码,EditPlus设置编码后,编译时仍然出现乱码
- 操作系统:多处理器编程-- 蒋炎岩老师
- 信息系统项目管理案例3
- 关于MyEclipse对Struts2配置文件较检异常 Invalid result location value/parameter
- MVVM和MVC有什么区别
- 属性面板 脚本_如何在组态王中实现同类型设备公用操作面板的调用---干货
- android资源管理方式,Android资源管理利器Resources和AssetManager
- android8.0学习(1)---Android Treble 概述
- visualmap超过范围改变颜色_换种颜色,换种心情——车身改色
- HBase权威指南【中文版】
- 常见卫星汇总--期待大神补充下载地址
- fix协议封装挑战-数据有效性校验
- jira是干什么_JIRA是什么? | 学步园
- 嗖嗖移动业务大厅项目_会员合作项目:10086移动外呼业务
- three.js 入门详解(一)
- 杨韬的Python/Jupyter学习笔记
- 互联网常用词汇索引表