佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > SQL語(yǔ)句(T-SQL匯總) 用T-SQL畫(huà)出這些圖形

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

熱門(mén)標(biāo)簽:網(wǎng)站排名優(yōu)化 Linux服務(wù)器 服務(wù)外包 地方門(mén)戶(hù)網(wǎng)站 百度競(jìng)價(jià)排名 AI電銷(xiāo) 鐵路電話(huà)系統(tǒng) 呼叫中心市場(chǎng)需求
我個(gè)人感覺(jué)數(shù)據(jù)庫(kù)這方面對(duì)于程序員來(lái)說(shuō)很重要,無(wú)論是對(duì)于JAVA程序員還是DOTNET程序員以及其他編程人員來(lái)說(shuō)都是必須掌握的。為了幫助大家更好的來(lái)回顧T-SQL,本人利用空閑的時(shí)間整理的一下T-SQL的語(yǔ)句和語(yǔ)法。希望對(duì)大家有用!

好的!我們先來(lái)看幾個(gè)圖像:

棱形三角形正方形圓形梯形

上面這些圖形都是用T-SQL實(shí)現(xiàn)的,文章的最后我們一起來(lái)用T-SQL畫(huà)出這些圖形。

首先,我們開(kāi)始回顧一下T-SQL的基本語(yǔ)法:

函數(shù)

abs(x):求絕對(duì)值;

例:    select abs(-3)   值為:3

sqrt(x)求平方根;

例:    select sqrt(4)    值為:2.0

rand([0])返回0~1之間的隨機(jī)float;

floor(X):返回小于或等于X值的最大整數(shù)

例:    select floor(34.5)   值為:34

ceiling(X):返回大于或等于X值的最小整數(shù);

例:    select ceiling(34.5)  值為:35

round(x,length):四舍五入函數(shù),length為正,則對(duì)X小數(shù)位數(shù)四舍五入,length為負(fù),則對(duì)X從小數(shù)點(diǎn)左邊length位起四舍五入,若length既為負(fù)數(shù)且其絕對(duì)值大于X整數(shù)部分     數(shù)字個(gè)數(shù),則函數(shù)值為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):求符號(hào)函數(shù),X>0則sign(x)=1; X=0 則sign(X)=0;X0 則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

 

字符串函數(shù)

ASCII(串):返回字符表達(dá)式最左端字符的ASCII 碼值;

例:    select ASCII('bc')   值為:98

CHAR(ASCII碼):用于將ASCII 碼轉(zhuǎn)換為字符,如果沒(méi)有輸入0 ~ 255 之間的ASCII 碼值,返回值為NULL ;

例:    select char(97)   值為:a

Lower(串):把字符串全部轉(zhuǎn)換為小寫(xiě);    

例:    select lower('QingPingGuo')   值為: qingpingguo

Upper(串) :把字符串全部轉(zhuǎn)換為大寫(xiě);

例:    select upper('QingPingGuo')   值為: QINGPINGGUO

LTrim(串), RTrim(串):去掉左右空格;

 例(去左空格):  select '博客園'+LTrim(' 青蘋(píng)果 ')+'博客園'   值為:博客園青蘋(píng)果 博客園

space(個(gè)數(shù)):返回指定個(gè)數(shù)的空格;

replicate(,次數(shù)):將串重復(fù)指定次數(shù);

例:    select replicate('青蘋(píng)果',2)    值為:青蘋(píng)果青蘋(píng)果

Left(, 個(gè)數(shù)):返回已知串從左邊開(kāi)始指定個(gè)數(shù)的字符;

例:    select left('青蘋(píng)果在博客園', 4)    值為:青蘋(píng)果在

Right(, 個(gè)數(shù)):返回已知串從右邊開(kāi)始指定個(gè)數(shù)的字符; 

例:    select right('青蘋(píng)果在博客園', 4)    值為:在博客園

DataLength(串):返回串的字節(jié)數(shù)長(zhǎng)度,計(jì)算串尾空格??梢杂盟鼨z查varchar,text等的動(dòng)態(tài)長(zhǎng)度;

例:    select datalength('青蘋(píng)果在博客園')    值為:14

SubString(串, 開(kāi)始位置, 長(zhǎng)度):返回從字符串左邊'開(kāi)始位置'起數(shù)量為'長(zhǎng)度'的字符串。其中表達(dá)式可以是字符串或二進(jìn)制串或含字段名或字符型變量的表達(dá)式。在這里要注意一下SUBSTRING()函數(shù)不能用于TEXT 和IMAGE 數(shù)據(jù)類(lèi)型;

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

