登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書

『簡體書』MySQL 数据库应用案例课堂

書城自編碼: 2706764
分類:簡體書→大陸圖書→計算機/網絡數據庫
作者: 刘玉红、郭广新
國際書號(ISBN): 9787302421542
出版社: 清华大学出版社
出版日期: 2015-12-01
版次: 1 印次: 1
頁數/字數: 564/856000
書度/開本: 16开 釘裝: 平装

售價:HK$ 127.7

我要買

 

** 我創建的書架 **
未登入.


新書推薦:
供应链金融(第4版)
《 供应链金融(第4版) 》

售價:HK$ 113.9
人人都想当网红?新媒体与注意力博弈
《 人人都想当网红?新媒体与注意力博弈 》

售價:HK$ 78.2
君主、道学与宋王朝
《 君主、道学与宋王朝 》

售價:HK$ 90.9
对话的力量,风靡全球的教练式沟通
《 对话的力量,风靡全球的教练式沟通 》

售價:HK$ 67.9
人的行为
《 人的行为 》

售價:HK$ 110.4
北京中轴线知识一点通
《 北京中轴线知识一点通 》

售價:HK$ 90.9
牛津世界历史研究指南
《 牛津世界历史研究指南 》

售價:HK$ 216.2
人间珍贵:澎湃夜读集3
《 人间珍贵:澎湃夜读集3 》

售價:HK$ 78.2

 

建議一齊購買:

+

HK$ 164.7
《MySQL从入门到精通 视频教学版》
+

HK$ 155.5
《MySQL数据库应用从入门到精通(第2版含盘)》
編輯推薦:
本书从零基础讲解起步,用实例引导读者深入学习,采取“数据库基础→数据库的基本操作→SQL查询语句→数据库高级管理→项目开发与案例设计”的讲解模式,深入浅出地讲解MySQL的各项技术及实战技能。

