数据库
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开发
人工智能在数据库运维工作中的应用趋势与落地场景研究
帆软报表开发学习
AI 助手在 Oracle DBA 工作中的辅助能力研究报告
AI原生数据库发展趋势白皮书
OpenClaw数据库管理应用实践
Apache Doris 简介
AI在实际工作中的应用案例分享
人形机器人现状
从十大AI技术趋势,窥见“未来”
AI 在辅助投资股票方面的落地方案与实际使用价值
从原理到实践,一文读懂主流 AI 技术
AI Agent 从零开始学习路线图
AI 驱动的内容生产工作流探索 —— 基于微信公众号文章编写与视频号视频生成的实践
本文档使用「觅思文档专业版」发布
-
+
首页
数据库原理与应用
## 数据库原理与应用 ### 一、数据管理技术的发展 #### 人工管理 ##### 背景 - 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文档(打印)
分享
链接
类型
密码
更新密码
有效期