本章目標:
1.檢視:
檢視就是一條select語句執行後返回的結果集。
建立檢視:
create view 檢視名稱
asselect 語句
2.修改檢視:
alter view 檢視名稱
asselect 語句
3.刪除檢視:
show tables 顯示檢視
drop view 檢視名
drop view if exists 檢視名
檢視檢視 : select * from 檢視表名
2.儲存過程:
定義:顯示所有的儲存過程: show procedure staus
2.1建立儲存過程:
修改sql語句結束的識別符號: delimiter + 型別
create procedure 儲存過程名稱(引數列表)
begin
儲存操作的語句塊;
end呼叫: call 儲存過程名稱
2.2儲存過程引數分為兩種
in 給引數傳入值,定義的引數就得到了值。
建立乙個無參無返的儲存過程:
#儲存過程實現能夠查詢所有的借閱記錄。
select * from info;
#修改sql語句結束的識別符號
delimiter //
create procedure pro_info()
begin
select * from info;
end//
建立乙個無參有返的儲存過程:
1.out :返回值
#實現的功能是查詢出所有圖書的平均**。
select **g(price) as 平均** from books;
-- out 引數的名稱 資料型別
delimiter //
create procedure pro_info2(out price**g float)
begin
select **g(price) into price**g from books; into 相當於賦值
end//
call pro_info2(@price**g); 引數@+名稱
select @price**g;
建立乙個有參無返的儲存過程:
#這個儲存過程要實現的功能是,查詢某個**範圍內(20-200)的圖書資訊
select * from books where price between 20 and 200; 10 1000
-- 有引數 第乙個** 第二個**
-- in 名字 資料型別
-- out
delimiter //
create procedure pro_info1(in price1 float,in price2 float)
begin
select * from books where price between price1 and price2;
end//
-- 有引數 call 儲存過程的名字(傳入的引數)
call pro_info1(10,200);
2.2刪除儲存過程:
3.觸發器:
定義:語法:
修改sql語句結束的識別符號: delimiter + 型別
create trigger 觸發器名稱 on 表名
for each row
begin
觸發器執行的語句塊
end案例1:
例1:建立insert觸發器。當在card表中新增加乙個借閱用
-- 戶的時候,顯示「新增使用者成功」。
delimiter //
create trigger tri_ins_card after insert on card
for each row
begin
select "新增使用者成功" into @result;
endselect * from card;
insert into card (name,class)values("王渝凱","大資料1班");
select @result;
select @resu;
案例2:
#例2:建立insert觸發器。借閱人借閱一本書會在info表中
-- 產生一條記錄,此時被借閱的書籍的總數量應該減1。觸發
-- 在info表中。
-- 對圖書表的裡面圖書數量進行減1,對哪本書進行減1呢
-- update books set quanitity=quanitity-1 where 哪本書
-- --如果我們能夠拿到新插入的那條借閱記錄的bno
select * from info;
delimiter //
create trigger tri_insert_info after insert on info
for each row
begin
select new.bno into @bnovalue;-- 拿到插入的那條借閱記錄的bno
update books set quanitity=quanitity-1 where bno=@bnovalue;-- 進行數量的更新
endselect * from books;
select * from info;
select * from card;
insert into info(cno,bno,rdate)value(106,1006,now());
定定義士大夫撒發史蒂芬
MySQL高階高階
1 mysql的開窗函式 row number 從 1 開始,按照順序生成組內的記錄編號 rank 從 1 開始,按照順序,相同會重複,名次會留下空的位置,生成組內的記錄編號 dense rank 從 1 開始,按照順序生成組內的記錄編號,相同會重複,名次不會留下空的位置 開窗函式區別如下圖所示 f...
mysql 高階 mysql高階知識
一.儲存引擎 引擎 指的是乙個系統的核心部分 引擎有不同分類是為了適應不同的使用場景 檢視mysql支援所有引擎 show engines mrg myisam 是一堆myisam表的集合 用於做水平分表,如果乙個表中資料量太大 將導致效率降低 水平分表就是把整個大表拆成不同的小表,每一次查詢 會判...
mysql高階3 MYSQL高階
檢視 create view v employee asselect a.empid,a.empname,a.gender,b.deptname from employee a left join dept b on a.deptid b.deptid select from v employee ...