[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]
[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:
最近几次笔试都涉及到数据库基础点,故总结一下。等待更新。
软件开发类的笔试经常考的有:[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: