数据库基础知识

[b][size=large]数据库知识点[/size][/b]
最近几次笔试都涉及到数据库基础点,故总结一下。等待更新。

软件开发类的笔试经常考的有:[color=green]建表(DDL),查询更新(DML),视图,数据库的范式,锁,事务特性等;[/color]

[color=red]1、SQL语言包括数据定义、数据操纵(Data Manipulation),数据控制(Data Control);[/color]
[color=green] 数据定义:[/color]create table , alter table , drop table ,craete / drop index等;
[color=green] 数据操纵:[/color]select ,insert , update , delete;
[color=green] 数据控制:[/color]grant , revoke;

[color=red]2、SQL常用命令:[/color]
//建表
CREATE TABLE Student(
  ID NUMBER PRIMARY KEY,
  NAME VARCHAR2(50) NOT NULL,
CLASSID NUMBER,
FOREIGN KEY(CLASSID) REFERNENCES Class(ID)
);

//修改表结构
ALTER TABLE Student
[ALTER COLUMN <列名> <数据类型> ]
| [ADD <列名> <数据类型> <约束> ]
| [DROP COLUMN <列名> ]
| [ADD constraint <约束名> 约束定义 ]
| [DROP [constraint] <约束名> ]

//建视图
CREATE VIEW view_name AS
  Select * FROM Table_name;

//建索引
Create UNIQUE INDEX index_name ON TableName(col_name);

//插入
INSERT INTO tablename (column1,column2,…) values(exp1,exp2,…);

//更新数据
UPDATE tablename SET name=’zang 3’ condition;

//删除
DELETE FROM Tablename WHERE condition;

//授权
GRANT (Select,delete,…) ON (对象) TO USER_NAME [WITH GRANT OPTION];

//撤权
REVOKE (权限表) ON(对象) FROM USER_NAME [WITH REVOKE OPTION]

[color=red]3、范式:[/color]

[color=green] 1NF:[/color]每个属性是不可分的。
[color=green] 2NF:[/color]若关系R是1NF,且每个非主属性都完全函数依赖于R的键。例SLC(SID, CourceID, SNAME,Grade),则不是2NF;
[color=green] 3NF:[/color]若R是2NF,且它的任何非键属性都不传递依赖于任何候选键。

[color=red]4、事务特性(ACID)[/color]

[color=green] A原子性:[/color]即不可分割性,事务要么全部被执行,要么就全部不被执行。
[color=green] C一致性:[/color]事务的执行使得数据库从一种正确状态转换成另一种正确状态
[color=green] I隔离性:[/color]在事务正确提交之前,不允许把该事务对数据的任何改变提供给任何其他事务,
[color=green] D持久性:[/color]事务正确提交后,其结果将永久保存在数据库中。

[color=red]5、锁的三种类型[/color]

共享(S)锁:多个事务可封锁一个共享页;任何事务都不能修改该页;通常是该页被读取完毕,S锁立即被释放。
排它(X)锁:仅允许一个事务封锁此页;其他任何事务必须等到X锁被释放才能对该页进行访问;X锁一直到事务结束才能被释放。
更新(U)锁:用来预定要对此页施加X锁,它允许其他事务读,但不允许再施加U锁或X锁;当被读取的页将要被更新时,则升级为X锁;U锁一直到事务结束时才能被释放。

[color=red]6、索引的作用以及优点缺点[/color]

索引就一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。索引可以是唯一的,创建索引允许指定单个列或者是多个列。缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小(索引自己独立一个表)。

[color=olive][size=large]Have a nice day~[/size][/color] :arrow:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值