本书共分5篇,第1篇主要讲解MySQL的基础知识,MySQL的安装与环境配置等;第2篇主要讲解操作数据库,创建、修改和删除数据表,数据类型和运算符,索引的操作,视图的操作等;第3篇主要讲解插入、更新与删除数据,MySQL函数,查询数据,存储过程和函数,MySQL触发器等;第4篇主要讲解MySQL安全性机制,MySQL数据备份与还原,管理MySQL日志,MySQL性能的优化,MySQL的高级特性和使用MySQL Workbench管理数据库;第5篇主要讲解Java访问MySQL数据库,PHP操作MySQL数据库,论坛管理系统数据库设计、新闻发布系统数据库设计。本书附赠光盘中包含丰富的资源,包括MySQL案例源代码、教学幻灯片、精品教学视频、MySQL常用命令速查手册、数据库工程师职业规划、数据库工程师面试技巧、数据库工程师常见面试题、MySQL常见错误及解决方案、MySQL数据库经验及技巧大
內容簡介:
本书从零基础讲解起步,用实例引导读者深入学习,采取“数据库基础→数据库的基本操作→SQL查询语句→数据库高级管理→项目开发与案例设计”的讲解模式,深入浅出地讲解MySQL的各项技术及实战技能。
本书共分5篇,第1篇主要讲解MySQL的基础知识,MySQL的安装与环境配置等;第2篇主要讲解操作数据库,创建、修改和删除数据表,数据类型和运算符,索引的操作,视图的操作等;第3篇主要讲解插入、更新与删除数据,MySQL函数,查询数据,存储过程和函数,MySQL触发器等;第4篇主要讲解MySQL安全性机制,MySQL数据备份与还原,管理MySQL日志,MySQL性能的优化,MySQL的高级特性和使用MySQL Workbench管理数据库;第5篇主要讲解Java访问MySQL数据库,PHP操作MySQL数据库,论坛管理系统数据库设计、新闻发布系统数据库设计。本书附赠光盘中包含丰富的资源,包括MySQL案例源代码、教学幻灯片、精品教学视频、MySQL常用命令速查手册、数据库工程师职业规划、数据库工程师面试技巧、数据库工程师常见面试题、MySQL常见错误及解决方案、MySQL数据库经验及技巧大汇总等。
本书适合任何想学习MySQL的人员,无论您是否从事计算机相关行业,无论您是否接触过MySQL,通过学习本书均可快速掌握MySQL的管理方法和技巧。
目錄
目 录
第1篇 MySQL数据库基础
第1章 初识MySQL3
1.1 关于数据库的基本概念4
1.1.1 数据库4
1.1.2 表4
1.1.3 数据类型5
1.1.4 主键5
1.2 数据库技术构成5
1.2.1 数据库系统5
1.2.2 SQL语言6
1.2.3 数据库访问技术7
1.3 MySQL简介8
1.3.1 客户机-服务器软件8
1.3.2 MySQL的版本8
1.3.3 MySQL的优势9
1.3.4 MySQL 5.6的新功能10
1.4 MySQL的工具10
1.4.1 MySQL的命令行实用工具11
1.4.2 MySQL Workbench11
1.5 高手甜点12
1.6 跟我学上机13
第2章 MySQL的安装与环境配置15
2.1 Windows系统中安装与配置MySQL16
2.1.1 安装MySQL16
2.1.2 配置MySQL21
2.2 启动服务并登录MySQL数据库26
2.2.1 查看和启动MySQL服务26
2.2.2 登录MySQL数据库27
2.2.3 配置Path变量31
2.3 Linux系统中安装与配置MySQL32
2.3.1 Linux操作系统下的MySQL
版本介绍32
2.3.2 安装和配置MySQL的
RPM包34
2.3.3 安装和配置MySQL的源码包38
2.4 MySQL常用图形管理工具39
2.5 高手甜点40
2.6 跟我学上机40
第2篇 MySQL数据库的基本操作
第3章 操作数据库43
3.1 创建数据库44
3.2 删除数据库45
3.3 数据库存储引擎45
3.3.1 InnoDB存储引擎47
3.3.2 MyISAM存储引擎48
3.3.3 MEMORY存储引擎48
3.3.4 存储引擎的选择49
3.4 综合实例——数据库的创建和删除49
3.5 高手甜点51
3.6 跟我学上机52
第4章 创建、修改和删除数据表53
4.1 创建数据表54
4.1.1 创建表的语法形式54
4.1.2 使用主键约束55
4.1.3 使用外键约束56
4.1.4 使用非空约束57
4.1.5 使用唯一性约束58
4.1.6 使用默认约束58
4.1.7 设置表的属性值自动增加59
4.2 查看数据表结构60
4.2.1 查看表的基本结构语句
DESCRIBE60
4.2.2 查看表的详细结构语句SHOW
CREATE TABLE61
4.3 修改数据表62
4.3.1 修改表名62
4.3.2 修改字段的数据类型63
4.3.3 修改字段名64
4.3.4 添加字段65
4.3.5 删除字段67
4.3.6 修改字段的排列位置68
4.3.7 更改表的存储引擎69
4.3.8 删除表的外键约束70
4.4 删除数据表71
4.4.1 删除没有被关联的表72
4.4.2 删除被其他表关联的主表72
4.5 综合实例——数据表的基本操作74
4.6 高手甜点81
4.7 跟我学上机82
第5章 数据类型和运算符85
5.1 MySQL数据类型介绍86
5.1.1 整数类型86
5.1.2 浮点数类型和定点数类型88
5.1.3 日期与时间类型89
5.1.4 字符串类型100
5.1.5 二进制类型105
5.2 选择数据类型的方法108
5.3 常见运算符介绍109
5.3.1 运算符概述109
5.3.2 算术运算符110
5.3.3 比较运算符111
5.3.4 逻辑运算符119
5.3.5 位运算符121
5.3.6 运算符的优先级124
5.4 综合实例——运算符的使用125
5.5 高手甜点127
5.6 跟我学上机128
第6章 索引的操作129
6.1 索引简介130
6.1.1 索引的含义和特点130
6.1.2 索引的分类130
6.1.3 索引的设计原则131
6.2 创建索引132
6.2.1 创建表的时候创建索引132
6.2.2 在已有的表上创建索引137
6.3 删除索引144
6.4 综合实例——创建索引145
6.5 高手甜点148
6.6 跟我学上机148
第7章 视图的操作151
7.1 视图概述152
7.1.1 视图的含义152
7.1.2 视图的作用153
7.2 创建视图153
7.2.1 创建视图的语法形式153
7.2.2 在单表上创建视图154
7.2.3 在多表上创建视图155
7.3 查看视图156
7.3.1 用DESCRIBE语句查看视图的
基本信息156
7.3.2 用SHOW TABLE STATUS语句
查看视图的基本信息157
7.3.3 用SHOW CREATE VIEW语句
查看视图的详细信息158
7.3.4 在views表中查看视图的详细
信息158
7.4 修改视图160
7.4.1 用CREATE OR REPLACE VIEW
语句修改视图160
7.4.2 用ALTER语句修改视图161
7.5 更新视图161
7.6 删除视图164
7.7 综合实例——视图应用165
7.8 高手甜点172
7.9 跟我学上机173
第3篇 SQL查询语句
第8章 插入、更新与删除数据177
8.1 插入数据178
8.1.1 为表的所有字段插入数据178
8.1.2 为表的指定字段插入数据180
8.1.3 同时插入多条记录181
8.1.4 将查询结果插入表中183
8.2 更新数据184
8.3 删除数据186
8.4 综合实例——记录的插入、更新
和删除188
8.5 高手甜点192
8.6 跟我学上机193
第9章 MySQL函数195
9.1 MySQL中的函数分类196
9.2 数学函数196
9.2.1 绝对值函数ABSx和返回
圆周率的函数PI196
9.2.2 平方根函数SQRTx和求余函数
MODx,y197
9.2.3 获取整数的函数CEILx、CEILINGx和FLOORx197
9.2.4 获取随机数的函数RAND
和RANDx198
9.2.5 四舍五入函数ROUNDx、
ROUNDx,y和
TRUNCATEx,y198
9.2.6 符号函数SIGNx200
9.2.7 幂运算函数POWx,y、
POWERx,y和EXPx200
9.2.8 对数运算函数LOGx和
LOG10x201
9.2.9 角度与弧度相互转换的函数
RADIANSx和DEGREESx201
9.2.10 正弦函数SINx和反正弦
函数ASINx202
9.2.11 余弦函数COSx和反余弦函数
ACOSx202
9.2.12 正切函数、反正切函数和余切
函数203
9.3 字符串函数204
9.3.1 计算字符串中字符数的函数
和字符串长度的函数204
9.3.2 合并字符串函数CONCATs1,s2,…、
CONCAT_WSx,s1,s2,…204
9.3.3 替换字符串的函数
INSERTs1,x,len,s2205
9.3.4 字母大小写转换函数206
9.3.5 获取指定长度字符串的函数
LEFTs,n和RIGHTs,n206
9.3.6 填充字符串的函数LPADs1,len,s2
和RPADs1,len,s2207
9.3.7 删除空格的函数LTRIMs、
RTRIMs和TRIMs208
9.3.8 删除指定字符串的函数TRIM
s1 FROM s208
9.3.9 重复生成字符串的函数
REPEATs,n209
9.3.10 空格函数SPACEn和替换函数
REPLACEs,s1,s2209
9.3.11 比较字符串大小的函数
STRCMPs1,s2210
9.3.12 获取子串的函数SUBSTRINGs,n,len
和MIDs,n,len210
9.3.13 匹配子串开始位置的函数211
9.3.14 字符串逆序的函数
REVERSEs211
9.3.15 返回指定位置的字符串的函数
ELTN,字符串1,字符串2,字符
串3,...,字符串N212
9.3.16 返回指定字符串位置的函数
FIELDs,s1,s2,…212
9.3.17 返回子串位置的函数
FIND_IN_SETs1,s2212
9.3.18 选取字符串的函数
MAKE_SETx,s1,s2,…213
9.4 日期和时间函数213
9.4.1 获取当前日期的函数和获取当前
时间的函数214
9.4.2 获取当前日期和时间的函数214
9.4.3 UNIX时间戳函数215
9.4.4 返回UTC日期的函数和返回
UTC时间的函数215
9.4.5 获取月份的函数MONTHdate
和MONTHNAMEdate216
9.4.6 获取星期的函数DAYNAMEd、
DAYOFWEEKd和
WEEKDAYd216
9.4.7 获取星期数的函数WEEKd
和WEEKOFYEARd217
9.4.8 获取天数的函数DAYOFYEARd
和DAYOFMONTHd218
9.4.9 获取年份、季度、小时、分钟和
秒钟的函数219
9.4.10 获取日期的指定值的函数
EXTRACTtype FROM date220
9.4.11 时间和秒钟转换的函数220
9.4.12 计算日期和时间的函数221
9.4.13 格式化日期和时间的函数224
9.5 条件判断函数227
9.5.1 IFexpr,v1,v2函数227
9.5.2 IFNULLv1,v2函数227
9.5.3 CASE函数228
9.6 系统信息函数229
9.6.1 获取MySQL版本号、连接数和
数据库名的函数229
9.6.2 获取用户名的函数231
9.6.3 获取字符串的字符集和排序方式
的函数231
9.6.4 获取最后一个自动生成的ID值
的函数232
9.7 加密和解密函数234
9.7.1 加密函数PASSWORDstr234
9.7.2 加密函数MD5str234
9.7.3 加密函数ENCODE
str,pswd_str234
9.7.4 解密函数DECODE
crypt_str,pswd_str235
9.8 其他函数235
9.8.1 格式化函数FORMATx,n235
9.8.2 不同进制的数字进行转换的
函数236
9.8.3 IP地址与数字相互转换的
函数236
9.8.4 加锁函数和解锁函数237
9.8.5 重复执行指定操作的函数238
9.8.6 改变字符集的函数238
9.8.7 改变数据类型的函数239
9.9 综合实例——MySQL函数的使用239
9.10 高手甜点242
9.11 跟我学上机243
第10章 查询数据245
10.1 基本查询语句246
10.2 单表查询248
10.2.1 查询所有字段248
10.2.2 查询指定字段249
10.2.3 查询指定记录250
10.2.4 带IN关键字的查询252
10.2.5 带BETWEEN AND的范围
查询254
10.2.6 带LIKE的字符匹配查询255
10.2.7 查询空值256
10.2.8 带AND的多条件查询258
10.2.9 带OR的多条件查询259
10.2.10 查询结果不重复260
10.2.11 对查询结果排序261
10.2.12 分组查询264
10.2.13 使用LIMIT限制查询结果的
数量269
10.3 使用集合函数查询270
10.3.1 COUNT函数271
10.3.2 SUM函数272
10.3.3 AVG函数273
10.3.4 MAX函数274
10.3.5 MIN函数275
10.4 连接查询276
10.4.1 内连接查询276
10.4.2 外连接查询279
10.4.3 复合条件连接查询281
10.5 子查询282
10.5.1 带ANY、SOME关键字的
子查询282
10.5.2 带ALL关键字的子查询283
10.5.3 带EXISTS关键字的子查询283
10.5.4 带IN关键字的子查询285
10.5.5 带比较运算符的子查询286
10.6 合并查询结果288
10.7 为表和字段取别名290
10.7.1 为表取别名290
10.7.2 为字段取别名292
10.8 使用正则表达式查询293
10.8.1 查询以特定字符或字符串开头
的记录294
10.8.2 查询以特定字符或字符串结尾
的记录295
10.8.3 替代字符串中的任意一个
字符295
10.8.4 匹配多个字符296
10.8.5 匹配指定字符串297
10.8.6 匹配指定字符中的任意一个298
10.8.7 匹配指定字符以外的字符299
10.8.8 指定字符串连续出现的次数299
10.9 综合实例——数据表查询操作300
10.10 高手甜点307
10.11 跟我学上机308
第11章 存储过程和函数309
11.1 创建存储过程和函数310
11.1.1 创建存储过程310
11.1.2 创建存储函数312
11.1.3 变量的使用313
11.1.4 定义条件和处理程序314
11.1.5 光标的使用317
11.1.6 流程控制的使用318
11.2 调用存储过程和函数322
11.2.1 调用存储过程323
11.2.2 调用存储函数323
11.3 查看存储过程和函数324
11.3.1 查看存储过程和函数的状态324
11.3.2 查看存储过程和函数的定义325
11.3.3 查看存储过程和函数的信息326
11.4 修改存储过程和函数327
11.5 删除存储过程和函数329
11.6 综合实例——综合应用存储过程
和函数329
11.7 高手甜点332
11.8 跟我学上机333
第12章 MySQL触发器335
12.1 创建触发器336
12.1.1 创建只有一个执行语句的
触发器336
12.1.2 创建有多个执行语句的
触发器337
12.2 查看触发器339
12.2.1 用SHOW TRIGGERS语句
查看触发器信息339
12.2.2 在triggers表中查看触发器
信息341
12.3 触发器的使用342
12.4 删除触发器343
12.5 综合实例——触发器的应用343
12.6 高手甜点345
12.7 跟我学上机346
第4篇 MySQL数据库高级管理
第13章 MySQL安全性机制349
13.1 权限表350
13.1.1 user表350
13.1.2 db表和host表352
13.1.3 tables_priv表和
columns_priv表354
13.1.4 procs_priv表356
13.2 账户管理356
13.2.1 登录和退出MySQL服务器356
13.2.2 新建普通用户358
13.2.3 删除普通用户361
13.2.4 root用户修改自己的密码363
13.2.5 root用户修改普通用户密码364
13.2.6 普通用户修改密码365
13.2.7 root用户密码丢失的解决
办法366
13.3 权限管理367
13.3.1 MySQL的各种权限368
13.3.2 授权370
13.3.3 收回权限372
13.3.4 查看权限373
13.4 访问控制373
13.4.1 连接核实阶段374
13.4.2 请求核实阶段374
13.5 综合实例——综合管理用户权限375
13.6 高手甜点378
13.7 跟我学上机378
第14章 数据备份与还原381
14.1 数据备份382
14.1.1 使用mysqldump命令备份382
14.1.2 直接复制整个数据库目录388
14.1.3 使用mysqlhotcopy工具快速
备份388
14.2 数据还原389
14.2.1 使用mysql命令还原389
14.2.2 直接复制到数据库目录390
14.2.3 mysqlhotcopy快速恢复390
14.3 数据库迁移391
14.3.1 相同版本的MySQL数据库
之间的迁移391
14.3.2 不同版本的MySQL数据库
之间的迁移391
14.3.3 不同数据库之间的迁移392
14.4 表的导出和导入392
14.4.1 用SELECT…INTO OUTFILE
导出文本文件392
14.4.2 用mysqldump命令导出文本
文件395
14.4.3 用mysql命令导出文本文件397
14.4.4 使用LOAD DATA INFILE
方式导入文本文件400
14.4.5 使用mysqlimport命令导入
文本文件402
14.5 综合实例——数据的备份与恢复404
14.6 高手甜点408
14.7 跟我学上机409
第15章 管理MySQL日志411
15.1 日志简介412
15.2 二进制日志412
15.2.1 启动和设置二进制日志412
15.2.2 查看二进制日志413
15.2.3 删除二进制日志415
15.2.4 使用二进制日志还原数据库417
15.2.5 暂时停止记录二进制日志的
功能417
15.3 错误日志418
15.3.1 启动和设置错误日志418
15.3.2 查看错误日志418
15.3.3 删除错误日志419
15.4 通用查询日志420
15.4.1 启动和设置通用查询日志420
15.4.2 查看通用查询日志420
15.4.3 删除通用查询日志420
15.5 慢查询日志421
15.5.1 启动和设置慢查询日志421
15.5.2 查看慢查询日志422
15.5.3 删除慢查询日志422
15.6 综合实例——MySQL日志的综合
管理422
15.7 高手甜点428
15.8 跟我学上机428
第16章 MySQL性能的优化429
16.1 优化简介430
16.2 优化查询430
16.2.1 分析查询语句431
16.2.2 索引对查询速度的影响433
16.2.3 使用索引查询434
16.2.4 优化子查询436
16.3 优化数据库结构437
16.3.1 将字段较多的表分解成
多个表437
16.3.2 增加中间表438
16.3.3 增加冗余字段440
16.3.4 优化插入记录的速度440
16.3.5 分析、检查和优化表442
16.4 优化MySQL服务器443
16.4.1 优化服务器硬件444
16.4.2 优化MySQL的参数444
16.5 综合实例——全面优化MySQL
服务器445
16.6 高手甜点447
16.7 跟我学上机448
第17章 MySQL的高级特性449
17.1 MySQL查询缓存450
17.1.1 认识查询缓存450
17.1.2 监控和维护查询缓存455
17.1.3 检查缓存命中456
17.1.4 优化查询缓存457
17.2 合并表和分区表458
17.2.1 合并表458
17.2.2 分区表460
17.3 事务控制469
17.4 MySQL分布式事务473
17.4.1 分布式事务的原理473
17.4.2 分布式事务的语法473
17.5 高手甜点474
17.6 跟我学上机475
第18章 使用MySQL Workbench
管理数据库477
18.1 MySQL Workbench简介478
18.1.1 MySQL Workbench的优势478
18.1.2 安装MySQL Workbench478
18.2 SQL Development的基本操作480
18.2.1 创建数据库连接480
18.2.2 创建和删除新的数据库482
18.2.3 创建和删除新的数据表483
18.2.4 添加、修改表记录486
18.2.5 查询表记录487
18.2.6 修改表结构488
18.3 Data Modeling的基本操作489
18.3.1 建立ER模型489
18.3.2 导入ER模型493
18.4 Server Administration的基本操作495
18.4.1 管理MySQL用户495
18.4.2 备份MySQL数据库498
18.4.3 还原MySQL数据库500
18.5 高手甜点501
18.6 跟我学上机501
第5篇 MySQL开发与案例设计
第19章 Java访问MySQL 数据库505
19.1 JDBC概述506
19.2 下载与安装MySQL ConnectorJ506
19.2.1 下载MySQL ConnectorJ506
19.2.2 安装MySQL ConnectorJ
驱动507
19.3 Java连接MySQL数据库507
19.4 Java操作MySQL数据库509
19.4.1 创建Statement对象509
19.4.2 使用SELECT语句查询数据509
19.4.3 插入、更新和删除数据510
19.4.4 执行任意SQL语句510
19.4.5 关闭创建的对象511
19.5 Java备份和还原MySQL数据库512
19.5.1 备份MySQL数据库512
19.5.2 还原MySQL数据库512
19.6 高手甜点512
19.7 跟我学上机513
第20章 PHP操作MySQL 数据库515
20.1 PHP访问MySQL数据库的一般
步骤516
20.2 连接数据库前的准备工作516
20.2.1 在Windows系统下配置
PHP516
20.2.2 在Linux系统下配置PHP517
20.3 PHP操作MySQL数据库所用的
函数517
20.3.1 通过mysqli类库访问MySQL
数据库517
20.3.2 使用mysqli_connect函数连接
MySQL服务器519
20.3.3 使用mysqli_select_db函数
选择数据库文件520
20.3.4 使用mysqli_query函数
执行SQL语句520
20.3.5 使用mysqli_fetch_assoc 函数
从数组结果集中获取信息521
20.3.6 使用mysqli_fetch_object函数
从结果中获取一行作为对象521
20.3.7 使用mysqli_num_rows函数
获取查询结果集中的记录数521
20.3.8 使用mysqli_free_result函数
释放资源522
20.3.9 使用mysqli_close函数关闭
连接522
20.4 综合实例1——使用insert语句动态
添加用户信息522
20.5 综合实例2——使用select语句查询
数据信息524
20.6 高手甜点526
20.7 跟我学上机527
第21章 论坛管理系统数据库设计529
21.1 系统概述530
21.2 系统功能530
21.3 数据库设计和实现531
21.3.1 设计方案图表531
21.3.2 设计表533
21.3.3 设计索引537
21.3.4 设计视图538
21.3.5 设计触发器538
第22章 新闻发布系统数据库设计541
22.1 系统概述542
22.2 系统功能542
22.3 数据库设计和实现543
22.3.1 设计表543
22.3.2 设计索引548
22.3.3 设计视图549
22.3.4 设计触发器549
內容試閱
第1章
初识MySQL
MySQL是一个开放源代码的数据库管理系统DBMS,它是由MySQL AB公司开发、发布并支持的。MySQL是一个跨平台的开源关系型数据库管理系统,广泛地应用于Internet上的中小型网站开发。本章主要介绍数据库的基础知识,通过本章的学习,读者可以了解数据库的基本概念、数据库的构成和MySQL的基本知识。
学习目标已掌握的在方框中打钩
了解数据库的基本概念
了解表、数据类型和主键
熟悉数据库的技术构成
熟悉MySQL
掌握常见的MySQL工具
1.1 关于数据库的基本概念
数据库Database,DB是由一批数据构成的有序集合,这些数据被存放在结构化的数据表里。数据表之间相互关联,反映了客观事物间的本质联系。数据库系统提供对数据的安全控制和完整性控制。本节将介绍数据库中的一些基本概念,包括数据库的定义、数据表的定义和数据类型等。
1.1.1 数据库
随着信息技术和市场的快速发展,数据库技术层出不穷;随着应用的拓展和深入,数据库的数量和规模越来越大。数据库的诞生和发展给计算机信息管理带来了一场巨大的革命。
数据处理技术的发展大致划分为人工管理阶段、文件系统阶段、数据库系统阶段和高级数据库阶段。数据库的种类大概有层次式数据库、网络式数据库和关系式数据库三种,不同种类的数据库按不同的数据结构来联系和组织。
对于数据库的概念,没有一个完全固定的定义,随着数据库历史的发展,定义的内容也有很大的差异。其中一种比较普遍的观点认为,数据库是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。数据库是一个按数据结构来存储和管理数据的计算机软件系统,即数据库包含两层含义:既可指保管数据的“仓库”,又可指数据管理的方法和技术。
数据库具有如下特点:①实现数据共享,减少数据冗余;②采用特定的数据类型;③具有较高的数据独立性;④具有统一的数据控制功能。
1.1.2 表
在关系数据库中,数据库表是一系列二维数组的集合,用来存储数据和操作数据的逻辑结构。它由纵向的列和横向的行组成,行被称为记录,是组织数据的单位;列被称为字段,每一列表示记录的一个属性,都有相应的描述信息,如数据类型、数据宽度等。
例如,一个有关作者信息的名为authors的表中,每一列包含所有作者的某个特定类型的信息,比如“姓名”,而每一行则包含某个特定作者的所有信息,如编号、姓名、性别、专业,如图1-1所示。
编号
姓名
性别
专业
100
张三
f
计算机
101
李芬
m
会计
102
岳阳
f
园林
图1-1 authors表的结构与记录
1.1.3 数据类型
数据类型决定了数据在计算机中的存储格式,代表不同的信息类型。常用的数据类型有整数数据类型、浮点数数据类型、精确小数类型、二进制数据类型、日期时间数据类型和字符串数据类型。
表中的每一个字段就是某种指定数据类型,比如图1-1中“编号”字段为整数数据,“性别”字段为字符型数据。
1.1.4 主键
主键Primary Key又称主码,用于唯一地标识表中的每一条记录。可以定义表中的一列或多列为主键,主键列上不能有两行相同的值,也不能为空值。假如,定义authors表,该表给每一个作者分配一个“作者编号”,该编号作为数据表的主键,如果出现相同的值,将提示错误,因为系统不能确定查询的究竟是哪一条记录;如果把作者的“姓名”作为主键,则不能出现重复的名字,这与现实不相符,因此“姓名”字段不适合作为主键。
1.2 数据库技术构成
数据库系统由硬件部分和软件部分共同构成。硬件主要用于存储数据库中的数据,包括计算机、存储设备等;软件部分则主要包括DBMS、支持DBMS运行的操作系统,以及支持多种语言进行应用开发的访问技术等。本节将介绍数据库的技术构成。
1.2.1 数据库系统
数据库系统有3个主要的组成部分。
1 数据库Database:提供了一个存储空间用以存储各种数据,可以将数据库视为一个存储数据的容器。一个数据库可能包含许多文件,一个数据库系统中通常包含许多数据库。
2 数据库管理系统Database Management System,DBMS:用户创建、管理和维护数据库时所使用的软件,位于用户与操作系统之间,对数据库进行统一管理。DBMS能定义数据存储结构,提供数据的操作机制,维护数据库的安全性、完整性和可靠性。
3 数据库应用程序Database Application:虽然已经有了DBMS,但是在很多情况下,DBMS无法满足对数据管理的要求。数据库应用程序的使用可以满足对数据管理的更高要求,还可以使数据管理过程更加直观和友好。数据库应用程序负责与DBMS进行通信,访问和管理DBMS中存储的数据,允许用户插入、修改、删除数据库中的数据。
数据库系统如图1-2所示。
图1-2 数据库系统
1.2.2 SQL语言
对数据库进行查询和修改操作的语言叫作SQL。SQL的中文含义是结构化查询语言英文全称是Structured Query Language。SQL有许多不同的类型,有3个主要的标准:①ANSI美国国家标准机构 SQL,对ANSI SQL修改后在1992年采纳的标准,称为SQL-92或SQL2;②SQL-99标准,SQL-99标准从SQL2扩充而来并增加了对象关系特征和许多其他新功能;③各大数据库厂商提供的不同版本的SQL,这些版本的SQL不但能包括原始的ANSI标准,而且在很大程度上支持新推出的SQL-92标准。
SQL语言包含以下4个部分。
1 数据定义语言DDL:包括DROP、CREATE、ALTER等语句。
2 数据操纵语言DML:包括INSERT插入、UPDATE修改、DELETE删除等语句。
3 数据查询语言DQL:包括SELECT语句等。
4 数据控制语言DCL:包括GRANT、REVOKE、COMMIT、ROLLBACK等语句。
下面是SQL语句的例子,该语句声明创建一个students表:
CREATE TABLE students

