程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> SQL語句(T-SQL匯總) 用T-SQL畫出這些圖形

SQL語句(T-SQL匯總) 用T-SQL畫出這些圖形

編輯:MSSQL

SQL語句(T-SQL匯總) 用T-SQL畫出這些圖形。本站提示廣大學習愛好者:(SQL語句(T-SQL匯總) 用T-SQL畫出這些圖形)文章只能為提供參考,不一定能成為您想要的結果。以下是SQL語句(T-SQL匯總) 用T-SQL畫出這些圖形正文


我小我感到數據庫這方面臨於法式員來講很主要,不管是關於JAVA法式員照樣DOTNET法式員和其他編程人員來講都是必需控制的。為了贊助年夜家更好的往返顧T-SQL,自己應用余暇的時光整頓的一下T-SQL的語句和語法。願望對年夜家有效!

好的!我們先來看幾個圖象:

稜形三角形正方形圓形矩形梯形

下面這些圖形都是用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(串, 開端地位, 長度):前往從字符串右邊'開端地位'起數目為'長度'的字符串。個中表達式可所以字符串或二進制串或含字段名或字符型變量的表達式。在這裡要留意一下SUBSTRING()函數不克不及用於TEXT 和IMAGE 數據類型;

例:    select substring('青蘋果在博客園',5,2)     值為:博客

Len(串) :前往表達式的長度。留意它前往的是字符數,而不是字節數。不盤算串尾空格;

例:    select len('青蘋果cnblogs ')      值為:10

WordStr('串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
T-SQL的一些症結字

Print  向客戶端前往用戶信息

例:  print '青蘋果' 屏幕上就會顯示“青蘋果三個字“

Go      用來告訴SQL一批語句的停止

Distinct   去失落反復值

Declare    用來聲明變量

例:  declare @a int

Set    為變量賦值

例:  set @a='青蘋果'

While  在SQL頂用來輪回(似乎在SQL頂用來做輪回的症結字不多)

語法:    WHILE <前提表達式> BEGIN <敕令行或法式塊> [BREAK] [CONTINUE] [敕令行或法式塊] END

While比擬主要,我們來做個例子加深一下對While輪回的懂得:

declare @a intset @a=1while @a<5begin print '青蘋果'set @a=@a+1end

輸入成果:青蘋果
     青蘋果
     青蘋果
     青蘋果

if else    斷定語句

斷定語句用的照樣比擬多的我們照樣來做個例子解釋一下;

求:a、b、c三個數的最年夜值?

declare @a int,@b int,@c int,@max intset @a=1 set @b=2 set @c=3 if @a>@b set @max=@aelse set @max=@bif @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   用於停止以後法式的履行,前往到上一個挪用它的法式或其它法式。在括號內可指定一個前往值。

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=1while(@a<11)beginprint replace(space(@a),' ','*')set @a=@a+1end

直角三角形 輸入成果:

 

正方形:

declare @a intdeclare @b intdeclare @c nvarchar(100)set @a=1set @b=1set @c=''while (@a<9)begin while (@b<15) begin set @c=@c+'*' set @b=@b+1 end print @c set @a=@a+1end

 

正方形 輸入成果:

 

菱形:

declare @a int,@b intset @a=1 set @b=15if(@b%2!=1)print '數字必需都是奇數'elsewhile(@a<=@b)beginif(@a%2=1)print space((@b-@a)/2)+replace(space(@a),' ','*')+space((@b-@a)/2)set @a=@a+1endset @a=@a-2while (@a<=@b)beginif(@a%2=1)print space((@b-@a)/2)+replace(space(@a),' ','*')+space((@b-@a)/2)set @a=@a-1 if (@a<0)breakend

菱形 輸入成果:

 

梯形:

declare @a int,@b intset @a=7 set @b=21if(@a%2=1)while(@a<@b)beginprint space((@b-@a)/2)+replace(space(@a),' ','*')+space((@b-@a)/2)set @a=@a+2end

梯形 輸入成果:

 

矩形:

declare @a intdeclare @b intdeclare @c nvarchar(100)set @a=1set @b=1set @c=''while (@a<9)begin while (@b<23) begin set @c=@c+'*' set @b=@b+1 end print @c set @a=@a+1end

矩形 輸入成果:

 

圓形:

declare @a int,@b intset @a=9 set @b=13while (@a<=@b)beginif(@a%2=1)print space((@b-@a)/2)+replace(space(@a),' ','*')+space((@b-@a)/2)set @a=@a+1endset @a=@a-1beginprint space((@b-@a)/2)+replace(space(@a),' ','*')+space((@b-@a)/2)endwhile (@a<=@b)beginif(@a%2=1)print space((@b-@a)/2)+replace(space(@a),' ','*')+space((@b-@a)/2)set @a=@a-1if(@a<10)breakendset @a=@a-2beginprint space((@b-@a)/2)+replace(space(@a),' ','*')+space((@b-@a)/2)end

圓形輸入成果:

The End! 以上就是本文的一切內容,能夠寫的不敷周全,有缺乏的處所願望年夜家多多彌補,多多揭橥看法!感謝!
作者:青蘋果

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved