本书主要内容包括数据库系统基础知识,MySQL数据库基础操作,SQL语言,视图和索引的基本操作,存储过程的基本操作,触发器的基础操作,数据库完整性,数据库备份与恢复等。
适读人群 :本书主要面向数据库初学者,适合作为高职高专院校和应用型本科院校计算机专业、信息管理等相关专业的数据库相关课程的教材、各种数据库培训班的培训教材,还可作为MySQL应用开发人员的参考资料。
本书是作者根据多年来为企业进行信息化建设的经验编写而成的,采用任务驱动的组织模式来解析数据库原理,概念清楚、重点突出、内容丰富、结构合理、思路清晰、案例翔实。读者通过逐步完成各个任务,可以由浅入深地掌握数据库的相关知识与技能,增强对基本概念的理解,培养实际动手能力。
在信息技术广泛应用的今天,数据库技术作为数据管理的核心技术在社会的各个领域发挥着强大的作用。本书是作者根据多年来为企业进行信息化建设的经验编写而成的,采用任务驱动的组织模式来解析数据库原理,概念清楚、重点突出、内容丰富、结构合理、思路清晰、案例翔实。读者通过逐步完成各个任务,可以由浅入深地掌握数据库的相关知识与技能,增强对基本概念的理解,培养实际动手能力。
全书共分为八个单元。单元1介绍数据库的一些基本概念以及数据库设计中的一些基本原理及注意事项。单元2介绍数据库的操作,包括数据库的创建、修改、删除等操作。单元3介绍表的创建、修改、删除及各种约束的定义。单元4介绍对创建的数据表进行查询操作,使用SELECT语句从一个或多个表中获取数据。单元5介绍索引和视图的应用,是对数据库表进行查询的优化解决方案。单元6介绍触发器的规划和设计,触发器的设计合理与否,直接影响数据库的性能和效率。单元7介绍存储过程和存储函数的使用方法,是数据库开发的重要组成部分。单元8介绍数据库管理及数据备份与还原,通过本单元的任务训练,可以掌握数据库的基本维护方法。
本书主要面向数据库初学者,适合作为高职高专院校和应用型本科院校的数据库相关课程的教材、各种数据库培训班的培训教材,还可作为MySQL应用开发人员的参考资料。
本书由武汉城市职业学院的张吉力、张喻平、关丽梅主编,副主编为武汉城市职业学院的黄涛、吴强。本书的编写分工为:单元3和单元4由张吉力编写,单元6和单元7由张喻平编写,单元1、单元2和单元5由关丽梅编写,单元8由黄涛编写,附录由吴强编写。全书由张吉力、张喻平负责规划各章节内容并完成全书的修改和统稿工作。此外,参与本书资料搜集和整理的还有王社、魏郧华、胡凯、蔡振等人,在此对他们表示衷心的感谢。
为了方便教学,本书还配有电子课件等教学资源包,相关教师和学生可以登录“我们爱读书”网(www.ibook4us.com)免费注册下载,或者发邮件至hustpeiit@163.com免费索取。
由于作者水平有限,书中难免有疏漏及不足之处,恳请广大读者不吝提出宝贵意见,帮助我们改正提高。
编者2016年6月
(1) 理解数据库的结构。 (2) 了解MySQL数据库的字符集和校对规则。 (3) 了解创建和管理数据库的SQL语法。 (1) 能运用SQL语句创建数据库。 (2) 能运用SQL语句设置MySQL字符集和校对规则。 (3) 能运用SQL语句管理数据库。
2.1 创建数据库 数据库可以看成是一个存储数据对象的容器,这些数据对象包括表、视图、触发器、存储过程等。因此,必须先创建数据库,然后才能创建其他数据对象。 【任务一】创建一个名为student的数据库。 【代码】 CREATE DATABASE student; 回车后系统提示Query OK,即命令被正确执行。 如果再次键入以上创建数据库命令,系统将提示出错信息,因为MySQL不允许两个数据库同名。要避免出现重复创建的错误提示,可以在命令中添加IF NOT EXISTS选项。 CREATE DATABASE IF NOT EXISTS student; 【任务二】创建一个名为book的数据库,采用字符集gb2312和校对规则gb2312_chinese_ci。 【代码】 CREATE DATABASE book DEFAULTCHARACTER SET gb2312 COLLATEgb2312_chinese_ci; 【任务三】 显示数据库。 【代码】 SHOWDATABASES 【知识点】
1. 创建数据库 MySQL安装后,系统自动创建information_scema和MySQL数据库,这是系统数据库,MySQL数据库的系统信息都存储在这两个数据库中。若删除了这些系统数据库,MySQL就不能正常工作。而对于用户的数据,需要创建新的数据库来存放。 使用CREATE DATABASE或CREATE SCHEMA命令创建数据库。 语法格式: CREATE {DATABASE|SCHEMA}\[IF NOT EXISTS\]数据库名 \[DEFAULT\] CHARACTER SET 字符集名 \[DEFAULT\] COLLATE 校对规则名\] 语法格式说明: “{ | }”表示二选一,“\[ \]”内为可选项。 句中的大写单词为命令动词,输入时不能更改命令动词,但MySQL命令解释器对大小写不敏感。 语法说明: 数据库名必须符合操作系统文件及文件夹命名规则,不区分大小写。 IF NOT EXISTS,创建数据库要先判断该名称的数据库是否已存在,只有不存在才能创建。 DEFAULT, 指定默认值。 CHARACTER SET,指定数据库字符集,其后的字符集名要用MySQL支持的具体字符集名称。 COLLATE,指定字符集的校对规则,其后的校对规则名要用MySQL支持的具体校对规则名称。 根据CREATE DATABASE的语法格式,在不使用“\[ \]”内的可选项,将“{ | }”中的二选一选定为DATABASE的情况下,创建数据库的最简格式为CREATE DATABASE。
2. MySQL中的字符集和校对规则 字符集是一套符号和编码的规则,不论是在Oracle数据库还是在MySQL数据库,都存在字符集的选择问题。如果在数据库创建阶段没有正确选择字符集,那么可能在后期需要更换字符集,而字符集的更换是代价比较高的操作,也存在一定的风险。所以,我们推荐在应用开始阶段,就按照需求正确地选择合适的字符集,避免后期不必要的调整。 MySQL服务器可以支持多种字符集(可以用SHOW CHARACTER SET命令查看所有MySQL支持的字符集),在同一台服务器、同一个数据库甚至同一个表的不同字段都可以指定使用不同的字符集,相比Oracle等其他数据库管理系统,在同一个数据库只能使用相同的字符集,MySQL明显存在更大的灵活性。 MySQL的字符集包括字符集(CHARACTER)和校对规则(COLLATION)两个概念。字符集用来定义MySQL存储字符串的方式,校对规则定义了比较字符串的方式。字符集和校对规则是一对多的关系, MySQL支持30多种字符集的70多种校对规则。 每个字符集至少对应一个校对规则。可以用“SHOW COLLATION LIKEutf8%;”命令查看相关字符集的校对规则。 建议在能够完全满足应用的前提下,尽量使用小的字符集。因为小的字符集意味着能够节省空间,减少网络传输字节数,同时存储空间的较小间接地提高了系统的性能。 有很多字符集可以保存汉字,比如utf8、gb2312、gbk、latin1等,但是常用的是gb2312和gbk。因为gb2312字库比gbk字库小,有些偏僻字(例如:洺)不能保存,因此在选择字符集的时候一定要权衡这些偏僻字在应用中出现的概率以及造成的影响,不能确定满足要求时最好选用gbk。 MySQL的字符集和校对规则有4个级别的默认设置:服务器级、数据库级、表级和字段级。它们分别在不同的地方设置,作用也不相同。 服务器字符集和校对规则,在MySQL服务启动的时候确定。可以在my.cnf中设置: \[mysqld\] default-character-set=utf8 或者在启动选项中指定: mysqld --default-character-set=utf8 或者在编译的时候指定: ./configure --with-charset=utf8 如果没有特别地指定服务器字符集,默认使用latin1作为服务器字符集。上面三种设置的方式都只指定了字符集utf8,没有指定校对规则,这样就使用该字符集默认的校对规则。如果要使用该字符集的非默认校对规则,则需要在指定字符集的同时指定校对规则。 【例21】使用gbk字符集和校对规则。 CREATEDATABASE test DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; 【例22】使用utf8字符集和校对规则。 CREATE DATABASE test2 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 3. 显示系统已创建的数据库名称 语法格式: SHOWDATABASES 语法说明: 该命令没有参数,执行后将系统所有已存在的数据库名列出来。
2.2 操作数据库 【任务四】打开student数据库。 【代码】 USE student; 【任务五】修改数据库book,将默认字符集改为latin1,校对规则改为latin1_swedish_ci。 【代码】 ALTER DATABASE book DEFAULTCHARACTER SET latin1 COLLATElatin1_swedish_ci; 【任务六】删除数据库book。 【代码】 DROPDATABASEbook; 【知识点】
1. 打开数据库 创建了数据库以后可以用USE命令指定它为当前数据库并使用它,语法如下: USE数据库名
2. 修改数据库 若要修改数据库的参数,可以使用ALTERDATABASE命令。 语法格式: ALTER {DATABASE | SCHEMA} \[数据库名\] \[DEFAULT\] CHARACTER SET 字符集名 | \[DEFAULT\] COLLATE 校对规则名 语法说明: (1) 数据库名称可以忽略,此时,语句对应于默认数据库。 (2) CHARACTER SET,用于更改默认的数据库字符集。 (3) COLLATE,是校对集的意思,可以理解为排序规则等,用于更改默认的数据库字符校对规则。 MySQL这样选择数据库字符集和数据库校对规则: ① 如果指定了CHARACTER SET X和COLLATE Y,那么采用字符集X和校对规则Y; ② 如果指定了CHARACTER SET X而没有指定COLLATE Y,那么采用CHARACTER SET X和CHARACTER SET X的默认校对规则; ③ 如果没有指定字符集,则采用服务器字符集和服务器校对规则。 ALTER DATABASE用于更改数据库的全局特性。这些特性储存在数据库目录中的db.opt文件中。要使用ALTER DATABASE,需要获得数据库ALTER权限。
3. 删除数据库 删除已经创建的数据库可以使用DROP DATABASE命令。 语法格式: DROPDATABASE \[ IF EXISTS \] 数据库名 语法说明: IF EXISTS,检测数据库是否存在,不存在时不删除也不报错。 【注意】使用DROP DATABASE 命令时要小心,因为它将永久删除数据库的信息,包括其中所有的表和数据。