数据库技术复习提纲
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章 序言 1.1
数据库系统相对文件系统的优势
1.数据库系统(DBS )的特点(相对文件系统)
(1)数据库系统由数据库管理系统(DBMS )管理和控制
数据。DBMS 可以解决数据安全、数据完整性检查、并发控制和数据库恢复等问题。由DBMS 屏蔽数据存取细节:应用程序⇔DBMS ⇔数据库
(2)数据结构化程度高。数据库存储了整个组织的数据,
数据库既存储数据,又存储数据之间的联系。
(3)数据独立性高。数据独立性包括数据的物理独立性和数据的逻辑独立性。物理独立性指用户的应用程序与存储在磁盘上的数据(数据库中的数据)相互独立,即应用程序只处理数据的逻辑结构,而不关心数据的物理存储。逻辑独立性指用户的应用程序与数据库的逻辑结构相互独立,即数据的逻辑结构发生改变,应用程序可以不变(如:表中增加一个列,应用程序可以不变)。应用程序⇔按逻辑结构组织的数据⇔按物理结构组织的数据 应用程序⇔外模式⇔模式⇔内模式;或者,应用程序⇔模式⇔内模式
(4)数据的共享高,冗余度低,易扩充。数据库的数据面向整个系统,而不是某个特定的应用,数据可以被多个用户、多个应用系统共享使用。数据共享(集中控制)可以大大减少数据的重复性(冗余),节约存储空间,更容易保持数据的一致性。由于数据面向整个系统,且结构化程度高,因此容易增加新的应用,易于扩充,可以适应各种用户的要求。数据库存储整个企业或组织的数据 1.2数据库系统的组成
(1)数据库(DB )。定义1:自描述的集成的表的存储(有点片面,
并不是所有数据库均采用表方式存储的)。定义2:长期存储在计算机内,有组织的,可共享的数据集合。数据库一般包括:用户数据、元数据、索引、存储过程、触发器、安全数据、备份/恢复数据等。DB 的内容?
(2)数据库管理系统(DBMS )及其开发工具。是系统软件,主要
功能包括:数据库创建和维护功能、数据库运行管理功能、数据定义和操纵功能等。商业系统:Access 、SQL Server 、Oracle 、Sybase 等。开源系统:MySQL 、PostgreSQL 、SQLite 、Firebird (Borland 的InterBase )、SimpleSQL 、Berkely DB 、Minosse 等 (3)数据库应用系统。
(4)用户和数据库管理员(DBA )。工作领域的知识工作者,建立
数据分析模型,抽取数据进行分析;程序员,编写数据库应用系统;数据库管理员,决定数据库中的信息内容和结构,决定数据库的存储结构和存取策略,定义数据的安全性要求和完整性约束条件,监控数据库的使用和运行,数据库的改进和重组重构。用户?DBA ?职责?
第2章 结构化查询语言简介 2.1
SQL 特点
(1)关系数据库的标准语言:目前DBMS 广泛接受的标准是ANSI-92(SQL2)。
(2)SQL 是数据子语言:用于数据查询、数据操纵、数据定义和数据控制等,核心包括数据定义语言(DDL )、数据操纵语言(DML )和数据控制语言(DCL )。
(3)非过程式语言:SQL 语句只提出“做什么”,而不关心“怎么做”(这步由DBMS 负责完成)。对用户隐藏了数据的访问路径 2.2
SELECT 语句的使用
2.2.1.SELECT 语句框架(摘自JETSQL40.CHM )
1.SELECT [predicate] { * | table.* | [table.]field1 [AS alias1] [, [table.]field2 [AS alias2] [, ...]]}
FROM tableexpression [, ...][IN Externaldatabase]
[WHERE...]
[GROUP BY...]
[HA VING...]
[ORDER BY...]
[WITH OWNERACCESS OPTION];
(1)predicate:谓词,限定返回的记录数,可用的谓词包括ALL、DISTINCT、DISTINCTROW和TOP,没有指明谓词时,表示ALL。
(2)选择全部列使用*。
(3)table.*:指定表的全部列(多表查询),table为表的名称。
(4)field1AS alias1:列名称取别名。别名不能用于WHERE子句、GROUP BY子句、HA VING子句和ORDER BY 子句。
(5)WHERE子句:记录的筛选条件。
(6)GROUP BY子句:分组统计的依据,即根据哪些列进行分组和统计。
(7)HA VING子句:设置分组统计结果的筛选条件。
(8)ORDER BY子句:设置返回结果的排列顺序,ASC表示升序,DESC表示降序。
3.语法规则
(1)SQL语句以分号作为语句结束符。
(2)SQL语句的关键字大小写不敏感。即,Select、select和SELECT的写法是一样的。
(3)标识符:用以给数据对象命名,数据对象如:表、列、约束、触发器、存储过程、视图等。如果标识符会让DBMS 产生歧义,则必须使用方括号将标识符括起来,如,假设订单表命名为Order,其中订单号命名为Order Number,选择订单号为1的订单资料应写成
SELECT *
FROM[Order]
WHERE[Order Number] = 1;
(4)字符串常量:用单引号括起来,常量中包含单引号字符时,该单引号字符必须使用两个连续的单引号代替。如,'Water Sports'、'I''m a student.'。
(5)比较运算符:>,>=,=,<>,<=,<。
(6)逻辑运算符:NOT,AND,OR,IN,BETWEEN…AND…,LIKE。
(7)优先级:比较运算符> 逻辑运算符;NOT > AND > OR,IN,BETWEEN,LIKE。
(8)BETWEEN:例x BETWEEN 100 AND 200,这个写法与x >= 100 AND x <= 200等价。
(9)IN:例x IN('Water Sports', 'Camping'),这个写法与x = 'Water Sports' OR x = 'Camping'等价。当x属于集合时为真。(10)LIKE:根据匹配模式定义,判断字符串x是否包含某个子串。
(11)通配符:用于定义匹配模式。
例1:x LIKE 'Wh%',x以'Wh'开头时,结果为真。如,'Wh'、'What'、'Why'等。在Access软件中用*代替%,但在Microsoft®OLE DB Provider for Jet中仍应该使用%。
例2:x LIKE 'Wh_',x由3个字符构成,且以'Wh'开头时,结果为真。如,'Why'、'Who'等。在Access软件中用?代替_,但在Microsoft® OLE DB Provider for Jet中仍应该使用_。
例3:x LIKE '[张李]%',x以'张'或'李'开头时,结果为真。如,'张三'、'李四'等。
例4:x LIKE '[!张李]%',x不以'张'或'李'开头时,结果为真。如,'王五'等。Access写法。
例5:x LIKE '[^张李]%',x不以'张'或'李'开头时,结果为真。如,'王五'等。SQL Server写法。
例6:x LIKE '%10[%]%',x包含'10%'时,结果为真。如,'up 10%.'等。
例7:x LIKE '%Order[_]Number%',x包含'Order_Number'时,结果为真。