数据库技能实战进阶之常用结构化sql语句(中)

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

   在上篇文章中我们介绍到查询里面关于order by对查询结果的排序处理,接下来我们将介绍其他的一部分操作。

10、limit 限制查询结果条数

   在mysql数据库里面我们要想显示前10行,或者第x行到n行之类的格式显示,这时limit将是我们最好的选择。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
select   from   user  limit 5; #显示前5行
1    kailinux    javadocker
2    LInuxmysql     NULL
3    python     NULL
4    LInux    redis
5    linux    0
假如我们想看倒数3行,但是limit不支持倒序,我们可以用以前的方式实现
select    from   user  limit 21,3;
26    redispyhon    
27    PYthon234    
28    winner1234    
从3开始显示5条
select    from   user  limit 3,5;
4    LInux    redis
5    linux    0
6    redis     name 
7    kailinux    javadocker
8    LInux    redis

11、mysql 常用函数

 连接函数concat()

语法:CONCAT(str1,str2,...) 可以用来拼接查询结果,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
select    CONCAT(username, '*****' , password from  user   #将 user 表的username和 password 列用4
个****拼接。
结果:
kailinux*****javadocker
LInuxmysql***** NULL
python***** NULL
LInux*****redis
linux*****0
用下划线或者横线拼接
kailinux_javadocker
LInuxmysql_NULL
python_NULL
LInux_redis
kailinux-javadocker
LInuxmysql- NULL
python- NULL
 
select    CONCAT(username, '' , password from  user  #不指定间隔直接拼接两列
kailinuxjavadocker
LInuxmysqlNULL
pythonNULL
LInuxredis
 
  由此可以看出concat()函数在拼接的时候可以指定任意连接符,达到对数据查询不同结果的显示。

随机函数rand()

  这种随机函数,可以在查询结果里面随机排序之类的处理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
select    *   from  user   order  by  rand();
5    linux    0
8    LInux    redis
15    python    javadocker
16    LInux    
2    LInuxmysql     NULL
7    kailinux    javadocker
28    winner1234    
20    centos    
17    linux    999
6    redis     name 
3    python     NULL
26    redispyhon    
22    rediswinner    
25    PYTHoREDIS    
27    PYthon234    
这种随机数里面就可以用来抽奖之类的,我们将随机排序的再获取3行,
select    *   from  user   order  by  rand() limit 3;
23    PYthonmysql    
27    PYthon234    
4    LInux    redis

统计列数count()

select count(*)  from user   就可以查询出某表里面包含多少条数据等,这里挑选列时一般选择主键相关的列。

1
2
3
4
select    count (*)   from  user   ;
24
 
select  count (id )  from  user   ;  但是这种在数据量大时会比较慢

求和函数sum()

1
2
3
select    sum (id)   from  user   ; #对id求和
 
356

求最大值max()

1
2
select    max (id)   from  user   ;
28

求最小值函数()

1
2
select    min (id)   from  user   ;
1

平均函数avg()

1
2
select    avg (id)   from  user   ;
14.8333

分组函数group  by

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
select    username, count (*)  from  user   GROUP  BY  username ; #按用户名分组,可以统计
出相同用户的信息
 
centos    1
kailinux    3
LInux    5
LInuxmysql    1
python    2
PYthon234    1
PYTHonmysql    2
PYTHoREDIS    1
redis    3
redispyhon    1
rediswinner    1
ubuntu    1
winner1234    1
winnerredis    1

关于多表查询的相关知识请看之前的有关mysql的文章。


本文转自 tianya1993 51CTO博客,原文链接:http://blog.51cto.com/dreamlinux/1908573,如需转载请自行联系原作者

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
4天前
|
SQL Oracle 关系型数据库
sql语句创建数据库
在创建数据库之前,请确保你有足够的权限,并且已经考虑了数据库的安全性和性能需求。此外,不同的DBMS可能有特定的最佳实践和配置要求,因此建议查阅相关DBMS的官方文档以获取更详细和准确的信息。
|
2天前
|
SQL Java 数据库连接
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
|
4天前
|
SQL 缓存 数据库
sql 数据库优化
SQL数据库优化是一个复杂且关键的过程,涉及多个层面的技术和策略。以下是一些主要的优化建议: 查询语句优化: 避免全表扫描:在查询时,尽量使用索引来减少全表扫描,提高查询速度。 使用合适的子查询方式:子查询可能降低查询效率,但可以通过优化子查询的结构或使用连接(JOIN)替代子查询来提高性能。 简化查询语句:避免不必要的复杂查询,尽量使SQL语句简单明了。 使用EXISTS替代IN:在查询数据是否存在时,使用EXISTS通常比IN更快。 索引优化: 建立合适的索引:对于经常查询的列,如主键和外键,应创建相应的索引。同时,考虑使用覆盖索引来进一步提高性能。 避免过多的索引:虽然索引可以提高查询
|
4天前
|
SQL XML 数据库
sql导入数据库命令
在SQL Server中,数据库导入可通过多种方式实现:1) 使用SSMS的“导入数据”向导从各种源(如Excel、CSV)导入;2) BULK INSERT语句适用于导入文本文件;3) bcp命令行工具进行批量数据交换;4) OPENROWSET函数直接从外部数据源(如Excel)插入数据。在操作前,请记得备份数据库,并可能需对数据进行预处理以符合SQL Server要求。注意不同方法可能依版本和配置而异。
|
8天前
|
SQL 自然语言处理 数据库
NL2SQL实践系列(2):2024最新模型实战效果(Chat2DB-GLM、书生·浦语2、InternLM2-SQL等)以及工业级案例教学
NL2SQL实践系列(2):2024最新模型实战效果(Chat2DB-GLM、书生·浦语2、InternLM2-SQL等)以及工业级案例教学
NL2SQL实践系列(2):2024最新模型实战效果(Chat2DB-GLM、书生·浦语2、InternLM2-SQL等)以及工业级案例教学
|
12天前
|
SQL 数据库
数据库SQL语言实战(二)
数据库SQL语言实战(二)
|
12天前
|
SQL 关系型数据库 数据库
【后端面经】【数据库与MySQL】SQL优化:如何发现SQL中的问题?
【4月更文挑战第12天】数据库优化涉及硬件升级、操作系统调整、服务器/引擎优化和SQL优化。SQL优化目标是减少磁盘IO和内存/CPU消耗。`EXPLAIN`命令用于检查SQL执行计划,关注`type`、`possible_keys`、`key`、`rows`和`filtered`字段。设计索引时考虑外键、频繁出现在`where`、`order by`和关联查询中的列,以及区分度高的列。大数据表改结构需谨慎,可能需要停机、低峰期变更或新建表。面试中应准备SQL优化案例,如覆盖索引、优化`order by`、`count`和索引提示。优化分页查询时避免大偏移量,可利用上一批的最大ID进行限制。
38 3
|
5月前
|
SQL Oracle 关系型数据库
本机不安装Oracle客户端,使用PL/SQL Developer连接远程数据库
本机不安装Oracle客户端,使用PL/SQL Developer连接远程数据库
142 0
|
SQL 程序员 数据库
【python】连接sql server数据库,并实现简单的增删改查(1)
Python编程语言越来越受到大家的喜爱,本篇文章就从链接微软数据库进行增删改查操作的讲解
526 0
|
3月前
|
SQL 关系型数据库 数据库连接
Python 连接 SQL 数据库 -pyodbc
以下是如何在 Python 中使用 pyodbc 连接到 SQL 数据库的基本步骤和详解
52 0