数据库基础
2016-01-04 19:30
375 查看
第一章 关系型数据库管理系统简介
1.为什么要使用数据库有什么优点?
为了存储数据;
优点:降低存储数据的冗余度;
更高的数据一致性;
可以建立数据库所遵循的标准;
便于维护数据完整性;
能够实现数据的安全性;
2.在数据库发展史中出现了不同的数据模型: 包括网状模型、 层次模型、 关系模型、 对象模型;
2.1 层次模型
父与子的关系从上到下不断发展
定义
用树型(层次)结构表示实体类型及实体间联系的数据模型称为层次模型(HierarchicalModel)。
在一个层次模型中的限制条件是:有且仅有一个节点,无父节点,此节点为树的根;其他节点有且仅有一个父节点。
特点
层次模型的特点:记录之间的联系通过指针实现,查询效率高。
缺点
缺点:只能表示1:N的联系。尽管有许多辅助手段实现M:N的联系,但比较复杂,不易掌握2.2 网状模型
网状模型通过允许记录有多个父子关系,来增强层次模型。网状数据模型的优点如下。
(1) 能够更为直接地描述现实世界。如一个结点可以有多个双亲,结点之间可以有多种联系。
(2) 具有良好的性能,存取效率较高。
网状数据模型的缺点如下。
(1) 结构比较复杂,而且应用环境越大,数据库的结构就变得越复杂,不利于最终用户掌握。
(2) 其数据定义语言(DDL)、数据操作语言(DML)复杂,用户不容易使用。
2.3 关系模型
核心:表;关系模型是独立于应用程序的。更改数据库设计,而不会影响应用程序成为可能,因为关系模型用组成相关数据的表的行和列这种结构。
关系操作
集合操作
用户不必关心路径
关系数据操作语言
关系代数
关系演算
SQL(结构化的查询语言)
————列子:
#.关系模型把世界看作由实体和联系组成
实 体:指在现实世界中客观存在并可相互区别的事物。可能是有形的或无形的、具体或抽象。例如:一个学生、一门课程等都是实体。
实体 所具有的某一特性称为属性。实体可以用若干个属性来描述。
关系模型来创建的数据库称为关系型数据库。
在表的内部,数据被分为 列(column)和 行(row)。
1. 填入表中的每一行,代表一个实体;
2. 每个表由一到多个列组成。列代表实体的属性。
在关系数据库的表中用一个唯一的标识符来标识每一个行。这个标识符就是主键(Primary
Key)
主键的优点:便于唯一的区分表中的每一行。
联 系: (Rekationship)将两个或多个截然不同的实体以特定的意义关联在一起。
在关系数据库中,外键(Forergn Key)就是用来表达
表 和 表 之间的关联关系。
表之间的关联关系存在3种基本关系类型:
一对一关系 、一对多关系、多对多关系。
1. 一对一关系 :一个对一个。
2. 一对多关系:一个对多个。
在一对多的关系中,“多边”的表称为从表,把“一边”称为主表
3. 多对多关系 :在大多的关系型数据库管理系统中,多对多关系通过在关系的两个表之间增加第三个表来实现,
叫连接表(充当桥梁)。
关系型数据库管理系统:
关系型数据库管理只是一个保存数据的容器,大多数的数据库依靠数据库管理系统(Data Mangagement System,简称DBMS)的软件来管理数据库中的数据。管理关系型数据库的软件称为关系型数据库管理系统(Relational Database Mangagement System,简称RDBMS)。
数据库应用程序通过RDBMS做为桥梁,与关系型数据库进行交互。
RDBMS分为
本地数据库管理系统 和 数据库服务器管理系统:
1). 本地数据库管理系统又称为桌面型数据库管理系统。
2). 数据库服务器管理系统
通常 在不同的机器上。
2.4 对象模型
是面向对象的模型 ;支持对象模型,体现了面向对象数据库的基本特征。
对象模型也可以用二维表来表示,称为对象表。但对象表是用一个类(对象类型)表定义的。一个对象表用来存储这个类的一组对象。对象表的每一行存储该类的一个对象(对象的一个实例),对象表的列则与对象的各个属性相对应。因此,在面向对象数据库中,表分为关系表和对象表,虽然都是二维表的结构,但却是基于两种不同的数据模型。
结构化查询语言SQL:
什么是SQL?
SQL是结构化查询语言(Structured Query Language).
结构化查询语言包含6个部分:
一:数据查询语言(DQL:Data
Query Language):
其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER
BY,GROUP BY和HAVING。这些DQL保留字常与其他类型的SQL语句一起使用。
二:数据操作语言(DML:Data Manipulation Language):
其语句包括动词INSERT,UPDATE和DELETE。它们分别用于添加,修改和删除表中的行。也称为动作查询语言。
三:事务处理语言(TPL):
它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。
四:数据控制语言(DCL):
它的语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。
五:数据定义语言(DDL):
其语句包括动词CREATE和DROP。在数据库中创建新表或删除表(CREAT TABLE 或 DROP TABLE);为表加入索引等。DDL包括许多与人数据库目录中获得数据有关的保留字。它也是动作查询的一部分。
六:指针控制语言(CCL):
它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。
相关函数编辑
SQL Aggregate 函数SQL Aggregate 函数计算从列中取得的值,返回一个单一的值。[3]
有用的 Aggregate 函数:
AVG() - 返回平均值
COUNT() - 返回行数
FIRST() - 返回第一个记录的值
LAST() - 返回最后一个记录的值
MAX() - 返回最大值
MIN() - 返回最小值
SUM() - 返回总和
SQL Scalar 函数
SQL Scalar 函数基于输入值,返回一个单一的值。[3]
有用的 Scalar 函数:
UCASE() - 将某个字段转换为大写
LCASE() - 将某个字段转换为小写
MID() - 从某个文本字段提取字符
LEN() - 返回某个文本字段的长度
ROUND() - 对某个数值字段进行指定小数位数的四舍五入
NOW() - 返回当前的系统日期和时间
FORMAT() - 格式化某个字段的显示方式
相关文章推荐
- mysql分页查询详解
- 数据库设置乐观锁--作用
- GreenDao数据库升级解决方案
- MySQL基本命令及注意事项
- Mysql 关键字-保留字
- mysql不能使用localhost登录
- Oracle建用户 授权 表 表空间的操作
- 连接数据库的两种方式:Jdbc-Odbc桥和Jdbc直连
- Oracle创建外键约束
- redis主从同步及切换主从配置示例
- 底层数据库交互用ibatis,当把程序部署到iis上,报oracle.Microsoft provider V1.0.5000.0 时,解决方案。
- Oracle cloud control 12c 怎样改动sysmanpassword
- SQL select关联表查询 统计另一个表合计
- No mysqld or mysql.server after mariadb-server install
- oracle count 百万级 分页查询记要总数、总条数优化
- oracle collection
- 2016 datasqlite
- failed to load sql modules into the database cluster
- 使用Redis的Java客户端Jedis
- MongoDB复制二:复制集的管理