MySQL和SQL Server数据库基本语句总结(二)
接著上面的總結,這一篇主要是MySQL剩下的內容(我用的不多,記下來,防止自己忘記)
1.關于觸發器
? 解釋?? 類似于C++中的事件觸發,在一個事件發生后會執行里面的代碼 (before /after)
? 語法
單行
? create trigger ___ after update on ___?
? for each row? //對于每行監聽
?? ___(可執行代碼 增刪改查)
?? ;??
多行
?delimiter $$? //改變結束字符
? create trigger ___ after update on ___
? for each row
???begin
? //執行語句
?? end
? ?$$
? delimiter ;
上面是主要語法,還有 old和new的使用 old.? new.? 分別是事件發生之前的表里的數據 和發生之后的表里的數據?
2.關于建立視圖
我的理解 視圖就是一個虛擬的表(一般設置視圖中的數據改變 是不會改變原表的,但是可以改變)? 視圖就是將能給出的數據給別人看 隱藏不能給出的
//視圖可以和表一樣正常操作
主要語法
create view ____
as
{一個SELECT 語句};
drop view ___;
視圖會占用內存空間 不用的話要刪除視圖
3.關于事務處理
這是個高級的東西,作為新手的我,基本不怎么用,但是這的確是個NB的東西,但是函數用的非常簡單
? 基本特征? 1.原子性 2.一致性 3.隔離性 4. 持久性
事務就相當于給這一行的數據上個鎖,此時只能一個人操作,而且未提交的時候其他的客戶看表的數據不會發生變化,一旦出現錯誤會回到之前的狀態。 (使用INNODB的事務處理機制)
語法
1.set autocommit = (1. 開啟 0 .關閉)
2.停止自動提交??? 后面 提交? commit?否則 執行 回滾操作 rollback?
3. 換種方式 start transaction? 開啟事務 (主要的還是在PHP中使用)
4.其他
? 建立變量
? 兩種方式
? 1. select 1,2,3 into @a,@b,@c;
? 2. select ___ from ___ where into @tmp? //注意 只能將一個數據放入 多的話 只會放入最后一行的數據
??3.定義局部變量
??? 語法
??? declare i int default?0;??? 類似 數據的定義? 加上DECLARE 局部變量在使用的時候不要加@
? 建立函數
??在數據庫中建立函數,用的不多
? 語法
? delimiter $$
? create function sayhello() returns varchar(20)
? begin
? return "1111111111111";
? end
??$$
??delimiter ;
?舉個都使用的例子
? create function sum1() returns int
? begin
? set @i=1; //建立全局變量
??set @sum=0;?
? while @i<=10 do? //使用循環
????????? set @sum=@sum+@i;
????????? set @i=@i+1;
?? end while; //結束循環? 這里 多層循環使用時必須給每個循環 定義一個名字 然后 結束
? returm @sum;
? end
?當然這上面僅僅是在MySQL中的一些簡單用法的總結,后面是PHP中的使用 。
?
?
轉載于:https://www.cnblogs.com/fightfuture/p/3469849.html
總結
以上是生活随笔為你收集整理的MySQL和SQL Server数据库基本语句总结(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux不登录用户就关机,Linux无
- 下一篇: 丑陋的程序员