数据库(mysql语句)循环语句

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 数据库(mysql语句)循环语句

例题1:


20到50之间能被5除余1的所有自然数的和


EDECLARE @i int
DECLARE @s int
SET @s=0
SET @i=20
白WHILE @i <=50
BEGIN
IF(@i%5=1)
SET @s = @s + @i
SET @i=@i+1
END
PRINT'20到50之间能被5除余1的所有自然数的和是'+cast(@s as varchar(20))


2626bd2a01244328be2822cdffd5b958.png


例题2:


实现如下图


5f3d4605067d4ee5a8d6734a70398ebb.png

代码


DECLARE @i int
DECLARE @j int
DECLARE @str varchar(50)
SET @i = 1
WHILE @i<=5
BEGIN
SET @j = 1
SET @str=''
WHILE @j<11-@i*2
BEGIN
SET @str = @str +'"
SET @j = @j+1
END
SET @j= 0:
WHILE @j<2*@i-1
BEGIN
SET @str=@str+CAST( @i as CHAR(1))+''
SET @j = @j + 1
END
PRINT @str
SET @i=@i +1
END


例题3:

523c7094670e4888b7cd0c93a3421ec8.png


代码:power表示power(i,j)-----i的j次方


DECLARE @i int
DECLARE @j int
DECLARE @temp int
DECLARE @str varchar(50)
SET @i = 1
WHILE @i<=5
BEGIN
SET @j= 1
SET @str =''
WHILE @j <= @i
BEGIN
SET @str = @str +''+ CAST( power( @i, @j ) AS VARCHAR(20))
SET @j=@j+1
END
PRINT @str
SET @i = @i + 1
END


例题4:


实现


ac74f675733143069984785a04afb086.png

代码:


DECLARE @i INT
DECLARE @color VARCHAR(50)
SET @color ='红橙黄绿青蓝紫’
SET @i=0
WHILE @i < 7
BEGIN
PRINT SUBSTRING( @color, @i +1,7-@i)+SUBSTRING(@color,1,@i)
SET @i=@i+1
END


注:substring是从1开始,第一个参数表示要截取的字符串,第二个i和第三个j表示从第i个开始截,截取j个,如:str=HELLO, substring(str,2,4),得到的结果为:ELLO


如果是sucstring(str,2):表示从第二个开始截,一直截到最后一个字符


例题5


实现


2439c1ea88e649818053f4607c826cae.png


代码:


注:


replicate的用法


replicate(’L‘,1)+'手机'   得到:L手机

第一个字符表示要重复的字母或字符串,第二个表示重复次数


reverse的用法:


reverse就是将字符串倒过来输出,如:一二三四五六七八九,操作后变为九八七六五四三二一


两个方法的主要思想:


该方法把每一行的字符拆成三部分看,例如:


一二三四五六七八九      九       九八七六五四三二一

方法1:


DECLARE @i INT
DECLARE @inwords VARCHAR (50)
DECLARE @outwords VARCHAR(50)
DECLARE @1en INT
SET @inwords ='一二三四五六七八九'
SET @1en=LEN(@inwords)
SET @i =0
WHILE @i<= @1en
BEGIN
PRINT SUBSTRING @inwords, 1,@1en-@i)
+REPLICATE(SUBSTRING (@inwords,@1en,1),2*@i+1 )
+REVERSE(SUBSTRING(@inwords ,1,@1en-@i))
SET @i = @i + 1
END


方法2:


DECLARE @i INT, @j INT, @k INT
DECLARE @inwords VARCHAR(50)
DECLARE @len INT
SET @inwords ='一二三四五六七八九'
SET @1en=LEN(@inwords)
SET @inwords =@inwords+'九'+REVERSE(@inwords)
SET @i= 0
SET @j = 9
SET @k= 3 
WHILE @i <= @1en
BEGIN
PRINT STUFF( @inwords, @j, @k, REPLICATE('九',@k))
SET @i = @i + 1
SET @j=@j-1
SET @k=@k+2
END


stuff字符串函数:


