MySQL学习小记4

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;

 

 

                                 

        

 

        

 

 

 

 

 

 

 

    

转载于:https://my.oschina.net/finndai/blog/823763

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值