1.MySQL建立存储过程语句1
2
3
4
5
6DELIMITER $$ //修改定界符为$$
CREATE PROCEDURE `findAllBook`()
BEGIN
SELECT * FROM tb_books order by id desc;
END $$ //定界符结束标记
DELIMITER ; //重置定界符为;
2.Mysql存储引擎特点属性MyisamBDBMemoryInnoDBArchive存储限制没有没有有64TB没有
事务安全支持支持
锁机制表锁页锁表锁行锁行锁
B树索引支持支持支持支持
哈希索引支持支持
全文索引支持
集群索引支持
数据缓存支持支持
索引缓存支持支持支持
数据可压缩支持支持
空间使用低低N/A高非常低
内存使用低低中等高低
批量插入速度高高高低非常高
支持外键支持
Myisam和InnoDB为常用引擎,Myisam是Mysql的默认存储引擎。
3.锁机制
页级:引擎 BDB。
表级:引擎 MyISAM ,锁住整个表,可以同时读,不可写
行级:引擎 INNODB ,单独的一行记录加锁
表级:锁定整张表,锁定期间,其它进程无法对该表进行写操作。如果是写锁,则其它进程也不允许读。
行级:仅对指定的记录进行加锁,其它进程还是可以对同一个表中的其它记录进行操作。
页级:表级锁速度快,但冲突多;行级冲突少,但速度慢。页级取了折衷,一次锁定相邻的一组记录。
4.SQL语言分类
数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。
4.1 数据查询语言DQL
SELECT FROM WHERE
4.2 数据操纵语言DML
三种形式:
1) 插入:INSERT
2) 更新:UPDATE
3) 删除:DELETE
4.3 数据定义语言DDL
用来创建表/视图/索引/同义词/聚簇:
CREATE TABLE/VIEW/INDEX/SYN/CLUSTER
4.4 数据控制语言DCL
用来授予或回收访问数据库的特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视。如:
1) GRANT:授权。
2) ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一点。
回滚命令使数据库状态回到上次最后提交的状态。格式为:
SQL>ROLLBACK;
3) COMMIT [WORK]:提交。
在事务提交前,只有操作数据库的这个人才能有权看到所做的事情,别人只有在最后提交完成后才可以看到。
提交数据有三种类型:显式提交、隐式提交、自动提交。
(1) 显式提交
用COMMIT命令直接完成的提交为显式提交。格式为:
SQL>COMMIT;
(2) 隐式提交
用SQL命令间接完成的提交为隐式提交。这些命令是:
ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,
EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。
(3) 自动提交
把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后,
系统将自动进行提交。其格式为:
SQL>SET AUTOCOMMIT ON;
5.ACID原子性(Atomicity):原子操作,对数据的修改,要么全部执行,要么全都不执行;
举例:银行转账:A账户有100元,B账户有50元。A要给B转10元,这个事务要么成功,要么失败,绝对不允许出现A取出10元就发生了错误,B没收到钱,
A也失去了10元。也就是不可能停滞在中间某个环节。
一致性(Consistency):在事务开始和完成时,数据都必须保持一致状态;
举例:银行转账: 假设有五个账户,每个账户余额是100元,那么五个账户总额是500元,在这5个账户之间同时发生多个转账
,无论并发多少个,比如在A要给B转10元,C要给D转10元,五个账户总额还是500元。
隔离性(Isolation):数据库系统提供一定的隔离机制,保证事务在不受外部并发操作影响的“独立”环境执行;
举例:有两个事务,运行在相同的时间内,执行相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。
这种属性称为串行化,为了防止事务操作间的混淆,必须串行化或序列化请求,使得在同一时间仅有一个请求用于同一数据。
持久性(Durability):事务完成后,对于数据的修改是永久性的,即使出现系统故障也能够保持。