资源描述
数 据 库 原 理数 据 库 (Data Base)是 按 照 数 据 结 构 来 组 织 、 存 储 和 管 理 数 据 的 仓 库 , 是 存 储 在 一 起 的 关数 据 的 集 合优 点 : 减 少 数 据 的 冗 余 度 , 节 省 数 据 的 存 储 空 间 具 有 较 高 的 数 据 独 立 性 和 易 扩 充 性 实 现 数 据 资 源 的 充 分 共 享 。1. 数 据 管 理 系 统数 据 管 理 系 统 (Data Base ManageMent System DBMS)是 数 据 库 系 统 的 一 个 重 要 组 成 部分 , 是 位 于 用 户 与 操 作 之 间 的 一 层 数 据 管 理 软 件 , 负 责 数 据 库 的 组 织 、 数 据 操 作 、 数 据 维护 和 数 据 服 务 。数 据 存 取 的 物 理 构 建 : 为 数 据 模 式 的 物 理 存 取 与 构 建 提 供 有 效 的 存 取 方 法 和 手 段 。数 据 操 作 功 能 : 为 用 户 使 用 数 据 库 的 数 据 提 供 方 便 , 如 查 询 、 插 入 、 修 改 、 删 除 及 简 单 的 算 术 和 统 计 。数 据 定 义 功 能 : 用 户 可 以 通 过 数 据 库 管 理 系 统 提 供 的 定 义 语 言 (Data Definition Language DDL)方 便 的 对 数 据 库 中 的 对 象 进 行 定 义 。数 据 库 的 运 行 管 理 : 数 据 管 理 系 统 统 一 管 理 数 据 库 的 运 行 和 维 护 , 以 保 障 数 据 的 安 全 性 、完 整 性 、 并 发 性 和 故 障 的 系 统 恢 复 性 。数 据 库 的 建 立 和 维 护 功 能 : 数 据 库 管 理 系 统 能 够 完 成 初 始 数 据 的 输 入 和 转 换 、数 据 库 的 转 储 和 恢 复 、 数 据 库 的 性 能 监 视 和 分 析 。 2 数 据 库 系 统数 据 库 系 统 (Data Base System DBS)是 采 用 数 据 库 技 术 的 计 算 机 系 统 , 由 数 据 库 ( 数据 ) 、 数 据 库 管 理 系 统 ( 软 件 ) 、 数 据 库 管 理 员 ( 人 员 ) 、 硬 件 平 台 ( 硬 件 ) 、 软 件 平 台( 软 件 ) 5部 分 构 成 的 运 行 实 体数 据 库 管 理 员 (Data Base Administrator DBA)是 对 数 据 库 进 行 规 划 、 设 计 、 维 护 和 监 视等 的 专 业 管 理 人 员3. 数 据 库 应 用 系 统数 据 库 应 用 系 统 指 的 是 为 满 足 用 户 需 求 , 采 用 各 种 应 用 开 发 工 具 (VB、PB和 Delphi)等 开 发 技 术 开 发 的 数 据 库 应 用 软 件4. 关 系 数 据 库关 系 数 据 库 是 支 持 关 系 模 型 的 数 据 库 。 关 系 模 型 由 关 系 数 据 结 构 、 关 系 操 作 集 合 和 完 整 性约 束 组 成1. 在 关 系 模 型 中 数 据 结 构 单 一 , 现 实 世 界 中 的 实 体 以 及 实 体 间 的 联 系 均 用 关 系 来 表 示 , 实 际 上 关 系 模 型 中 的 数 据 结 构 就 是 一 张 二 维 表2. 关 系 操 作 分 为 关 系 代 数 、 关 系 演 算 、 具 有 关 系 代 数 和 关 系 演 算 的 双 重 特 点 语 言3. 完 整 系 约 束 包 括 实 体 完 整 性 、 参 照 完 整 性 和 用 户 定 义 完 整 性 5. 数 据 模 型数 据 模 型 是 数 据 库 系 统 的 核 心 与 基 础 , 是 关 于 描 述 数 据 与 数 据 之 间 的 联 系 、 数 据 的 语 义 、数 据 一 致 约 束 的 概 念 性 工 具 的 结 合1.层 次 模 式层 次 模 式 : 最 早 的 数 据 模 型 , 用 树 形 结 构 表 示 实 体 类 型 及 实 体 间 的 联 系 特 : 每 棵 树 有 且 仅 有 一 个 无 双 亲 节 , 称 为 根 特 : 树 中 除 根 外 的 所 有 节 点 有 且 仅 有 一 个 双 亲2.网 状 模 型数 据 犹 如 网 上 的 节 点 , 相 互 之 间 可 以 联 系 , 没 有 层 次 上 的 自 上 而 下 的 限 制 ,其 定 义 语 言 复 杂 , 独 立 性 差3.关 系 模 型以 二 维 表 来 描 述 数 据 , 关 系 模 型 数 据 结 构 简 单 、 清 晰 、 具 有 很高 的 数 据 独 立 性关 系 : 一 个 二 维 表 就 是 一 个 关 系 元 组 : 就 是 二 维 表 中 的 一 行 , 即 表 中 的 记 录属 性 : 就 是 二 维 表 中 的 一 列 , 用 类 型 和 值 表 示域 : 每 个 属 性 取 值 的 范 围 , 即 性 别 中 的 ( 男 、 女 ) 。实 体 完 整 性 束 : 约 束 关 系 的 主 键 中 属 性 值 不 能 为 空参 照 完 整 性 约 束 : 是 关 系 之 间 的 基 本 约 束用 户 定 义 的 完 整 性 约 束 : 它 反 映 了 具 有 应 用 中 数 据 的 语 义 要 求 数 据 库 的 一 致 性 和 可 维 护 性数 据 一 致 性 和 可 维 护 性 , 以 确 保 数 据 的 安 全 系 和 可 靠 性 :安 全 性 控 制 : 以 防 止 数 据 丢 失 、 错 误 更 新 和 越 权 使 用完 整 性 控 制 : 保 证 数 据 的 正 确 性 、 有 效 性 和 相 容 性并 发 性 控 制 :使 用 在 统 一 时 间 周 期 内 , 允 许 对 数 据 实 现 多 路 存 取 , 又 能 防 止 用 户 之间 的 不 正 常 交 互 作 用故 障 的 发 现 和 恢 复 : 由 数 据 库 管 理 系 统 提 供 一 套 方 案 ,可 以 及 时 发 现 故 障 和 恢 复 故 障 , 从 而 防 止 数 据 被 破 坏 数 据 库 的 发 展 历 程 和 趋 势第 一 代 数 据 库 代 表 是 1969年 IBM公 司 研 制 的 层 次 模 型 的 数 据 库 管 理 系 统 IMS和 70年 代 美 国 数 据 库 系 统 语 言 协 商 CODASYL下 属 数 据 库 任 务 组 DBTG提 议 的 网 状 模 型第 二 代 数 据 库 主 要 是 支 持 关 系 模 型 , 是 20世 纪 70年 代 由 时 任 IBM研 究 员 的 E.E.Codd博 士 提 出第 三 代 是 产 生 于 80年 代 , 在 保 持 和 继 承 第 二 代 关 系 数 据 库 技 术 的 同 时 , 将 面 向 对 象 的 思 想 、方 法 和 技 术 引 入 数 据 库 常 用 数 据 库常 用 的 数 据 库 有 : SQL Server、 Oracle、 IBM DB2DB2: DB2数 据 库 是 IBM公 司 的 产 品 , 起 源 于 System R和 System R*。 支 持 从 PC到UNIX从 中 小 型 机 到 大 型 机 , 从 IBM到 非 IBM各 种 操 作 平 台 , 既 可 以 在 主 机 上 以 主 /从 方 式 独 立 运 行 , 也 可 以 在 客 户 /服 务 器 环 境 中 运 行Oracle: 是 以 高 级 结 构 话 查 询 语 句 (SQL)为 基 础 的 大 型 关 系 数 据 库 , 通 俗 的 讲 它是 用 方 便 逻 辑 管 理 的 语 言 操 纵 大 量 有 规 律 数 据 的 集 合 Oracle7.x还 支 持 大 量 多 媒 体 数 据 : 图 形 , 声 音 , 动 画SQL server: 是 Microsoft(微 软 )推 出 的 产 品 , 脱 胎 于 Sybase SQL Server 1996年 : SQL Server6.5 1998年 : SQL Server7.0 2000年 8月 : SQL Server2000 2005年 12月 : SQL Server2005SQL Server2005: 支 持 企 业 版 (SQL Server2005 Enterprise Edition)、 标 准 版(SQL Server2005 Standard Edition)、 工 作 组 版 (SQL Server2005 Workgroup Edition ) 、 开 发 版 (SQL Server2005 Developer Edition)、 简 易 版 (SQL Server2005 Express Edition) E-R模 型E-R模 型 :entity-relation ,就 是 实 体 关 系1.实 体 : 客 观 存 在 可 以 描 述 , 使 用 矩 形 框 表 示 , 框 内 标 注 实 体 名 称2.属 性 : 使 用 椭 圆 框 表 示 , 并 用 线 与 实 体 联 系 起 来3.实 体 之 间 的 联 系 : 使 用 菱 形 框 表 示关 系 类 型 :l:l类 型 : 一 对 一 的 关 系l:m类 型 : 一 对 多 关 系m:m类 型 : 多 对 多 关 系注 意 : 关 系 数 据 库 中 不 允 许 出 现 多 对 多 关 系 , 如 果 出 现 必 须 增 加 交 叉 实 体维 修 人 员工 号 姓 名 部 门 职 位维 护 维 修 人 员设 备 号 设 备 名 称 制 造 商 投 入 使 用日 期维 护 号 设 备 号数 据 冗 余 就 是 数 据 重 复 , 数 据 重 复 和 完 整 性 是 由 于设 计 引 起 的 数 据 库 文 件 ( Database file)主 数 据 库 文 件 (Primary Database file)其 扩 展 名 为 .mdf次 数 据 库 文 件 (Secondary Database file) 事 务 日 志 文 件 (Transaction Log file)其 扩 展 名 为 : .ldf 文 件 组 (File Group)主 文 件 (Primary File Group)此 文 件 组 (Secondary File Group)数 据 库 的 特 点 :减 少 数 据 的 冗 余 度 , 节 省 数 据 的 存 储 空 间 具 有 较 高 的 数 据 独 立 性 和 以 扩 充 性实 现 数 据 资 源 的 充 分 共 享 分 类 备 注 和 说 明 数 控 类 型 说 明 二 进 制 数 据 类型 用 来 存 储 非 字 符 和 文 本 的 数 据 Binary 固 定 长 度 的 二 进 制 数 据Varbinary 可 变 长 度 的 二 进 制 数 据Image 可 以 用 来 存 储 图 像文 本 数 据 类 型 字 符 数 据 包 括 任 意 字 母 、 字 符和 数 字 字 符 的 组 合 Char 固 定 长 度 的 非 Unicode字 符数 据 最 大 长 度 是 8000varchar 固 定 长 度 的 非 Unicode字 符Nchar 固 定 长 度 的 Unicode字 符Nvarchar 可 变 长 度 的 Unicode字 符Text 存 储 可 变 长 度 的 信 息Ntext 存 储 可 变 长 度 的 长 文 本日 期 和 时 间 日 期 和 时 间 在 单 引 号 内 输 入 DateTime 日 期 和 时 间 数 字 数 据 该 数 据 仅 包 含 数 字 , 包 括 正 数 、负 数 以 及 分 数 IntSmallintTinyintBigint 整 数FloatReal 浮 点 数货 币 数 据 类 型 货 币 数 据 类 型 采 用 十 进 制 并 且精 确 到 小 数 点 后 面 4位 数 MoneyBit数 据 类 型 表 示 是 /否 ,1表 示 是 ,0表 示 否 Bit 1.创 建 数 据 表-语 法 :CREATE TABLE 表 名(列 名 数 据 类 型 ,.)代 码 :USE ZITGoCreate TABLE zit(zitid char(8)not null,zitname varchar(50)not null,zitaddress varchar(50)not null) 2.修 改 数 据 库(1).添 加 列-语 法 :ALTER TABLE 表 名ADD 列 名 数 据 类 型代 码 :ALTER TABLE ZITADD zitage int(2).修 改 列 的 属 性-语 法 :ALTER TABLE 表 名ALTER COLUMN 列 名 数 据 类 型代 码 :ALTER TABLE ZITALTER COLUMN zitage int (3).删 除 列-语 法 :ALTER TABLE 表 名DROP COLUMN 列 名代 码 :ALTER TABLE ZITDROP COLUMN zitage3.删 除 数 据 库 表-语 法 : DROP TABLE 表 名代 码 :DROP TABLE zit4.删 除 数 据 库-语 法 : DROP DATABASE 表 名代 码 : DROP DATABASE ZIT 约 束 类 型 功 能 使 用 说 明Not null 域 完 整 性 规 定 域 不 能 为 空 值Check 域 完 整 性 规 定 域 中 可 接 受 的 数 据 值Default 域 完 整 性 在 插 入 期 间 不 能 迅 速 提 供时 , 为 列 提 供 特 点 值Primary key 主 关 键 字 的 实 体 完 整 性 主 键 不 能 有 重 复 的 值 , 而且 不 能 为 NULL,使 用 时 往往 在 其 上 建 立 索 引unique 非 关 键 字 的 实 体 完 整 性 保 证 不 能 输 入 重 复 的 值Foreign key 保 证 引 用 完 整 性 定 义 列 或 者 列 组 , 其 值 与另 一 个 表 的 主 关 键 字 匹 配 非 空 约 束 (Not null 约 束 )-语 法 : Not null代 码 :Create table zit(zitID int not null,zitName varcahr(50)not null,zitAddress varchar(50)not null)-注 意 : 当 创 建 表 时 , 列 的 默 认 值 是 为 NULL检 索 约 束 (Check 约 束 )-语 法 : Check()代 码 : Create table zit(zitID int not null,zitName varcahr(50)not null,zitAge int check(age15) 默 认 约 束 (Default 约 束 )-注 意 : ( ) 每 一 个 字 段 只 能 有 一 个 Default约 束 , 而 且Default约 束 只 能 用 于 Insert( ) Default约 束 不 能 放 在 自 动 增 长 属 性 (identity)的 列 上 或 者 数据 类 型 为 Tlmestamp的 列 上 ,因 为 这 两 个 列 都 能 够 自 动 插 入 数 据( ) 如 果 列 不 允 许 为 空 且 并 没 有 指 定 Default约 束 ,就 必 须 明 确 地指 定 列 值 , 否 则 SQL Server会 返 回 错 误 信 息-语 法 : Default FOR()代 码 :Create table zit(zitID int not null,zitName varcahr(50)not null, zitAddress varchar(50) default重 庆 not null)-注 意 : 如 果 你 在 创 建 数 据 表 时 , 还 未 对 字 段 进 行 默 认 值 设 置 , 可 以 用 T-SQLAlter table zit add constraint df_zit_zitAddress default( 重 庆 ) for zitaddress 主 关 键 字 约 束 (Primary key 约 束 )-注 意 : ( ) 每 一 个 表 只 能 定 义 一 个 Primary key约 束( ) 输 入 的 值 必 须 是 唯 一 的( ) 不 允 许 为 空( ) Primary key 约 束 在 指 定 的 列 上 创 建 唯 一 的 索 引-语 法 : Primary key(列 名 表 )代 码 :Create table zit(zitID int primary key not null,zitName varcahr(50)not null,zitAddress varchar(50) not null)唯 一 约 束 (Unique 约 束 )-注 意 : ( ) 允 许 为 空( ) 在 一 个 表 中 可 以 设 置 多 一 个 Unique约 束( ) 可 以 将 Unique约 束 用 于 必 须 唯 一 的 值 的 单 列 或 列 中 , 但 不一 定 是 表 的 主 键 ( ) 通 过 在 指 定 的 单 列 或 多 列 中 创 建 唯 一 的 索 引 可 以 强 制 实 现Unique约 束-语 法 : Unqiue(列 名 表 )代 码 :Create table zit(zitID int primary key,zitName varcahr(50)not null,zitAddress varchar(50)外 关 键 字 约 束 ( Foreign KEYE约 束 )-语 法 : Foreign key()Reference(列 表 名 2)on delete代 码 : Create table zit(zitID int primary key, zitName varcahr(50)not null,ClassID int)Create table School(ClassID int primary key,CLASSName varcahr(50)not null,)-注 意 : 创 建 外 键 约 束 的 SQL语 句alter table zit add constraint zi_ClassID Foreign key(ClassID)references ziT(ClassID)标 识 列-语 法 : IDENTITY(seed,increment)*标 识 列 通 常 也 被 定 义 为 主 键-语 法 :zitID int identity(1,1)primary key not null NULL 空NOT NULL 非 空CHECK 检 查DEFAULT 默 认PRIMARY KEY 主 键UNIQUE 唯 一 FOREIGN KEY 外 键INDETITY 标 识-语 法 :create table class(stuid int identity(1,1)primary key not null, stuname varchar(50),stusex varchar(50),stuage int check (stuage=15 and stuage=25),stubirth datetime,stutel int,stuaddress varchar(40)default重 庆 ) 聚 合 函 数函 数 名 称 说 明SUM 返 回 表 中 所 有 值 的 和AVG 计 算 平 均 值MIN 返 回 表 达 式 里 的 最 小 值MAX 返 回 表 达 式 里 的 最 大 值COUNT 返 回 组 中 项 目 的 数 量-语 法 :select sum(列 名 )from 表 名代 码 :select sum(sum)as C#总 分 from zit-语 法 :select avg(列 名 )from 表 名 代 码 : select avg(java)as JAVA 平 均 分 from zit-语 法 :select max(列 名 )from 表 名代 码 :select max(java)as JAVA 最 高 分 from zit-语 法 :select min(列 名 )from 表 名代 码 :select min(java)as JAVA 最 低 分 from zit-语 法 :Select count(列 名 )form 表 名代 码 :Select count(zit)as测 试 成 绩 不 及 格 的 数 量 from zit where result12(2)使 用 OR返 回 满 嘴 任 一 条 件 的 行代 码 : select * from books where bookpublisher=重 庆 or bookname=语 文 (3)使 用 NOT返 回 不 满 足 表 达 式 的 行代 码 :select * from books where not bookpublisher=上 海 排 序 查 询 order by /以 价 格 进 行 排 序 , 按 照 升 序 (ASC)显 示 所 有 数 据代 码 :select * from books order by bookprice ASC/以 价 格 进 行 排 序 , 按 照 降 序 (DESC)显 示 所 有 数 据代 码 :select * from books order by bookprice DESC多 级 排 序以 书 名 以 及 价 格 进 行 排 序 , 分 别 按 照 书 名 以 升 序 , 价 格 以 降 序 显 示所 有 数 据代 码 : select * from books order by bookname ASC,bookprice descSELECT 查 询 WHERE 指 定 Order by 排 序DESC 降 序 ASC 升 序
展开阅读全文