数据库(一)

数据库三大范式:
1)第一范式:原子件,要求每一列的值不能再拆分了。
2)第二范式: 一张表只描述一个实体(若列中有冗余数据,则不满足)
3)第三范式: 所有列与主键值直接相关。
事务的特性
原子性(Atomic):事务中的各项操作,要么全做要么全不做,任何一项操作的失败都会导致整个事务的失败。比如银行业务的转账。
一致性(Consistent):事务结束后系统状态是一样的,数据保持一致。
隔离性(Isolated): 并发执行的事务彼此无法看到对方的中间状态。
持久性(Durable):事务完成后,数据库的变化就会被永久保留下来了,即使发生灾难性故障,通过日志和同步备份可以在故障发生后重建数据。
Sql语句分类
DDL:数据定义语句(create drop)
Create database
Create table tablename(id,name)
DML:数据操作语句(insert update delete)
Insert into tablename(id,name)values(id,name)
Update tablename set id=newid,name=new name where
Delete from tablename where
DQL:数据查询语句(select)
Select * from tablename where
DCL:数据控制语句,进行授权和权限回收(grant revoke)
事务隔离级别
未提交读:允许脏读,其他事务只要修改了数据,即使未提交,本事务也能看到修改后的数据值。也就是可能读取到其他会话中未提交事务修改的数据
提交读:只能读取到已经提交的数据。Oracle等多数数据库默认都是该级别 (不重复读)。
可重复读:无论其他事务是否修改并提交了数据,在这个事务中看到的数据值始终不受其他事务影响。
串行读:完全串行化的读,每次读都需要获得表级共享锁,读写相互都会阻塞
视图
是一个虚拟的表,是一个表中的数据经过某种筛选后的显示方式,视图由一个预定义的查询select语句组成。
SQL语句create view viewname as select name,age from tablename;
功能:简化了用户进行数据访问操作,对机密数据提供安全保护:可以允许用户通过视图访问数据的安全机制,而不授予用户直接访问底层表的权限。
索引作用:提高查询效率
缺点:降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。建立过多的索引会占用磁盘空间。
MySQL和Oracle数据库存储过程对比:
1.在创建存储过程时如果存在同名的存储过程,会删除老的存储过程.
oracle使用create or replace。mysql使用CREATE PROCEDURE先删除老的存储过程,然后再创建新的存储过程。
2. oracle 存储过程可以定义在package中,也可以定义在Procedures中.
如果定义在包中,一个包中可以包含多个存储过程和方法。如果定义在Procedures中,存储过程中不可以定义多个存储过程。mysql存储过程中不可以定义多个存储过程。
存储过程:存储过程开始和结束符号:BEGIN … END。 MySQL存储过程的参数用在存储过程的定义,共有三种参数类型,IN,OUT,INOUT。调用call存储过程名。
存储过程优点:.效率高,存储过程编译一次后,就会存到数据库,每次调用时都直接执行。易维护。安全性高,允许特定用户使用。
MySQL数据库
索引:Create index indexname on tablename(username);
主键索引:primary key,唯一索引:unique 组合索引:在多个字段上创建索引
Oracle数据库
索引: B树索引 (默认类型) ,B树索引在Oracle中是一个通用索引。:是通常所见的唯一索引、逆序索引。位图索引,主要用于节省空间,减少oracle对数据块的访问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值