数据库
oracle数据库自启动和关闭脚本调用
数据库灾备恢复小结
DMS使用文档
Oracle12C安装文档_李光升
Centos配置yum源的操作步骤-李光升
CCS数据库突然卡顿问题解决-徐铭
Centos 7.9静默安装oracle 12cR2详细步骤
mysql5.7数据库sql语句数据类型隐式转换的反逻辑BUG
RDS MySQL临时文件导致实例磁盘空间满且出现“锁定中”状态
关于Mysql引擎Myisam和InnoDB的使用
MySQL查询语句中in和exists区别详解-知识点
Mysql 的存储过程中 WITH AS 的语法和使用
Mysql 性能调优-详解
oracle数据库DG搭建
SUSE linux 配置时钟同步服务NTP/Chrony
oracle数据库实例开启操作文档
oracle数据库实例关闭操作文档
oracle数据库DBS备份配置文档v2
ALiYun ECS CENTOS数据上传到OSS操作手册
Oracle - LOGMINER配置方法
oracle sysaux表空间爆满清理unified auditing数据
sysaux表空间爆满WRI$_ADV_OBJECTS占用严重
SAP权限对象
SYSAUX表空间WRI$\_ADV\_OBJECTS表过大清理V2
oracle:表访问方式
ORA性能诊断调优
数据字典(DICT)和性能事件类型(EVENT)
日志挖掘LogMiner
RMAN sql_id “0az7czjdw8z7j” 执行计划异常
Oracle11g Active Data Guard搭建、管理
ORACLE LOGMINER配置v2
oracle日志组调整
ECS linux服务器挂载nas磁盘失败
oracle数据库修改字符集
datapump数据泵导入导出
OA系统数据库ADG架构搭建
IPS数据库SQL执行异常:ORA-00600
oracle 12c 创建PDB
oracle数据库监听异常
lvm:阿里云磁盘扩容,lvm扩容
Redis基本操作
SAP S4 CLIENT COPY(800->400)
日常数据库操作
PGSQL操作
# ORA-00054: resource busy问题处理
OA数据库服务器故障分析报告
CCS数据库生产数据库(北京中心)覆盖到VER环境数据库(乌兰察布):使用nonpdb to pdb迁移方式
WINDOWS环境Django框架连接MySQL数据库配置
Django开发学习实战
什么是向量嵌入?
OA数据库服务器内次异常增长问题分析
基于AI的自动化服务器管理
AI技术发展趋势及其在农牧食品行业的创新应用
IPS数据库日志表数据归档&表分区
国产编程模型GLM-4.6海外爆火:性能媲美ClaudeSonnet,性价比优势显著
免费开源的零代码平台 / 无代码平台,敲敲云 v2.2.0 版本
数据库原理与应用
AI发展近况分析
ORACLE ADG环境下解除ADG关系并激活备库为独立数据库
麦肯锡重磅报告:关于未来的生存指南,当57%的工作被自动化,我们如何与AI结成利益共同体
【Oracle】Cursor(游标)
ORACLE数据库在曾经的备库(路径一致)进行不完全恢复
获取执行计划的6种方法
人工智能行业的发展已进入“系统竞争”时代
2026年AI与机器人发展趋势
事务未提交导致行锁等待问题处理
MongoDB日常操作命令
2026年人工智能前沿技术趋势与应用落地分析
Doris开发
本文档使用「觅思文档专业版」发布
-
+
首页
数据库原理与应用
## 数据库原理与应用 ### 一、数据管理技术的发展 #### 人工管理 ##### 背景 - 20世纪50年代中期以前 - 数据处理方式:批处理 - 计算机主要用于科学计算 - 硬件:外部存储器只有磁带、卡片和纸带等 - 软件:没有出现操作系统,无数据管理方面的软件 ##### 特点 - 数据面向应用 - 数据不保存 - 数据不能共享 - 不具有数据独立性 #### 文件系统管理 ##### 背景 - 20世纪50年代末到60年代中期 - 计算机大量用于数据管理 - 硬件:磁盘、磁鼓等直接存取设备 - 软件:操作系统中文件系统专门管理数据 - 数据处理方式:不仅能进行批处理,还能进行联机实时处理 ##### 特点 - 由文件系统管理数据 - 数据可以长期保存 - 数据是面向应用的 - 数据共享性 - 数据独立性 #### 数据库系统管理 ##### 背景 - 20世纪60年代后期 - 管理的数据对象、应用泛微、数据量、处理速度和共享性需求变化 - 硬件:大容量磁盘、光盘价格下降 - 软件:价格上升,编制和维护成本增加 - 数据处理:要求更高的联机实时处理,出现分布处理 ##### 特点 - 采用数据模型组织数据 - 数据面向整个应用领域 - 数据具有独立性 ### 二、各类名词基本概念 #### 数据库 数据库(Database——DB)是长期存储在计算机内、有组织的、统一管理的、可共享的相关数据的集合,是一个存放数据的仓库 #### 数据库管理系统 数据库管理系统(Database Management System——DBMS)为用户或应用程序提供访问数据库的途径,包括数据库的定义、操纵、组织、存储和管理、事务管理和运行管理等功能 #### 数据库系统 数据库系统(Database System——DBS)是采用数据库技术存储、维护数据,向应用系统提供数据支持的计算机硬件、软件和数据资源组成的系统  #### 体系结构 ##### 三级模式结构 1. 外模式 2. 概念模式 3. 内模式 ### 三、关系数据库标准查询语言 #### 基本表的定义 SQL语言通过定义一个关系所对应的基本表来完成关系模式的定义。基本表的定义包括基本表的创建、修改和删除 ##### 创建和打开数据库 ```sql CREATE DATABASE <数据库名> ; USE <数据库名> ; ``` 每个数据库至少包含**数据文件(.MDF)**和**日志文件(.LDF)** ##### 创建关系表 ```sql CREATE TABLE <表名> ( <属性列名1> <数据类型> [列级完整性约束条件] [,<属性列名1> <数据类型> [列级完整性约束条件], ...] [,表级完整性约束条件] ) ``` ###### 数据类型 | 数据类型 | 含义 | | ------------ | -------------------------------------- | | char(n) | 长度为n的定长字符串 | | varchar(n) | 最大长度为n的变长字符串 | | int | 长整数 | | smallint | 短整数 | | real | 取决于机器精度的浮点数 | | float(n) | 浮点数,精度至少为n位 | | numeric(p,d) | 定位数,由p位数字组成,小数后有d位数字 | | decimal(p,d) | 定位数,由p位数字组成,小数后有d位数字 | | date | 日期,包含年、月、日,格式为YYYY-MM-DD | | time | 时间,包含时、分、秒,格式为HH:MM:SS | ##### 修改基本表结构 ###### 增加列或表约束规则 ```sql ALTER TABLE <表名> ADD <属性列名> <数据类型> [完整性约束]|[完整性约束] ``` ###### 修改原有列属性 ```sql ALTER TABLE <表名> ALTER COLUMN <属性列名> <数据类型> ``` ###### 删除原有的列或约束规则 ```sql ALTER TABLE <表名> DROP {[CONSTRAINT]<完整性约束>| COLUMN <列名> [CASCADE|RESTRICT]} # RESTRICT:在没有视图或约束引用该属性列时,该列才能被删除 # CASCADE:级联删除时使用,将所有引用该列的视图和约束同时删除 ``` ##### 数据查询的语句格式 完整的数据查询语句格式 ```sql SELECT [ALL|DISTINCT] <目标列表达式1> [,<目标列表达式2>, ...] FROM <表名或视图名1> [,<表名或视图名2>, ...] [WHERE <元素选择条件表达式>] [GROUP BY <属性列名1> [,<属性列名2>, ...] [HAVING <组选择条件表达式>]] [ORDER BY <目标列名1> [ASC|DESC] [,<目标列名1> [ASC|DESC], ...]] ``` ###### 投影属性列 ```sql SELECT <目标列表达式1> [,<目标列表达式2>, ...] FROM <表名> ``` 查询结果中属性的显示顺序和语句中的排列顺序相同 ###### 去除重复元组 ```sql SELECT DISTINCT <目标列表达式1> [,<目标列表达式2>, ...] FROM <表名> ``` 删除查询结果中的重复行 ###### 查询结果的计算 使用聚集函数对查询结果进行统计 聚合函数包括 - COUNT(*):统计元组个数 - COUNT([DISTINCT|ALL] <列名>):统计一列值中的个数 - SUM([DISTINCT|ALL] <列名>):计算一列值的总和(此列必须是数值型) - AVG([DISTINCT|ALL] <列名>):计算一列值的平均数(此列必须是数值型) - MAX([DISTINCT|ALL] <列名>):求一列值中的最大值 - MIN([DISTINCT|ALL] <列名>):求一列值中的最小值 ###### 目标列命名 使用AS选项或赋值运算符"="来给查询结果列命名,也可将AS省略用空格隔开,需要注意的是"="不是标准的SQL语法,在MySQL的某些版本中不可用 ###### 查询结果的排序 默认ASC升序排列可不写,DESC降序排列,如果多多列进行排序,按所写顺序列第一列相同的再依次进行后续排序,依次类推 ```sql SELECT [ALL|DISTINCT] <目标列表达式1> [,<目标列表达式2>, ...] FROM <表名> ORDER BY <目标列名1> [ASC|DESC] [,<目标列名1> [ASC|DESC], ...] ``` ###### 运算符及谓词的使用 | 运算方式 | 语法 | | -------- | ------------------ | | 算术运算 | +,-,*,/,%(取余) | | 比较运算 | =,<>(!=),>=,>,<=,< | | 逻辑运算 | AND,OR,NOT | **谓词:** - [NOT] BETWEEN ... AND (边界值包括在内) - [NOT] LIKE (通配符"_",代表任意一个单字符;"%"代表任意长度的字符;查询内容包含通配符的需使用'斜杠+通配符' ESCAPE '斜杠'进行转义) - [NOT] IN 用于判断一个值是否属于一个集合 - IS [NOT] NULL **优先级:** 算术运算>比较运算>谓词运算>逻辑运算 ###### 聚集函数和分组查询 ```sql SELECT [ALL|DISTINCT] <目标列表达式1> [,<目标列表达式2>, ...] FROM <表名或视图名1> [,<表名或视图名2>, ...] [GROUP BY <属性列名1> [,<属性列名2>, ...] [HAVING <组选择条件表达式>]] ``` - 依次按属性列名1,属性列名2,...的值进行分组 - HAVING子句对分组进行筛选 - 聚集函数将以每一分组中的元组为计算对象
叶浩
2025年10月31日 11:58
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期