@yangfch3
2015-11-30T15:43:32.000000Z
字数 4609
阅读 3451
后端
数据模型种类
层次、网状数据模型用指针连接数据表示它们的关系,指针就是表示数据在硬盘上的存储位置的架构。处理数据时必须知道数据的物理位置和构造,检索困难,技术要求高。
关系型数据库的运算
设计数据库
E-R模型
:从现实世界中抽取实体,分析实体之间的关系:实体之间的关系有一对一、一对多、多对多表格的范式
SQL
命令对大小写不敏感,但是推荐写成大写,与其他非命令字符区分;
数据库、表、字段名称都可以采用[]
包住,也可以不采用,建议统一采用[]
包住;
select
查询的是某个字段,或者所有字段(*);
字符串采用单引号:'
;
LIKE
用于模糊匹配的等于,%
通配任意字符,_
通配单个字符;
查询多个列名、多个表、多个数据库时,使用,
将各个列、表、数据库名隔开,各个列名最好加[]
,跨表多表格查询出现相同列名时,在表名和列名之间加上.
连接以区分;
SELECT Hope_ContentArticle.GeneralID,Hits,Hope_U_Article.ID,Author
FROM Hope_ContentArticle,Hope_U_Article
WHERE Hope_ContentArticle.GeneralID = Hope_U_Article.ID
每次查询的结果数据库管理系统(DBMS)都会生成一个临时的表格以展示;
关系型数据库的精髓在于拆分,便捷在于虽然拆分但是还能能够从各个不同的表抽取数据生成查询结果表;
select
的多个字段内含avg(...)
时,必须使用group by ...
为结果分组:使用计算函数和GROUP BY
组合
select NodeID,AVG(Hits)
FROM Hope_ContentArticle
GROUP BY NodeID
/***
HAVING ...(条件)
此条件语句可再次从上述结果中进行筛选
***/
子查询检索:在一个查询中嵌套另一个查询,或者说将一个查询的结果嵌套在另一个查询中作为参数;其查询是由内到外的。
select * from PE_CommonModel
where generalID in
(select ID
from PE_U_Article
where ID>1000)
通过对列
给予限制
,防止向表格中输入相互矛盾的数据;
把多个存在关系的表格拼接起来的操作,称之为“连接
”
表格字段的限制种类:
限制 | 含义 |
---|---|
PRIMARY KEY | 设定为主关键词 |
UNIQUE | 唯一 |
NOT NULL | 不许出现空值 |
CHECK | 检查范围 |
DEFAULT | 设定默认值 |
FOREIGN KEY/REFERENCES | 设定外关键词、参考键 |
INSERT
INSERT INTO onetable(column1,column2,column3)
VALUE(value1,value2,value3)
UPDATE
SET
UPDATE onetable
SET KEY = 'valueNew'
WHERE ...
DELETE
DELETE FROM onetable
WHERE ...
数据的插入、更新、删除等操作必须遵循约束条件
基本表、视图、CREATE VIEW...AS
基本表即为数据库中真实存在的表,视图是基于基本表制作的仅从用户的视角看到的、虚拟的表格;视图是由基本表内的数据拼凑生成的表格,在只希望对外公开数据的一部分时十分方便,使用视图十分方便。创建视图后,对视图的操作与表格基本相近了。
CREATE VIEW viewName(column01,column02,...)
AS ...
/*** AS 后面接 SELECT 查询语句作为表的内容 ***/
在程序语言中使用 SQL
游标:游标用于显示行位置,通过游标,访问每一行;使用程序语言的循环语句移动游标,可以遍历多个行。
一般程序语言不会像SQL
一样一条命令集中处理多个行。因此在程序语言中使用SQL
,使用游标可以抽取结果表格中每一行的数据。
事务:
用户的一个连贯操作(增删读写组合)我们称之为数据库事务;数据库事务必须由提交或回滚中的任意一个来结束;数据库应该具备 同时执行多个事务,同时不允许各事物之间产生矛盾 的特性。
数据库事务的
ACID
属性
性质 内容 含义 A(Atomicity) 原子性 数据库事务必须结束于提交或回滚中的任意一个任务 C(Consistency) 一致性 执行数据库事务时不能损坏数据库的一致性 I(Isolation) 隔离性 两个事物的执行时互不干扰的,一个事务不可能看到其他事物执行时中间某一时刻的数据 D(Durability) 持久性 在事务完成之后,该事务对数据库所做的更改便持久地保持在了数据库之中,不会被回滚
COMMIT
):确定 数据库事务处理的指令ROLLBACK
):取消数据库事务处理的指令提交和回滚可在事务结束时自动执行,也可分别使用二者的命令来显式执行
同时执行控制
锁:用于避免并行处理的两个数据库事务同时访问相同的 资源 (事务操作对象的表格和行) 时出现矛盾,防止更新遗失,实现可序列化
共享锁 | 独占锁 | |
---|---|---|
共享锁 | O | O |
独占锁 | × | × |
两相锁
各事务是由加设锁和解除锁两相构成。如何理解?
现有一个数据库事务操作两个资源对象
A
和B
,那么这个事务的上锁情况是:第①步为A、B都上锁,②为A、B进行事务操作,③为A、B进行解锁
而非上锁A——操作A——解锁A 上锁B——操作B——解锁B
这样的单次单对象操作
锁的粒度
隔离级别(ISOLATION LEVEL
):大型以及频繁使用的数据库,同时执行的事务不断增加,A事务对某行的事务操作未结束,B事务便对A事务操作的行进行读取;控制事务之间的互相干涉级别,叫做隔离级别。
隔离级别——锁的牢固程度
SET TRANSACTION
命令能设置隔离级别
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
/*** `READ UNCOMMITTED`/`READ COMMITTED`/`REPEATABLE READ`/`SERIALIZABLE` ***/
设置隔离界别可能带来的现象
索引:存储快速访问数据的收纳位置,用于在大量数据对部分数据的快速检索
查询过程分析
选择
,减少行数,缩小范围(选择时可以是全条件检索和索引方法检索);投影
减少与结果无关的列;连接
。连接方法: 查询最优化方法的确定标准:规则导向、成本导向
故障恢复与日志
数据库安全与权限
设定用户的操作权限
GRANT SELECT,UPDATE ON onetable TO someone
[WITH GRANT OPTION]/*** 可选项,是否赋予某用户赋权的权限 ***/
/*** SELECT INSERT UPDATE DLEETE ALL ***/
REVOKE SELECT,UPDATE ON onetable TO someone;
/*** 收回权限 ***/
网络(web
)和数据库
一般web
和数据库构成的系统的分为三层
1. 表示层:客户端(一般为web
浏览器),用户输入、获取对数据库的检索条件显示检索结果
2. 功能层:应用服务器、web
服务器,对SQL
命令进行整合,加工并发送所数据库的检索SQL
3. 数据层:数据库服务器,检索并返回结果
存储过程
SQL
命令,能达到减少网络负荷的作用,应用的开发也变简单了(无需拼凑SQL
,只需触发预先准备好的存储过程执行操作便可)分布式数据库
数据库尽管被分散了,但是仍有必要把它当成一个数据库处理。
分布式数据库知识点较难,以后需要时再补充!