MySQL学习小记4

2017-01-13 10:48:14来源:oschina作者:finndai人点击

1.存储过程


存储过程是SQL语句和控制语句的预编译集合,以一个名称存储并作为一个单元处理


优点:


1.增强SQL语句的功能和灵活性


2.实现较快的执行速度


3.减少网络流量


创建存储过程:


过程体 ..参考函数体

1.创建不带参数的存储过程


CREATE PROCEDURE sp1() SELECT VERSION();

调用存储过程 :CALL sp_name


CALL sp1();

创建IN类型参数的存储


DELIMITER //
CREATE PROCEDURE removeUserByID(IN p_id INT UNSIGNED)
-> BEGIN
-> DELETE FROM users WHERE id = p_id ;
-> END
-> //

创建IN,OUT类型的存储


delimiter //
CREATE PROCEDURE removeUserAndUserNums(IN p_id INT UNSIGNED,
-> OUT userNums INT UNSIGNED)
-> BEGIN
-> DELETE FROM users WHERE id = p_id;
-> SELECT count(id) FROM users INTO userNums;
-> END
-> //

用户变量: set @i = 7


显示更新数目:select row_count();


创建多个OUT类型参数


DELIMITER //
CREATE PROCEDURE removeUserByAgeAndReturnInfos(IN p_age
-> SMALLINT UNSIGNED,OUT deleteUsers SMALLINT UNSIGNED,
-> OUT userCounts SMALLINT UNSIGNED)
-> BEGIN
-> DELETE FROM users WHERE age = p_age;
-> SELECT ROW_COUNT() INTO deleteUsers;
-> SELECT COUNT(id) FROM USERS INTO userCounts;
-> END
-> //

存储过程与自定义函数的区别


1.存储过程实现的功能要复杂一些;而函数的针对性更强


2.存储过程可以返回多个值;函数只能有一个返回值


3.存储过程一般独立的来执行;而函数可以作为其他SQL语句的组成部分来实现

MYSQL 存储引擎


MySQL可以将数据以不同的技术存储在文件(内存)中,这种技术就称为存储引擎


每一种存储引擎使用不同的存储机制、索引技巧、锁定水平,最终提供广泛且不同的功能;


存储引擎:


1.MyISAM


2.InnoDB


3.Memory


4.CSV


5.Archive


并发控制:


当多个连接对记录进行修改时保证数据的一致性和完整性


锁:共享锁(读锁)


排他锁(写锁)


锁颗粒:表锁:开销最小


行锁:开销最大


事物处理:


事物--事物用于保证数据库的完整性


事物的特性:原子性、一致性、隔离性、持久性


外键和索引:外键:保证数据一致性的策略


索引:是对数据表的一列或多列的值进行排序的一种结构


存储引擎特点


修改存储引擎的方法:1.修改配置文件


2.创建存储引擎的方法


CREATE TABLE tp1(...)ENGINE = MyISAM;


修改;ALTER TABLE tp1 ENGINE = InnoDB;

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台