Len(串) :返回表達(dá)式的長(zhǎng)度。注意它返回的是字符數(shù),而不是字節(jié)數(shù)。不計(jì)算串尾空格;

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

Replace('1','2','3'):用串3替換串1中出現(xiàn)的所有串2字符;

例:    select replace('青蘋(píng)果在北京','北京','博客園')    值為:青蘋(píng)果在博客園

Stuff(串1, 開(kāi)始位置, 長(zhǎng)度, 串2):刪除串1指定位置開(kāi)始指定長(zhǎng)度的字符串,并在指定位置插入串2;

例:    select stuff('青蘋(píng)果是程序猿嗎?',5,3,'攻城獅')    值為:青蘋(píng)果是攻城獅嗎?

reverse(串) :將指定的字符串的字符排列順序顛倒;

例:    select reverse('12345')    值為:54321

charindex(串1,串2):返回串1在串2的開(kāi)始位置,可從所給出的‘開(kāi)始位置'進(jìn)行查找;

例:    select charindex('guo','qingpingguo')    值為:9

轉(zhuǎn)換函數(shù)

所謂轉(zhuǎn)換函數(shù)就是把某種數(shù)據(jù)類(lèi)型轉(zhuǎn)換的表達(dá)式顯示轉(zhuǎn)換成另一種數(shù)據(jù)類(lèi)型的函數(shù)。
CAST(表達(dá)式 AS 數(shù)據(jù)類(lèi)型[(長(zhǎng)度)])

例:  select '今天是:' + Cast(GetDate() as char(10))  值為:今天是:07 23 2012

CONVERT(轉(zhuǎn)換后的目標(biāo)數(shù)據(jù)類(lèi)型[(length)],表達(dá)式[style])

例:  select '今天是:' +convert(char(10),getdate()) 值為:今天是:07 23 2012

下面來(lái)看一個(gè)求差值的函數(shù)datediff函數(shù);

DATEDIFF(datepart,date1,date2)

例:  select datediff(yy,'1988.09.14','2012.12.21')  值為:24    select datediff(mm,'1988.09.14','2012.12.21')  值為:291
聚合函數(shù)

聚合函數(shù)也就是統(tǒng)計(jì)函數(shù),它主要是對(duì)一組值進(jìn)行計(jì)算,它的功能分別是:求和(sum)、求最小(min)、求最大(max)、求總行數(shù)(count)、求平均值(avg)

例:   求和:select sum(Name) from TableName   求最?。?/SPAN>select min(Name) from TableName   求最大:select max(Name) from TableName   求總數(shù):select count(Name) from TableName   求平均:select avg(Name) from TableName
T-SQL的一些關(guān)鍵字

Print  向客戶(hù)端返回用戶(hù)信息

例:  print '青蘋(píng)果' 屏幕上就會(huì)顯示“青蘋(píng)果三個(gè)字“

Go      用來(lái)通知SQL一批語(yǔ)句的結(jié)束

Distinct   掉重復(fù)值

Declare    用來(lái)聲明變量

例:  declare @a int

Set    為變量賦值

例:  set @a='青蘋(píng)果'

While  在SQL中用來(lái)循環(huán)(好像在SQL中用來(lái)做循環(huán)的關(guān)鍵字不多)

語(yǔ)法:    WHILE 條件表達(dá)式> BEGIN 命令行或程序塊> [BREAK] [CONTINUE] [命令行或程序塊] END

While比較重要,我們來(lái)做個(gè)例子加深一下對(duì)While循環(huán)的理解:

declare @a intset @a=1while @a5begin print '青蘋(píng)果'set @a=@a+1end

輸出結(jié)果:青蘋(píng)果
     青蘋(píng)果
     青蘋(píng)果
     青蘋(píng)果

if else    判斷語(yǔ)句

判斷語(yǔ)句用的還是比較多的我們還是來(lái)做個(gè)例子說(shuō)明一下;

求:a、b、c三個(gè)數(shù)的最大值?

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

輸出結(jié)果:3

begin end  用來(lái)設(shè)定一個(gè)程序塊,將在BEGIN…END內(nèi)的所有程序視為一個(gè)單元執(zhí)行。

Exists     判斷是否存在

Case   也是用來(lái)判斷的,和IF語(yǔ)句差不多,它的格式為:

 CASE 運(yùn)算式>    WHEN 運(yùn)算式1> THEN 結(jié)果1>WHEN運(yùn)算式n> THEN 結(jié)果n> [ELSE 結(jié)果n+1>] END

 Return   用于結(jié)束當(dāng)前程序的執(zhí)行,返回到上一個(gè)調(diào)用它的程序或其它程序。在括號(hào)內(nèi)可指定一個(gè)返回值。

