今天學習了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_triggeron class
after update as
declare @count_student
intselect @count_student=@@rowcount
'一共修改了
'+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 條件表示式continue-- 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))
--continuebreakdeclare @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))
--breakdeclare @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...