student_id INT UNSIGNED,
name VARCHAR30,
sex CHAR1,
birth DATE,
PRIMARY KEY student_id
;
该表包含4个字段,分别为student_id、name、sex、birth,其中student_id定义为表的主键。
现在只是定义了一张表格,而没有任何数据,接下来用下面这条SQL声明语句,在students表中插入一条数据记录:
INSERT INTO students student_id, name, sex, birth
VALUES 41048101, ''Lucy Green'', ''1'', ''1990-02-14'';
执行完上面的SQL语句之后,students表中就会增加一行新记录,该记录中字段student_id的值为41048101,name字段的值为Lucy Green,sex字段的值为1,birth字段的值为1990-02-14。
再使用SELECT查询语句获取刚才插入的数据,结果如下:
SELECT name FROM students WHERE student_id = 41048101;
+--------------+
| name |
+--------------+
| Lucy Green |
+--------------+
上面简单列举了常用的数据库操作语句,只是为了给读者一个直观的印象,读者可能还不能理解,接下来会在学习MySQL的过程中详细介绍这些知识。
1.2.3 数据库访问技术
不同的程序设计语言会有各自不同的数据库访问技术,程序语言通过这些技术,执行SQL语句,进行数据库管理。主要的数据库访问技术如下。
1.ODBC
ODBCOpen Database Connectivity,开放式数据库连接技术为访问不同的SQL数据库提供了一个共同的接口。这一接口提供了最大限度的互操作性:一个应用程序可以通过共同的一组代码访问不同的 SQL 数据库管理系统DBMS。
基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是Access、MySQL还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。
2.JDBC
JDBCJava Database Connectivity,Java数据库连接是Java应用程序连接数据库的标准方法,是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问。JDBC由一组用Java语言编写的类和接口组成。
3.ADO.NET
ADO.NET是微软在.NET框架下开发设计的一组用于和数据源进行交互的面向对象类库。ADO.NET提供了对关系数据、XML和应用程序数据的访问,允许和不同类型的数据源以及数据库进行交互。
4.PDO
PDOPHP Data Object,PHP数据对象为PHP访问数据库定义了一个轻量级的、一致性的接口,提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据。PDO是PHP 5新加入的一个重大功能。
针对不同的程序语言,MySQL提供了不同的数据库访问连接驱动,读者可以在相关网站的下载页面http:dev.mysql.comdownloads下载相关驱动。
1.3 MySQL简介
MySQL是一个小型关系数据库管理系统,与其他大型数据库管理系统如Oracle、DB2、SQL Server等相比,MySQL的规模小、功能有限。但是由于MySQL的体积小、速度快、成本低,且提供的功能对稍微复杂的应用来说已经够用,因此使得MySQL成为世界上最受欢迎的开放源代码数据库。本节将介绍MySQL的特点。
1.3.1 客户机-服务器软件
主从式架构Client-Server Model或客户端服务器ClientServer结构简称CS结构,它是一种网络架构,通常在该网络架构下,软件分为客户端Client和服务器Server两部分。
服务器是整个应用系统资源的存储与管理中心,多个客户端则各自处理相应的功能,共同实现完整的应用。在客户服务器结构中,客户端用户的请求被传送到数据库服务器,数据库服务器进行处理后,将结果返回给用户,从而减少了网络数据传输量。
用户使用应用程序时,首先启动客户端通过有关命令告知服务器进行连接以完成各种操作,而服务器则按照此请示提供相应的服务。每一个客户端软件的实例都可以向一个服务器或应用程序服务器发出请求。
这种系统的特点就是,客户端和服务器程序不在同一台计算机上运行,它们归属于不同的计算机。
主从式架构通过不同的途径应用于很多不同类型的应用程序,比如,现在人们最熟悉的在因特网Internet上使用的网页。例如,当顾客想要在当当网站上买书的时候,电脑和网页浏览器就被当作一个客户端,同时,组成当当网的电脑、数据库和应用程序就被当作服务器。当顾客的网页浏览器向当当网请求搜寻某种图书时,当当网服务器就从当当网的数据库中找出所有该类型的图书信息,结合成一个网页,再发送回顾客的浏览器。服务器端一般使用高性能的计算机,并配合使用不同类型的数据库,比如Oracle、Sybase、MySQL等;客户端需要安装专门的软件,比如浏览器。
1.3.2 MySQL的版本
针对不同用户,MySQL分为两个不同的版本:
* MySQL Community Server社区版:该版本完全免费,但是官方不提供技术支持。
* MySQL Enterprise Server企业版服务器:它能够以很高的性价比为企业提供数据仓库应用,支持满足ACID属性的事务处理,提供完整的提交、回滚、崩溃恢复和行级锁定功能。但是该版本需付费使用,官方提供电话技术支持。
MySQL Cluster主要用于架设集群服务器,需要在社区版或企业版的基础上使用。
MySQL的命名机制由3个数字组成,例如,mysql-5.6.10。
1 第1个数字5是主版本号,描述了文件格式,所有版本为5的发行版都有相同的文件格式。
2 第2个数字6是发行级别,主版本号和发行级别组合在一起便构成了发行序列号。
3 第3个数字10是此发行系列中的版本号,随每次新分发版本递增。
在MySQL的开发过程中,同时存在多个发布系列,每个发布处在成熟度的不同阶段。
1 MySQL 5.6是最新开发的稳定GA发布系列,是将执行新功能的系列,目前已经可以正常使用。
2 MySQL 5.5是比较稳定GA发布系列。只是针对漏洞修复后重新发布,没有增加会影响稳定性的新功能。
3 MySQL 5.1是前一稳定产品质量发布系列。只是针对严重漏洞修复和安全修复后重新发布,没有增加会影响该系列的重要功能。
对于MySQL 4.1、4.0和3.23等低于5.0的老版本,官方将不再提供支持。而所有发布的MySQLCurrent Generally Available Release版本已经经过严格标准的测试,可以保证其安全可靠地使用。针对不同的操作系统,读者可以在MySQL的官方下载页面http:dev.mysql.comdownloads下载到相应的安装文件。
1.3.3 MySQL的优势
MySQL的主要优势如下。
1 速度:运行速度快。
2 价格:MySQL对大多数个人用户来说是免费的。
3 容易使用:与其他大型数据库的设置和管理相比,其复杂程度较低,易于学习。
4 可移植性:能够工作在众多不同的系统平台上,例如,Windows、Linux、Unix、Mac OS等。
5 丰富的接口:提供了用于C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等语言的API。
6 支持查询语言:MySQL可以利用标准的SQL语法和支持ODBC的应用程序。
7 安全性和连接性:具有十分灵活和安全的权限和密码系统,允许基于主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码安全。并且由于MySQL是网络化的,因此可以在连接因特网的任何地方访问,从而提高了数据共享的效率。
1.3.4 MySQL 5.6的新功能
和MySQL 5.5相比,MySQL 5.6的新功能主要包括以下几个方面。
1 子查询优化:通过优化子查询,可以提高执行效率,主要表现在查询的结果集合、分类和返回的执行次数上。
2 强化Optimizer Diagnostics优化诊断功能:运用EXPLAIN执行INSERT、UPDATE和DELETE,EXPLAIN以JSON格式输出,提供更精确的最佳化指标和绝佳的可读性。Optimizer Traces优化追踪功能还可以追踪最佳化决策过程。
3 通过强化InnoDB存储引擎,提升效能处理量和应用软件的可用性:提升处理和只读量高达230%,InnoDB重构得以尽量减少传统线程、冲洗和净化互斥的冲突和瓶颈,在高负载的OLTP系统展现更优异的数据同步性,显著提升只读和交易工作负载的处理量。
4 大幅提升可用性:数据库管理员运用在线数据定义语言作业,可执行新增索引和窗体变更功能,并同时更新应用程序。
5 新增Index Condition Pushdown ICP,索引条件下推和Batch Key Access BKA,批键访问功能:提升特定查询量高达280倍。
6 InnoDB全文检索功能:开发人员可以在InnoDB窗体上建立全文索引功能,以呈现文字搜寻结果,加快搜寻单字和语句。
7 自我修复复制丛集:新增的Global Transaction Identifiers and Utilities全局事务识别与应用可以简化自动侦测和复原功能。当数据库发生毁损时,数据库管理员无须介入,即可运用Crash-Safe Replication功能,自动将二进制记录和备份数据恢复至正确位置。Checksums可通过自动侦测和警示错误的功能,跨丛集保持数据的完整性。
8 高效能复制丛集:通过Multi-Threaded Slaves多线程从库,Binlog Group Commit二进制日志文件成组提交和Optimized Row-Based Replication优化的基于行的复制可以将复制能力提高5倍之多。用户向外扩充其跨商品系统的工作负载时,可以大幅提升复制的效能和效率。
9 时间延迟复制:可以防止主计算机的作业失误,例如意外删除窗体。
10 强化的PERFORMANCE_SCHEMA:协助用户得以监控使用最多资源的密集查询指令、对象、用户和应用程序,并可将查询、用户、主机和对象的统计数据汇整成新的摘要页面。新增功能可以使预设配置更加简易,而且耗费不到5%的成本。
11 MySQL?5.6纳入的新功能包含精确空间操作的地理信息系统Geographic Information System、强化的IPv6设备以及最佳化的服务器默认值。
1.4 MySQL的工具
MySQL数据库管理系统提供了许多命令行工具,这些工具可以用来管理MySQL服务器、访问控制数据库、管理MySQL用户以及进行数据库备份和恢复等。而且MySQL提供了图形化的管理工具,这使得对数据库的操作更加简单。本节将为读者介绍这些工具的作用。
1.4.1 MySQL的命令行实用工具
MySQL服务器端的实用工具程序如下。
1 mysqld:SQL后台程序即MySQL服务器进程。该程序必须运行之后,客户端才能通过连接服务器来访问数据库。
2 mysqld_safe:服务器启动脚本。在UNIX和NetWare中推荐使用mysqld_safe来启动mysqld服务器。mysqld_safe增加了一些安全特性,例如当出现错误时,会重启服务器并向错误日志文件写入运行时间信息。
3 mysql.server:服务器启动脚本。它调用mysqld_safe来启动MySQL服务器。
4 mysqld_multi:服务器启动脚本,可以启动或停止系统上安装的多个服务器。
5 myisamchk:描述、检查、优化和维护MyISAM表的实用工具。
6 mysql.server:服务器启动脚本。UNIX中的MySQL分发版包括mysql.server脚本。
7 mysqlbug:MySQL缺陷报告脚本。可以用它来向MySQL邮件系统发送缺陷报告。
8 mysql_install_db:该脚本用默认权限创建MySQL授权表。通常只是在系统上首次安装MySQL时执行一次。
MySQL客户端的实用工具程序如下。
1 myisampack:压缩MyISAM表以产生更小的只读表的一个工具。
2 mysql:交互式输入SQL语句或以批处理模式执行它们的命令行工具。
3 mysqlaccess:检查访问权限的主机名、用户名和数据库组合。
4 mysqladmin:执行管理操作的客户程序,例如创建或删除数据库,重载授权表,将表刷新到硬盘上,以及重新打开日志文件。mysqladmin还可以用来检索版本、进程,以及服务器的状态信息。
5 mysqlbinlog:从二进制日志读取语句的工具。在二进制日志文件中包含执行过的语句,可用来帮助系统从崩溃中恢复。
6 mysqlcheck:检查、修复、分析以及优化数据表。
7 mysqldump:将MySQL数据库转储到一个文件例如SQL语句或Tab分隔符文本文件的客户程序。
8 mysqlhotcopy:当服务器在运行时,快速备份MyISAM或ISAM表的工具。
9 mysql import:使用LOAD DATA INFILE将文本文件导入相关表的客户程序。
10 mysqlshow:显示与数据库、表、列以及索引相关的信息的客户程序。
11 perror:显示系统或MySQL错误代码的含义的工具。
1.4.2 MySQL Workbench
MySQL Workbench是下一代可视化数据库设计软件,它为数据库管理员和开发人员提供了一整套可视化数据库操作环境,主要功能如下。
* 数据库设计和模型建立。
* SQL开发取代MySQL Query Browser。
* 数据库管理取代MySQL Administrator。
MySQL Workbench有两个版本:
1 MySQL Workbench Community Edition也叫MySQL Workbench OSS,社区版,它是在GPL证书下发布的开源社区版本。
2 MySQL Workbench Standard Edition也叫MySQL Workbench SE,商业版,它是按年收费的商业版本。
截至本书完稿时,最新版本为MySQL Workbench 5.2.34。一些出版时间较早的MySQL教程中会提到图形化的工具MySQL Query Browser和MySQL Administrator。随着MySQL的发展,Oracle使用更高效、便捷的Workbench替换掉了这两个工具,目前官方已经不再提供MySQL Query Browser和MySQL Administrator的技术支持和更新,但是仍然可以在使用旧版本MySQL时使用它们。
1.5 高 手 甜 点
甜点1:如何快速掌握MySQL?
在学习MySQL数据库之前,很多读者都会问如何才能更好地掌握MySQL的相关技能呢?下面就来讲述学习MySQL的方法。
1 培养兴趣。兴趣是最好的老师,不论学习什么知识,兴趣都可以极大地提高学习效率,当然学习MySQL也不例外。
2 夯实基础。计算机领域的技术非常强调基础,刚开始学习可能还认识不到这一点,随着技术应用的深入,就会发现只有具有扎实的基础功底,才能在技术的道路上走得更快、更远。对于MySQL的学习来说,SQL语句是其中最为基础的部分,很多操作都是通过SQL语句来实现的。所以在学习的过程中,读者要多编写SQL语句,对于同一个功能,可以使用不同的实现语句来完成,从而能够深刻理解其不同之处。
3 及时学习新知识。正确、有效地利用搜索引擎,可以搜索到很多关于MySQL的相关知识。同时,参考别人解决问题的思路,也可以吸取别人的经验,及时获取最新的技术资料。
4 多实践操作。数据库系统具有极强的操作性,需要多动手上机操作。在实际操作的过程中才能发现问题,并思考解决问题的方法和思路,只有这样才能提高实战能力。
甜点2:如何选择数据库?
选择数据库时,需要考虑运行的操作系统和管理系统的实际情况。一般情况下,要遵循以下原则:
1 如果是开发大型的管理系统,可以在Oracle、SQL Server、DB2中选择;如果是开发中小型的管理系统,可以在Access、MySQL、PostgreSQL中选择。
2 Access和SQL Server数据库只能运行在Windows系列的操作系统上,其与Windows系列的操作系统有很好的兼容性。Oracle、DB2、MySQL和PostgreSQL除了可以在Windows平台上运行外,还可以在Linux和UNIX平台上运行。
3 Access、MySQL和PostgreSQL都非常容易使用,Oracle和DB2相对比较复杂,但是其性能比较好。
1.6 跟我学上机
1 上网查询常用的数据库系统有哪些?
2 上网了解MySQL 5.6的新功能和应用。
3 学习常见的SQL语句。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 大陸用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2024 (香港)大書城有限公司  All Rights Reserved.