好的!我们先来看几个图像:
棱形 三角形 正方形 圆形 矩 形 梯形
上面这些图形都是用T-SQL实现的,文章的最后我们一起来用T-SQL画出这些图形。
首先,我们开始回顾一下T-SQL的基本语法:
函数abs(x) :求绝对值 ;
例: select abs ( - 3 ) 值为: 3
sqrt(x) : 求平方根 ;
例: select sqrt ( 4 ) 值为: 2.0
rand([0]) : 返回 0~1 之间的随机float 值 ;
floor(X) :返回小于或等于X 值的最大整数 ;
例: select floor ( 34.5 ) 值为: 34
ceiling(X) :返回大于或等于X 值的最小整数;
例: select ceiling ( 34.5 ) 值为: 35
round(x ,length) :四舍五入函数,length 为正,则对X 小数位数四舍五入,length 为负,则对X 从小数点左边length 位起四舍五入,若length 既为负数且其绝对值大于X 整数部分 数字个数,则函数值为0;
例: select ROUND ( 63.567 , 1 ) 值为: 63.600 select ROUND ( 63.567 , - 1 ) 值为: 60.000 select ROUND ( 63.567 , 0 ) 值为: 64.000 select ROUND ( 63.567 , - 3 ) 值为: 0.000
Sign(X) :求符号函数,X>0 则sign(x)=1; X=0 则sign(X)=0;X<0 则sign(X)=-1
例: select sign ( - 3 ) 值为: - 1 select sign ( 3 ) 值为: 1 select sign ( 0 ) 值为: 0
Power(X,y) :求X 的y 次方;
例: select power ( 4 , 2 ) 值为 : 16
字符串函数
ASCII( 串) :返回字符表达式最左端字符的ASCII 码值;
例: select ASCII ( ' bc ' ) 值为: 98
CHAR(ASCII 码) :用于将ASCII 码转换为字符,如果没有输入0 ~ 255 之间的ASCII 码值,返回值为NULL ;
例: select char ( 97 ) 值为:a
Lower( 串) :把字符串全部转换为小写;
例: select lower ( ' QingPingGuo ' ) 值为: qingpingguo
Upper( 串) :把字符串全部转换为大写;
例: select upper ( ' QingPingGuo ' ) 值为: QINGPINGGUO
LTrim(串), RTrim(串) :去掉左右空格;
例(去左空格): select ' 博客园 ' + LTrim ( ' 青苹果 ' ) + ' 博客园 ' 值为:博客园青苹果 博客园
space( 个数 ) :返回指定个数的空格;
replicate( 串 , 次数 ) :将串重复指定次数;
例: select replicate ( ' 青苹果 ' , 2 ) 值为:青苹果青苹果
Left( 串 , 个数 ) :返回已知串从左边开始指定个数的字符;
例: select left ( ' 青苹果在博客园 ' , 4 ) 值为:青苹果在
Right( 串 , 个数 ) :返回已知串从右边开始指定个数的字符;
例: select right ( ' 青苹果在博客园 ' , 4 ) 值为:在博客园
DataLength(串) :返回串的字节数长度,计算串尾空格。可以用它检查varchar,text等的 动态 长度;
例: select datalength ( ' 青苹果在博客园 ' ) 值为:14
SubString(串, 开始位置, 长度 android ) :返回从字符串左边'开始位置'起数量为'长度'的字符串。其中表达式可以是字符串或二进制串或含字段名或字符型变量的表达式。在这里要注意一下SUBSTRING()函数不能用于TEXT 和IMAGE 数据类型;
例: select substring ( ' 青苹果在博客园 ' , 5 , 2 ) 值为: 博客
Len(串) :返回表达式的长度。注意它返回的是字符数,而不是字节数。不计算串尾空格;
例: select len ( ' 青苹果cnblogs ' ) 值为:10
Replace(' 串 1',' 串 2',' 串 3') :用串 3 替换串 1 中出现的所有串 2 字符;
例: select replace ( ' 青苹果在北京 ' , ' 北京 ' , ' 博客园 ' ) 值为: 青苹果在博客园
Stuff( 串1, 开始位置, 长度, 串2) :删除串1 指定位置开始指定长度的字符串,并在指定位置插入串2;
例: select stuff ( ' 青苹果是程序猿吗? ' , 5 , 3 , ' 攻城狮 ' ) 值为: 青苹果是攻城狮吗?
reverse( 串) :将指定的字符串的字符排列顺序颠倒;
例: select reverse ( ' 12345 ' ) 值为:54321
charindex( 串1 ,串2) :返回串1 在串2 的开始位置,可从所给出的‘ 开始位置' 进行查找;
例: select charindex ( ' guo ' , ' qingpingguo ' ) 值为:9
转换函数
所谓转换函数就是把某种数据类型转换的表达式显示转换成另一种数据类型的函数。
CAST( 表达式 AS 数据类型[( 长度)])
例: select ' 今天是: ' + Cast ( GetDate () as char ( 10 )) 值为: 今天是:07 23 2012
CONVERT( 转换后的目标数据类型[(length)], 表达式[style])
例: select ' 今天是: ' + convert ( char ( 10 ), getdate ()) 值为: 今天是:07 23 2012
下面来看一个求差值的函数 datediff 函数;
DATEDIFF(datepart,date1,date2)
例: select datediff (yy, ' 1988.09.14 ' , ' 2012.12.21 ' ) 值为: 24 select datediff (mm, ' 1988.09.14 ' , ' 2012.12.21 ' ) 值为: 291
聚合函数也就是统计函数,它主要是对一组值进行计算,它的功能分别是:求和(sum) 、求最小(min) 、求最大(max) 、求总行数(count) 、求平均值(avg)
例: 求和: select sum (Name) from TableName 求最小: select min (Name) from TableName 求最大: select max (Name) from TableName 求总数: select count (Name) from TableName 求平均: select avg (Name) from TableName
Print 向 客户 端返回用户信息
例: print ' 青苹果 ' 屏幕上就会显示“青苹果三个字“
Go 用来通知SQL 一批语句的结束
Distinct 去 掉重复值
Declare 用http://www.cppcns.com来声明变量
例: declare @a int
Set 为变量赋值
例: set @a = ' 青苹果 '
While 在SQL 中用来循环( 好像在SQL 中用来做循环的关键字不多)
语法: WHILE < 条件表达式 > BEGIN < 命令行或程序块 > [ BREAK ] [ CONTINUE ] [ 命令行或程序块 ] END
While比较重要,我们来做个例子加深一下对While循环的理解:
declare @a int set @a = 1 while @a < 5 begin print ' 青苹果 ' set @a = @a + 1 end
输出结果: 青苹果
青苹果
青苹果
青苹果
if else 判断语句
判断语句用的还是比较多的我们还是来做个例子说明一下;
求:a、b、c三个数的最大值?
declare @a int , @b int , @c int , @max int set @a = 1 set @b = 2 set @c = 3 if @a > @b set @max = @a else set @max = @b if @max < @c set @max = @c print @max
输出结果: 3
begin end 用来设定一个程序块,将在BEGIN…END 内的所有程序视为一个单元执行。
Exists 判断是否存在
Case 也是用来判断的,和IF 语句差不多,它的格式为:
CASE < 运算式 > WHEN < 运算式1 > THEN < 结果1 > … WHEN < 运算式n > THEN < 结果n > [ ELSE <结果n+1> ] END 编程客栈
Return 用于结束当前程序的执行,返回到上一个调用它的程序或其它程 js 序。在括号内可指定一个返回值。
Goto标示符 用来改变程序执行的流程,使程序跳到标有标识符的指定的程序行再继续往下执行。要注意的是作为跳转目标的标识符可为数字与字符的组合,但必须以“ :” 结尾,如:“1023 :” “qingpingguo:”
例子: declare @a int set @a = 1 qingpignguo: print @a set @a = @a + 1 while @a < 6 goto qingpignguo
输出结果:12345
最后一个给大家看个好玩的:
Waitfor 用来暂停程序执行,直到等待指定时间之后,或所设定的时间已到才继续往下运行程序。
语法: waitfor {delay ' 时间 ' | time ' 时间 ' }
解释:
(1 )‘时间'必须为DATETIME 类型数据,且不能包括日期,如‘10:12:05'
(2 )DELAY: 用来设定等待的时间长短,最多为24 小时。( 是一个时间间隔)
( 3 )TIME :用来设定等待结束的时间点(是一个具体的时间)
例子: waitfor delay ' 00:00:03 ' print ' 你好,我是青苹果 ' go
以上就是T-SQL的所有内容了,接下来我们来利用最后的时间画几个图形:
直角三角形:
declare @a int set @a = 1 while ( @a < 11 ) begin print replace ( space ( @a ), ' ' , ' * ' ) set @a = @a + 1 end
直角三角形 输出结果:
正方形:
declare @a int declare @b int declare @c nvarchar ( 100 ) set @a = 1 set @b = 1 set @c = '' while ( @a < 9 ) begin while ( @b < 15 ) begin set @c = @c + ' * ' set @b = @b + 1 end print @c s js et @a = @a + 1 end
正方形 输出结果:
菱形:
declare @a int , @b int set @a = 1 set @b = 15 if ( @b % 2 != 1 ) print ' 数字必须都是奇数 ' else while ( @a <= @b ) begin if ( @a % 2 = 1 ) print space (( @b - @a ) / 2 ) + replace ( space ( @a ), ' ' , ' * ' ) + space (( @b - @a ) / 2 ) set @a = @a + 1 end set @a = @a - 2 while ( @a <= @b ) begin if ( @a % 2 = 1 ) print space (( @b - @a ) / 2 ) + replace ( space ( @a ), ' ' , ' * ' ) + space (( @b - @a ) / 2 ) set @a = @a - 1 if ( @a < 0 ) break end
菱形 输出结果:
梯形:
declare @a int , @b int set @a = 7 set @b = 21 if ( @a % 2 = 1 ) while ( @a < @b ) begin print space (( @b - @a ) / 2 ) + replace ( space ( @a ), ' ' , ' * ' ) + space (( @b - @a ) / 2 ) set @a = @a + 2 end
梯形 输出结果:
矩形:
declare @a int declare @b int declare @c nvarchar ( 100 ) set @a = 1 set @b = 1 set @c = '' while ( @a < 9 ) begin while ( @b < 23 ) begin set @c = @c + ' * ' set @b = @b + 1 end print @c set @a = @a + 1 end
矩形 输出结果:
圆形:
declare @a int , @b int set @a = 9 set @b = 13 while ( @a <= @b ) begin if ( @a % 2 = 1 ) print space (( @b - @a ) / 2 ) + replace ( space ( @a ), ' ' , ' * ' ) + space (( @b - @a ) / 2 ) set @a = @a + 1 end set @a = @a - 1 begin print space (( @b - @a ) / 2 ) + replace ( space ( @a ), ' ' , ' * ' ) + space (( @b - @a ) / 2 ) end while ( @a <= @b ) begin if ( @a % 2 = 1 ) print space (( @b - @a ) / 2 ) + replace ( space ( @a ), ' ' , ' * ' ) + space (( @b - @a ) / 2 ) set @a = @a - 1 if ( @a < 10 ) break end set @a = @a - 2 begin print space (( @b - @a ) / 2 ) + replace ( space ( @a ), ' ' , ' * ' ) + space (( @b - @a ) / 2 ) end
圆形输出结果:
The End! 以上就是本文的所有内容,可能写的不够全面,有不足的地方希望大家多多补充,多多发表意见!谢谢!
作者:青苹果
查看更多关于SQL语句(T-SQL汇总) 用T-SQL画出这些图形的详细内容...