STUFF字符串函数是将字符串插入到另一个字符串中。它会删除开始位置第一个字符串中的指定长度的字符,然后将第二个字符串插入到开始位置的第一个字符串中,语法如下。


STUFF(<character_expression>,<开始>,<长度>,<character_expression>)


<character_expression>参数是给定的字符串数据,可以是字符或二进制数据的常量,变量或列。<start>参数是一个整数值,指定开始删除和插入的位置,可以是BIGINT类型。如果<开始>或<长度>参数为负数,则返回NULL字符串。如果<start>参数比第一个<character_expression>长,则返回一个NULL字符串。 <length>参数可以是BIGINT类型,它是一个整数,指定要删除的字符数。如果<length>比第一个<character_expression>长,则删除发生到最后一个<character_expression>中的最后一个字符。


DECLARE @FullName       VARCHAR(100)
DECLARE @Alias          VARCHAR(20)
SET @FullName = 'Jeffcky Wang'
SET @Alias = ' "Superman" '
SELECT STUFF(@FullName, CHARINDEX(' ', @FullName), 1, @Alias) AS [FullName] 


82a5e30a70b9424491d72577302da4ef.png

harindex:表示返回指定字符串的位置


如:


1.简单用法


1. select charindex('test','this Test is Test')
2.


查询结果:


20201104155404837.png

3.大小写敏感


select charindex('test','this Test is Test'COLLATE Latin1_General_CS_AS)


查询结果:

20201104155558600.png

返回结果为0???,不要怀疑你的眼睛,因为大小写敏感,找不到test所以返回的就是0,默认情况下, SQL SERVER是大小不敏感的,所以我们简单示例中返回结果不为0,但是有些时候我们需要特意去区分大小写,因此专门SQL SERVE提供了特殊的关键字用于查询时区分大小写,其中CS为Case-Sensitve的缩写。


4.大小写不敏感


select charindex('Test','this Test is Test'COLLATE Latin1_General_CI_AS)


查询结果:

20201104155720127.png

我们也可以这样说明是大小写不敏感,其中CICase-InSensitve的缩写,即大小写不敏感,当然我们没必要多此一举。


参考:http://t.csdn.cn/Um24k


如果对sql内置函数不熟:http://t.csdn.cn/exzcN

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3天前
|
关系型数据库 MySQL Linux
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
|
3天前
|
SQL 关系型数据库 MySQL
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
|
3天前
|
SQL 关系型数据库 MySQL
【MySQL-1】理解关系型数据库&数据的数据模型
【MySQL-1】理解关系型数据库&数据的数据模型
|
5天前
|
关系型数据库 MySQL 数据库
Docker数据库Mysql
Docker数据库Mysql
|
5天前
|
存储 SQL 关系型数据库
mysql查询数据库表大小怎么操作
mysql查询数据库表大小怎么操作
|
5天前
|
关系型数据库 MySQL PHP
【PHP 开发专栏】PHP 连接 MySQL 数据库的方法
【4月更文挑战第30天】本文介绍了 PHP 连接 MySQL 的两种主要方法:mysqli 和 PDO 扩展,包括连接、查询和处理结果的基本步骤。还讨论了连接参数设置、常见问题及解决方法,如连接失败、权限和字符集问题。此外,提到了高级技巧如使用连接池和缓存连接信息以优化性能。最后,通过实际案例分析了在用户登录系统和数据管理中的应用。
|
5天前
|
关系型数据库 MySQL 数据库
【MySQL】:数据库事务管理
【MySQL】:数据库事务管理
18 0
|
6天前
|
SQL 关系型数据库 MySQL
【MySQL】:探秘主流关系型数据库管理系统及SQL语言
【MySQL】:探秘主流关系型数据库管理系统及SQL语言
12 0
|
6天前
|
SQL 关系型数据库 数据库
【MySQL】:DDL数据库定义与操作
【MySQL】:DDL数据库定义与操作
9 0
|
6天前
|
Java 关系型数据库 MySQL
【JDBC编程】基于MySql的Java应用程序中访问数据库与交互数据的技术
【JDBC编程】基于MySql的Java应用程序中访问数据库与交互数据的技术