存储引擎 存储过程 存储函数

半腔热情 提交于 2019-12-10 04:16:46
一、存储引擎就是指表的类型。数据库引擎决定了表在计算机中的存储方式。

1、查看mysql数据库支持的存储引擎
mysql> show engines \G          \G 数据成列显示,这时不用写分号了
或者
mysql> show variables like 'have%';
2、查询默认的存储引擎
mysql> show variables like 'storage_engine';
二、InnoDB存储引擎
优点:支持事物处理,支持外键,支持崩溃修复能力和并发控制,实现事务的提交和回滚。
缺点:读写效率稍差,占用的空间相对比较大
三、MyISAM存储引擎
优点:占用空间小,处理速度快
缺点:不支持事务的完整性和并发性。
四、MEMORY存储引擎
表的所有数据存储在内存上,内存出现异常会影响数据完整性。
优点:在内存中,处理速度非常快

缺点:安全性不高,数据易丢失,生命周期短,一般都是一次性。

开始存储过程之前还有一个工作要做,就是修改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 ;

创建一个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 要删除的列名;

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!