目录第1章数据库系统概述1 1.1数据库技术发展史1 1.1.1数据处理技术1 1.1.2数据库技术的3个发展阶段2 1.2数据库系统组成4 1.3数据库的体系结构6 1.3.1数据库的三级模式结构6 1.3.2数据库的两级映像8 1.4数据库的数据模型8 1.4.1信息的3种世界8 1.4.2概念模型9 1.4.3数据模型11 习题115 第2章关系数据库系统16 2.1关系数据结构16 2.1.1关系的定义和性质16 2.1.2关系数据库18 2.2关系的完整性19 2.3关系运算202.3.1传统的集合运算20 2.3.2专门的关系运算22 2.4关系的规范化27 2.4.1函数依赖27 2.4.2关系规范化的目的28 2.4.3关系规范化的过程30 习题233 第3章数据库设计34 3.1数据库设计概述34 3.2需求分析34 3.2.1需求分析的任务35 3.2.2需求分析的方法35 3.3概念结构设计36 3.3.1概念结构设计的方法36 3.3.2概念结构设计的步骤37 3.4逻辑结构设计38 3.4.1将ER图转换为关系数据模型39 3.4.2关系模式的优化41 3.4.3设计用户外模式41 3.5物理结构设计42 3.5.1确定数据库的物理结构42 3.5.2评价物理结构43 3.6数据库实施和运行、维护44 3.6.1数据库实施44 3.6.2数据库的运行与维护 44 3.7数据库设计实例45 3.7.1银行卡管理系统数据库设计45 3.7.2图书借阅管理系统数据库设计46 3.7.3设备仓库管理系统设计48 习题351 第4章MySQL基础52 4.1MySQL简介52 4.1.1MySQL的发展历史52 4.1.2MySQL的特点54 4.1.3MySQL 8.0的新特性54 4.2MySQL的安装与配置55 4.2.1MySQL的版本55 4.2.2MySQL的安装过程56 4.2.3MySQL的可视化管理工具Navicat66 4.3MySQL的使用67 4.3.1命令行方式67 4.3.2Navicat连接MySQL68 4.4SQL简介69 4.4.1SQL的特点69 4.4.2SQL的分类70 4.4.3SQL的基本语法71 习题472 第5章数据库和表的操作73 5.1MySQL数据库简介73 5.2数据库操作74 5.2.1创建数据库74 5.2.2选择和修改数据库76 5.2.3删除数据库77 5.3创建和修改表78 5.3.1数据类型78 5.3.2创建表82 5.3.3修改表85 5.4列约束和表约束86 5.4.1主键约束87 5.4.2UNIQUE约束88 5.4.3CHECK约束89 5.4.4DEFAULT约束90 5.4.5外键约束91 5.5表数据操作92 5.5.1向表中添加数据93 5.5.2修改表中数据94 5.5.3删除表中数据95 5.6删除表96 习题596 第6章数据库查询97 6.1SELECT查询语法97 6.2简单查询98 6.2.1投影查询98 6.2.2选择查询100 6.2.3聚合函数查询103 6.3分组查询104 6.3.1简单分组105 6.3.2HAVING关键字的应用105 6.4连接查询106 6.4.1内连接106 6.4.2自连接107 6.4.3外连接108 6.4.4交叉连接109 6.5子查询110 6.5.1无关子查询110 6.5.2相关子查询112 6.6其他查询114 6.6.1限制查询的行数114 6.6.2联合查询114 6.6.3对查询结果排序115 6.7数据操作中使用SELECT子句116 6.7.1在INSERT语句中使用SELECT子句116 6.7.2在UPDATE语句中使用SELECT子句117 6.7.3在DELETE语句中使用SELECT子句117 习题6117 第7章视图和索引118 7.1视图118 7.1.1视图概述118 7.1.2创建视图119 7.1.3修改视图121 7.1.4使用视图122 7.1.5删除视图123 7.2索引124 7.2.1索引概述124 7.2.2索引分类124 7.2.3创建索引126 7.2.4查看索引信息128 7.2.5删除索引129 习题7130 第8章MySQL编程131 8.1MySQL编程基础131 8.1.1标识符131 8.1.2变量132 8.1.3运算符134 8.1.4注释136 8.2流程控制语句137 8.2.1SET语句137 8.2.2BEGIN…END语句137 8.2.3DELIMITER 语句137 8.2.4IF…ELSE语句138 8.2.5CASE语句138 8.2.6WHILE语句140 8.3函数140 8.3.1系统内置函数140 8.3.2用户定义函数143 8.4存储过程146 8.4.1存储过程概述146 8.4.2创建存储过程147 8.4.3调用存储过程149 8.4.4查看和删除存储过程151 习题8151 第9章游标、触发器和事件152 9.1游标152 9.1.1游标概述152 9.1.2游标的操作153 9.2触发器156 9.2.1触发器概述156 9.2.2创建触发器157 9.2.3查看触发器162 9.2.4删除触发器163 9.3事件163 9.3.1事件概述164 9.3.2创建事件164 9.3.3查看、修改和删除事件166 习题9168 第10章事务与并发控制169 10.1事务169 10.1.1事务的特性170 10.1.2事务的类型171 10.1.3事务处理语句171 10.2并发控制174 10.2.1并发带来的问题174 10.2.2设置事务的隔离级别175 10.2.3锁简介176 10.2.4锁的分类176 10.2.5死锁179 习题10180 第11章数据库的安全管理181 11.1MySQL 权限介绍181 11.1.1MySQL的权限表181 11.1.2查看MySQL的用户权限182 11.2用户管理184 11.2.1创建登录用户账号184 11.2.2查看用户账号185 11.2.3删除用户账号186 11.3权限管理187 11.3.1权限的类别187 11.3.2权限操作189 11.4角色管理195 11.4.1创建角色195 11.4.2授予和撤销角色权限195 11.4.3授予和撤销用户角色196 11.4.4删除角色197 11.5数据加密198 11.5.1数据加密简介198 11.5.2数据加密和解密操作199 习题11201 第12章数据库的备份与恢复202 12.1数据库备份概述202 12.1.1数据库备份的类型202 12.1.2数据库备份操作203 12.2数据库恢复概述207 12.2.1数据库故障分类207 12.2.2数据库恢复策略208 12.2.3数据库恢复操作210 12.3数据的导入/导出212 12.3.1导出数据212 12.3.2导入数据216 习题12220 第13章基于Java Web的数据库应用系统开发221 13.1Java语言概述221 13.2IntelliJ IDEA工具简介223 13.2.1IDEA的特色功能223 13.2.2IDEA的优缺点224 13.3使用JDBC接口访问MySQL数据库224 13.4数据库应用系统开发实例228 13.4.1数据库设计228 13.4.2应用系统设计与实现232 习题13252 附录AMySQL实验253 实验1数据库设计: ER图253 实验2数据库设计: 关系模型254 实验3数据库和表的定义254 实验4数据库的完整性255 实验5表中数据的操作257 实验6简单数据查询和分组查询259 实验7连接查询和子查询260 实验8视图261 实验9索引261 实验10流程控制编程和函数262 实验11存储过程263 实验12触发器和事件264 实验13数据库的安全管理265 实验14数据库的备份与恢复266 实验15综合实验: 数据库实施267 参考文献268