SQL高階語言

2022-07-26 18:36:08 字數 3558 閱讀 1451

今天學習了sql高階語言

觸發器、儲存過程、檢視等

--存貯過程格式

--create procedure name --@parms.... --as --begin

--end

---execute name 引數1  引數2

----無引數的存貯過程執行

create procedure proc2

asbegin

select * from 職工 where 工資》2000

endexecute proc2

--有引數的存貯過程

create procedure proc4 @x1 int,@x2 int,@x3 int

asbegin

declare @max int if @x1>@x2  

set @max=@x1

else

set @max=@x2

if  @x3>@max

set @max=@x3

print '3個數字中的最大值是'+cast(@max as varchar(50)) end

execute proc4 15,18,39

檢視

--檢視

create view v1

asselect 倉庫號,城市,面積 from

倉庫create view v2

asselect 姓名,工資 from 職工 where 工資》1800

create view v3

asselect 倉庫.倉庫號,城市,面積,建立時間,姓名,性別,工資 from 倉庫,職工 where 倉庫.倉庫號=職工.倉庫號

alter view v2

asselect 倉庫.倉庫號,城市,面積 from

倉庫drop view v3

create view test

asselect * from

倉庫select * from

test

update test

set 面積=面積+88

where 倉庫號='

wh1'

delete test

where 倉庫號='

wh1'

觸發器

--觸發器是一種特殊的存貯過程,他就相當於c#中的事件觸發器主要是通過事件觸發而被執行的

--create trigger 觸發器名稱 on 表 for insert[update,delete] as

--begin

--程式塊

--end

create trigger rockyr on 倉庫

forupdate

asbegin

insert into 倉庫(倉庫號,城市,面積,建立時間) values(

'wh01

','鄭州

',1800,'

2014-12-12

'),('

wh02

','北京

',1700,'

2014-12-13

'),('

wh03

','上海

',1600,'

2014-12-15')

endupdate 倉庫

set 面積=面積-10

where 倉庫號='

wh2'

create trigger student_trigger

on class

after update as

declare @count_student

intselect @count_student=@@rowcount

print

'一共修改了

'+char(48+@count_student)+'行'

returngo

use db_buiness

go update

class

set tclassname='

14網普

迴圈語句

declare @cj float,@str varchar(60)

set @cj=90

set @str=

case

when @cj>100 or @cj<0 then '您輸入的成績不對,成績應該在0-100之間'

when @cj>=60 and @cj<70 then '及格'

when @cj>=70 and @cj<80 then '中等'

when @cj>=80 and @cj<90 then '良好'

when @cj>=90 and @cj<=100 then '優秀'

else

'不及格'

endprint '該學生的成績評語是'+@str

--case [表示式]

-- when 條件表示式1 then 結果1

-- when 條件表示式2 then 結果2

-- ........

-- else

-- 結果表示式n

-- end

--while 條件表示式

-- begin

--命令列或程式

-- end

declare @x int,@sum int

select @x=0,@sum=0

while @x<=100

begin

set @sum=@sum+@x

set @x=@x+1

endprint '1-100之間的和'+cast(@sum as varchar(50))

continue

--continue

declare @x int,@sum int

select @x=0,@sum=0

while @x<100

begin

set @x=@x+1

if @x%2=1

continue

set @sum=@sum+@x

endprint '偶數和'+cast(@sum as varchar(50))

break

--break

declare @x int,@sum int

select @x=0,@sum=0

while @x<=10

begin

set @x=@x+1

set @sum=@sum+@x

if @sum>30

break

endprint '結果'+cast(@sum as varchar(50))

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...