Goto標(biāo)示符  用來(lái)改變程序執(zhí)行的流程,使程序跳到標(biāo)有標(biāo)識(shí)符的指定的程序行再繼續(xù)往下執(zhí)行。要注意的是作為跳轉(zhuǎn)目標(biāo)的標(biāo)識(shí)符可為數(shù)字與字符的組合,但必須以“:”結(jié)尾,如:“1023:” “qingpingguo:”

例子: declare @a int   set @a = 1      qingpignguo:      print @a   set @a = @a + 1   while @a  6     goto qingpignguo

輸出結(jié)果:12345

最后一個(gè)給大家看個(gè)好玩的:

Waitfor    用來(lái)暫停程序執(zhí)行,直到等待指定時(shí)間之后,或所設(shè)定的時(shí)間已到才繼續(xù)往下運(yùn)行程序。

語(yǔ)法:  waitfor {delay '時(shí)間'|time '時(shí)間'}

解釋?zhuān)?/STRONG>

(1)‘時(shí)間'必須為DATETIME類(lèi)型數(shù)據(jù),且不能包括日期,如‘10:12:05'

(2)DELAY:用來(lái)設(shè)定等待的時(shí)間長(zhǎng)短,最多為24小時(shí)。(是一個(gè)時(shí)間間隔)

3)TIME:用來(lái)設(shè)定等待結(jié)束的時(shí)間點(diǎn)(是一個(gè)具體的時(shí)間)

例子: waitfor delay '00:00:03'   print '你好,我是青蘋(píng)果'   go

以上就是T-SQL的所有內(nèi)容了,接下來(lái)我們來(lái)利用最后的時(shí)間畫(huà)幾個(gè)圖形:

直角三角形:

declare @a int set @a=1while(@a11)beginprint replace(space(@a),' ','*')set @a=@a+1end

直角三角形 輸出結(jié)果:

 

正方形:

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

 

正方形 輸出結(jié)果:

 

菱形:

declare @a int,@b intset @a=1 set @b=15if(@b%2!=1)print '數(shù)字必須都是奇數(shù)'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 (@a0)breakend

菱形 輸出結(jié)果:

 

梯形:

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

梯形 輸出結(jié)果:

 

矩形:

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

矩形 輸出結(jié)果:

 

圓形:

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(@a10)breakendset @a=@a-2beginprint space((@b-@a)/2)+replace(space(@a),' ','*')+space((@b-@a)/2)end

圓形輸出結(jié)果:

The End! 以上就是本文的所有內(nèi)容,可能寫(xiě)的不夠全面,有不足的地方希望大家多多補(bǔ)充,多多發(fā)表意見(jiàn)!謝謝!
作者:青蘋(píng)果

您可能感興趣的文章:
  • MySQL語(yǔ)句整理及匯總介紹
  • Mysql常用sql語(yǔ)句匯總
  • MySql常用操作SQL語(yǔ)句匯總
  • 超詳細(xì)的SQL語(yǔ)句語(yǔ)法匯總
  • MySQL DML語(yǔ)句整理匯總
  • Mysql 原生語(yǔ)句中save or update 的寫(xiě)法匯總
  • 基于SQL中的數(shù)據(jù)查詢(xún)語(yǔ)句匯總
  • MySQL最常見(jiàn)的操作語(yǔ)句小結(jié)
  • SQl 語(yǔ)句(常見(jiàn))
  • 數(shù)據(jù)庫(kù)常用的sql語(yǔ)句匯總

標(biāo)簽:崇左 衡水 蘭州 湘潭 仙桃 銅川 黃山 湖南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《SQL語(yǔ)句(T-SQL匯總) 用T-SQL畫(huà)出這些圖形》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
    • 微信客服
    • 微信二維碼
    • 電話(huà)咨詢(xún)

    • 400-1100-266
    汾西县| 冕宁县| 公安县| 玉树县| 承德县| 扶余县| 尚义县| 榕江县| 韶关市| 虞城县| 德清县| 海门市| 台中市| 吉安县| 八宿县| 武胜县| 环江| 武冈市| 富蕴县| 运城市| 庄河市| 金寨县| 桐柏县| 横峰县| 睢宁县| 鄱阳县| 中方县| 南平市| 胶南市| 枣庄市| 五莲县| 大名县| 浪卡子县| 福泉市| 喜德县| 广昌县| 永平县| 大埔区| 沿河| 翼城县| 凤城市|