四级数据库工程师笔记

发布时间 : 星期六 文章四级数据库工程师笔记更新完毕开始阅读

1、 人机界面设计原则:

(1) 用户应当感觉系统的运行始终在自己的控制之下,保持用户与人机界面间的双向交流; (2) 当系统发生错误或程序运行时间较长时,用户界面应该为用户提供有意义的反馈信息; (3) 应该忍受用户在使用过程中发生的各种操作错误,并能够方便地恢复过来,保证系统不

受或少受影响;

(4) 应该遵循一定的标准和常规;

(5) 采取灵活多样的数据输入方式,尽量减少用户数据输入负担; 2、 人机界面设计最好采用原形迭代法:

(1) 初步设计

(2) 用户界面细节设计; (3) 原形设计与改进;

第8章 关系数据库操作语言SQL

8.1 SQL支持的数据类型

8.1.1 数值型 1、 准确型 2、 近似型 8.1.2 字符串型 1、 普通编码字符串类型;

2、 统一编码字符串类型—Unicode编码; 3、 二进制字符串类型; 8.1.3 日期时间类型 8.1.4 货币类型

8.2 定义和维护关系表

8.2.1 关系表的定义与删除 1、定义表

CREATE TABLE <表名> (<列名><数据类型>[列级完整性约束定义]{, <列名><数据类型>[列级完整性约束定义]?}[,表级完整性约束定义]) 1、 列级完整性约束:

(1) NOT NULL:取值非空;

- 37 -

(2) DEFAULT:指定列的默认值,形式:DEFAULT 常量; (3) UNIQUE:列取值不重复;

(4) CHECK:列的取值范围,形式:CHECK(约束表达式); (5) PRIMARY KEY:指定本列为主码;

(6) FOREIGN KEY:定义本列为引用其他表的外码; 2、 删除表 DROP TABLE <表名>

8.2.2 修改表结构 ALTER TABLE <表名>

8.3 数据操作语言

8.3.1 数据查询 1、查询语句的基本结构:

SELECT <目标列名序列> FROM <数据源> {WHERE , GROUP BY , HAVING , ORGER BY}

(1) 比较:SELECT A,B,C FROM TABLE_A WHERE A>30; (2) 确定范围:WHERE A (NOT)BETWEEN 初始值 AND 结束值; (3) 确定集合:WHERE A (NOT)IN (‘A1’,‘A2’?.‘A3’); (4) 字符串匹配:WHERE A LIKE <匹配符>; (5) 四种<匹配符>:

(A)_(下划线):匹配任意一个字符; (B)%(百分号):匹配0个或多个字符; (C)[ ]:匹配[ ]中的任意一个字符; (D)[^]:不匹配[ ]中的任意一个字符;

(6) 涉及空值的查询:WHERE A IS (NOT)NULL;

(7) 多重条件查询:AND(条件必须全部为TRUE,结果才为TRUE),OR(任一条件为TRUE,

结果即为TRUE);

(8) 对查询结果进行排序:ORDER BY A [ASC(顺序) | DESC(逆序)]; (9) 列别名:列名 AS 新列名;

(10) 消除取值相同的行:SELECT DISTINCT A FROM TABLE_A; (11) 使用聚合函数统计数据:SQL的聚合函数:

(A) COUNT(*):统计表中元组的个数;

- 38 -

(B) COUNT([ALL (全部)| DISTINCT(无重复)] <列名>):统计本列非空列值的个

数;

(C) SUM(列名):计算列值的总和(必须是数值型列); (D) AVG(列名):计算列值平均值(必须是数值型列); (E) MAX(列名):求列最大值; (F) MIN(列名):求列最小值; (12) 对查询结果进行分组计算:

(A) 使用GROUP BY; (B) 使用HAVING子句;

3、 连接查询

(1) 内连接:FROM 表1 JOIN 表2 ON (连接条件);

(2) 自连接:一种特殊的内连接,相互连接的表在物理上是同一张表,但通过为表取别名的

方法,在逻辑上分为两张表;

(3) 外连接:输出不满足连接条件的元组,格式:

FROM 表1 LEFT|RIGHT OUTER JOIN 表2 ON (连接条件)

4、 查询语句的扩展:

(1) 合并多个结果集:SELECT 语句1 UNION SELECT 语句2??,使用UNION的两个基本规

则:

(A) 所有查询语句中列的个数和列的顺序必须相同; (B) 所有查询语句中对应的数据类型必须兼容;

(2) 将查询结果保存到新表中:SELECT 查询列表序列 INTO 新表名 FROM 数据源; (3) 使用TOP限制结果集行数:TOP n [percent] [WITH TIES]

(A) TOP n :表示取查询结果的前n行; (B) TOP n percent:表示取查询结果的前n%行; (C) WITH TIES:表示包括并列的结果; (4) 使用CASE表达式:

(A) 简单CASE表达式: (B) 搜索CASE表达式;

5、子查询:如果一个SELECT语句是嵌套在一个SELECT、INSERT、UPDATE或DELETE语句中,则称为子查询或内层查询,包含子查询的语句称为主查询或外层查询;

(1) 使用子查询进行基于集合的测试,形式:WHERE 表达式 [NOT] IN (子查询);

- 39 -

(2) 使用子查询进行比较测试,形式:WHERE 表达式 比较运算符 (子查询); (3) 使用子查询进行存在性测试,形式:WHERE [NOT] EXISTS (子查询); 8.3.2 数据修改

1、 添加数据:INSERT [INTO] 表名 VALUE 值列表;使用插入单行语句时要注意:

(1) 值列表中的值与列名表中的列按位置顺序对应,要求它们的数据类型必须一致; (2) 如果[表名]后边没有指明列名,则值列表中的值的顺序必须与表中列的顺序一致,且每

一列均有值;

2、 更新数据:形式 UPDATE 表名 SET [列名=表达式] [WHERE 更新条件]; 3、 删除数据::形式DELETE [FROM] 表名 [WHERE 删除条件];

8.4 索引

1、 创建索引:CREATE [UNIQUE] [CLUSTERED | NONCLUSTERED]

INDEX 索引名 ON 表名

(1) UNIQUE:表示要创建的索引是唯一索引; (2) CLUSTERED:表示要创建的索引是聚集索引; (3) NONCLUSTERED:表示要创建的索引是非聚集索引; 2、 删除索引:DROP INDEX 索引名;

8.5 视图

8.5.1 定义视图

1、 语法格式:CREATE VIEW 视图名 AS SELECT 语句 [WITH CHECK OPTION] 2、 需要注意下列几点:

(1) 在定义视图时要么指定全部视图列,要么全部省略不写。如果省略了视图列名,则视图

的列名与查询语句的列名相同。但如下情况则要明确指出组成视图的所有列名: A、 某个目标列不是单纯的属性名,而是计算函数或列的表达式; B、 多表连接时选出了几个同名列作为视图的字段; C、 需要在视图中为某个列选用新的更合适的列名。

(2) WITH CHECK OPTION选项表示通过视图对数据进行增加、删除和更改操作时要保证对数

据的操作结果要满足定义视图时指定的WHERE子句条件;

3、 视图通常用于查询数据,也可修改基本表中的数据,但不是所有的视力都可以这样。

4、 定义单源表视图—视图数据可只取自一个基本表的部分行、列,这样的视图行列与基本表行列对

应,这样定义的视图一般可以进行查询和更改数据操作

5、 定义多源表视图—视图数据可以来自多个表中,这样定义的视图一般只用于查询,不用于修改数

- 40 -

联系合同范文客服:xxxxx#qq.com(#替换为@)