数据库基础知识

阅读更多
数据库知识点
最近几次笔试都涉及到数据库基础点,故总结一下。等待更新。

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

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

2、SQL常用命令:
//建表
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]

3、范式:

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

4、事务特性(ACID)

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

5、锁的三种类型

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

6、索引的作用以及优点缺点

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

Have a nice day~

你可能感兴趣的:(sql,数据库基础知识,数据库基础,笔试,数据库)