SQL高階程式設計

2021-05-26 01:29:34 字數 2651 閱讀 9817

-------------sql function-------------

---判斷資料庫是否存在

if exists (select * from sys.databases where name = '資料庫名')

drop database [資料庫名]

--判斷表是否存在

if exists (select * from sysobjects where id = object_id(n'[表名]') and objectproperty(id, n'isusertable') = 1)

drop table [表名]

--判斷儲存過程是否存在

if exists (select * from sysobjects where id = object_id(n'[pro]') and objectproperty(id, n'isprocedure') = 1)

print 'exists'

else

print 'not exists'

--判斷函式是否存在

if object_id (n'函式名') is not null

drop function dnt_split

--left(),right(),charindex()----

begin

declare @str varchar(20)

set @str='hello every body';

print left(@str,7) --print result->hello e

print right(@str,7) --print result->ry body

print charindex(' ',@str) --print result->6

end-- cast()資料型別轉換函式---------

begin

select cast('123' as int)

select cast(123.0 as varchar(6))

select cast('12.5' as decimal(5,0))  --四捨五入

select cast('12' as float)

end-- 將查詢出來的多列組成為一列的字串----

begin

select '學生編號:'+scstuno+'成績:'+cast(scscore as varchar(6)) as 學生成績 from score_tb

end--sql while迴圈 計算1加到100的和-----

begin

declare @sum int,@num int

set @num=1

set @sum=0

while @num<101

begin

set @sum=@sum+@num

set @num=@num+1

endprint @sum

end--sql while迴圈 計算1~100之間奇數的和

begin

declare @sum int,@num int

set @sum=0

set @num=1

while @num<101

begin

set @num=@num+1

if((@num%2)=0)

continue

else

begin

set @sum=@sum+@num

if(@num=49)

break

endend

print @sum

end--根據查詢的每個字段內容給予自定義資料--

select stuname,cursname,

case 

when scscore>=85 then '優秀'

when scscore>=75 and scscore<85 then '良好'

when scscore>=60 and scscore<75 then '合格'

when scscore<60 then '不合格' 

endfrom score_tb sc,student_tb stu,course_tb cur where sc.scstuno=stu.stuno and cur.cursno=sc.sccursno

--自定義函式---

create function funselectscore(@score float)

returns varchar(12)

asbegin

return

case 

when @score>=85 then '優秀'

when @score>=75 and @score<85 then '良好'

when @score>=60 and @score<75 then '合格'

when @score<60 then '不合格' 

endend

--呼叫函式

select stuname,cursname,dbo.funselectscore(scscore)  --注意:呼叫函式是一定要加上 dbo.字首

from score_tb sc,student_tb stu,course_tb cur where sc.scstuno=stu.stuno and cur.cursno=sc.sccursno

SQL高階高階

select top 50 percent from websites mysql 語法 oracle 語法 select column name s from table name limit number sql like 操作符 like 操作符用於在 where 子句中搜尋列中的指定模式。s...

SQL 基礎 高階高階

sql高階 1 top子句 top 子句用於規定要返回的記錄的數目。select top 2 from persons select top 50 percent from persons 3 萬用字元 1 通過使用 not 關鍵字,我們可以從 persons 表中選取居住在不包含 lon 的城市裡...

Mysql高階高階(sql優化)

目錄 一 mysql高階有哪些東西?1 mysql的架構 2 索引優化分析 3 查詢擷取分析 4 mysql鎖機制 5 主從複製 架構這裡我們主要說的是引擎 看你的mysql現在已提供什麼儲存引擎 看你的mysql當前預設的儲存引擎 show variables like storage engin...