存儲引擎 存儲過程 存儲函數

1、存儲引擎就是指表的類型。數據庫引擎決定了表在計算機中的存儲方式。

一、查看mysql數據庫支持的存儲引擎
mysql> show engines \G          \G 數據成列顯示,這時不用寫分號了
或者
mysql> show variables like 'have%';
二、查詢默認的存儲引擎
mysql> show variables like 'storage_engine';
2、InnoDB存儲引擎
優勢:支持事物處理,支持外鍵,支持崩潰修復能力和併發控制,實現事務的提交和回滾。
缺點:讀寫效率稍差,佔用的空間相對比較大
3、MyISAM存儲引擎
優勢:佔用空間小,處理速度快
缺點:不支持事務的完整性和併發性。
4、MEMORY存儲引擎
表的全部數據存儲在內存上,內存出現異常會影響數據完整性。
優勢:在內存中,處理速度很是快

缺點:安全性不高,數據易丟失,生命週期短,通常都是一次性。 mysql

開始存儲過程以前還有一個工做要作,就是修改MySql的結束符,系統默認的是‘;’不過要創建存儲過程,再用這個默認的分號就不方便了,把結束符改成‘//’,操做起來很簡單,命令:DELIMITER // ,搞定;

好了,創建第一個存儲過程:
CREATE PROCEDURE p1 () SELECT * FROM t; //
SQL語句存儲過程的第一部分是 「CREATE PROCEDURE」:第二部分是過程名,上面新存儲過程的名字是p1。這個很容易理解,就是一個簡單的select語句;
mysql> CALL p1() //
+------+
| s1   |
+------+
|    5 |
+------+
1 row in set (0.03 sec)
Query OK, 0 rows affected (0.03 sec)
當調用這個存儲過程的時候,會獲得這個結果。
再練習一個打印‘Hello,Worle!’的存儲過程:
CREATE PROCEDURE HelloWorld() select 'Hello,World!' //
調用:
mysql> CALL HelloWorld()//
+-------------+
| Hello,World |
+-------------+
| Hello,World |
+-------------+
1 row in set (0.00 sec)
好了,先寫到這個,繼續學習。 最後別忘了把分隔符變回來,命令 delimiter ; sql

建立一個mysql函數命令以下: 數據庫

     create function 函數名(參數名 參數類型)returns 返回類型
          begin
               statement;
          end;
     示例以下:
     create function gets(s int)returns int
          begin
               declare a int;     //mysql中聲明變量不須要@!!!跟其餘數據庫不太同樣!!切記!!!
               set @a=3;       //每句以後需加一個;否則報錯!!!
               return @a+s;   //要有返回語句!!!

          end;

下面就能夠直接調用了:gets(3); 安全

=============================================================================
併發

Mysql修改列類型語句以下:
alter table 表名 change 列名 列名 要修改的列類型;
Mysql修改列名語句以下:
alter table 表名 change 列名 要修改的列名 原來的類型;
Mysql添加一列:
alter table 表名 add column 要加的列名 要加的列名類型;
MYsql刪除一列:
alter table 表名 drop column 要刪除的列名;
相關文章
相關標籤/搜索