实训教材系列数据库的设计与开发.ppt
《实训教材系列数据库的设计与开发.ppt》由会员分享,可在线阅读,更多相关《实训教材系列数据库的设计与开发.ppt(238页珍藏版)》请在三一办公上搜索。
1、Oracle Java EE实训教材系列数据库的设计与开发,第一章 MySQL介绍,目 标,解释MySQL产品的起源和状态列出现有的MySQL产品及专业服务安装MySQL及“world”数据库描述MySQL客户端-服务器模型,3,MySQL概述,MySQL最初是由“MySQL AB”公司开发的一套关系型数据库管理系统(RDBMS)。MySQL不仅是最流行的开源数据库,而且是业界增长最快的数据库,每天有超过7万次的下载量,其应用范围从大型企业到专有的嵌入应用系统。MySQL AB是由两个瑞典人和一个芬兰人:David Axmark、Allan Larsson和Michael“Monty”Wide
2、nius在瑞典创办的。在2008年初,Sun Microsystems收购了MySQL AB公司。在2009年,Oracle收购了Sun公司,使MySQL并入Oracle的数据库产品线。,4,MySQL数据库产品,MySQL数据库是公认的简单易用、高性能及高可靠性的产品。MySQL企业服务器MySQL社区服务器MySQL嵌入数据库MySQL集群,5,MySQL图形用户界面(GUI)工具,MySQL GUI工具为MySQL数据库提供了一组丰富的图形用户界面。MySQL移植工具包MySQL AdministratorMySQL Query Browser,6,MySQL驱动程序,MySQL数据库驱
3、动程序(也称作连接器),为多种编程语言提供数据库客户端的连接。MySQL包括以下连接器:MySQL C APIMySQL连接器/ODBCMySQL连接器/JMySQL连接器/NetMySQL连接器/PHP,7,嵌入式MySQL解决方案,MySQL还提供了库文件,用来将MySQL数据库服务器嵌入到程序中。libmysqldMySQL MXJ,8,安装MySQL,推荐到MySQL网站的下载网页:下载MySQL数据库服务器。这里有多种支持的平台,并且每个版本都有不同的安装说明。在Windows中安装MySQL服务器,9,安装“world”数据库,MySQL提供了三个数据库示例,以用于测试数据库特征及
4、培训。下载地址为:。需要使用MySQL命令行客户端来装载world数据库。1.创建“world”数据库mysql CREATE DATABASE world;2.选择“world”数据库mysql USE world;3.构建“world”数据库的表mysql SOURCE C:/world.sql,10,MySQL客户端-服务器模型,在网络环境中,MySQL采用客户端/服务器架构进行工作。MySQL的安装包括以下主要部件:MySQL服务器客户端程序MySQL非客户端工具,11,MySQL客户端-服务器模型,12,第二章 MySQL客户端,目 标,在MySQL客户/服务器体系结构中调用客户端程
5、序使用mysql客户端程序,14,调用客户端程序,MySQL客户端程序可以从命令行调用。当客户端程序被调用时,可以通过在程序名后指定选项来控制它的行为。选项也可以在选项文件中定义。shell mysql helpshell mysql-version,15,通用命令选项语法,MySQL程序选项具有以下两种通用形式:长选项,由单词之前加两个减号组成短选项,由单个字母之前加一个减号组成shell mysql-versionshell mysql-V一些选项是要赋值的。例如:,16,建立连接的选项,17,MySQL用户身份选项,-user=“用户名”或 u“用户名”-password=“密码值”或
6、p“密码值”,18,如何指定连接参数,用缺省主机名和用户名(没有密码)连接服务器:shell mysql使用用户名“myname”连接本地主机服务器,让mysql提示用户输入密码:shell mysql-host=localhost-password-user=myname与上例使用相同的选项,但使用相应的短选项形式:shell mysql-h localhost-p-u myname,19,交互式使用mysql,mysql客户端程序可以交互式地使用,或以批处理模式从文件中读取查询。交互式模式对日常使用是非常有用的,例如快速的SQL语句处理,以及测试SQL语句是如何工作的。对运行保存在文本文件
7、中的SQL语句(也称为SQL脚本),批处理是很有用的。例如:mysql SELECT VERSION();或shell mysql-u user_name-ppassword-e SELECT VERSION(),20,语句结束符,有多个结束符可用于终结语句:mysql SELECT VERSION(),DATABASE();mysql SELECT VERSION(),DATABASE()g 可以用mysql命令DELIMITER来改变结束符:mysql DELIMITER go mysql SELECT COUNT(*)-FROM world.City-go G序列也被用作语句结束符,但它
8、还有其它影响,即导致mysql以垂直方式显示结果:mysql SELECT VERSION(),DATABASE()G,21,语句结束符,mysql允许使用多个输入行来键入一个查询:mysql SELECT Name,Population FROM City-WHERE CountryCode=IND-AND Population 3000000;如果一条语句导致错误,mysql将显示服务器返回的错误信息:mysql This is an invalid statement;如果想要终止一条正在编写的语句,可键入c。为了退出mysql,可使用q、QUIT或EXIT:mysql q,22,mys
9、ql提示符,23,mysql提示符,为了重新定义“mysql”提示符,可使用prompt命令;mysql prompt win 1win 1在提示符中放入当前信息,诸如用户、主机和数据库;mysqlprompt(uh)dPROMPT set to(uh)d(rootlocalhost)world为了将提示符转换为缺省形式,应输入不带参数的prompt命令或R。(rootlocalhost)worldpromptReturning to default PROMPT of mysqlmysql,24,在mysql中使用编辑键,mysql客户端支持输入行的编辑,这使得它可以回调以前的输入行并可以进
10、行编辑。在Unix/Linux上,它还支持“tab”完成键,从而可以更容易地输入查询。四个方向键在Unix下,mysql客户端拥有全部的readline功能会话期间命令历史的保存,25,在mysql中使用脚本文件,一个包含SQL语句并将要被执行的输入文件叫做脚本文件或SQL批处理文件。处理脚本文件的方法之一是用SOURCE命令在mysql中执行它:mysql SOURCE input_file例如:mysql SOURCE C:/scripts/my_commands.sqlmysql SOURCE./scripts/my_commands.sql,26,客户端命令与SQL语句,当mysql在
11、运行中发布一条SQL语句时,程序将该语句发送到MySQL服务器来执行。SELECT、INSERT、UPDATE和DELETE都是这类输入的示例。mysql也会知道其中哪些是自己的命令而非SQL语句。例如:QUITSOURCESTATUSHELP,27,第三章 表数据查询,目 标,使用SELECT语法执行基本的、单个表的查询聚集查询结果使用UNION关键字连接多个SELECT语句的结果,29,SELECT语句,SELECT语句主要被用于查询数据库中的一个或多个表里的数据。SELECT语句表示数据库中一组特定的数据记录。SELECT语句的基本的语法模式如下:SELECT FROM 例如:mysql
12、 SELECT Name FROM Country;mysql SELECT 1+2;,30,基本的SELECT使用,许多子句及它们的结合都可以用于SELECT语句中:FROM:指定从哪些表中获取数据DISTINCT:消除重复的记录行WHERE:只返回满足特定条件(也叫过滤器)的记录行ORDER BY:按照表达式列表排序记录LIMIT:返回特定部分的数据,而不是所有的结果集示例:SELECT DISTINCT FROM WHERE ORDER BY LIMIT,31,使用FROM,FROM子句在SELECT语句中是可选项,它出现在语句的表达式之后,而表达式是在SELECT关键字后面出现。FRO
13、M子句指定语句要处理的表。非限定表名FROM 例如:FROM Country限定的表名FROM.例如:FROM world.Country表的别名在SQL语句里,在FROM子句里引用的表可以给定一个临时的名称,该名称叫做表的别名。,32,使用DISTINCT,如果查询的结果中包含重复的记录,该重复记录要被删除以生成每行都是唯一的结果集。为了达到这个目的,可在SELECT关键字后添加DISTINCT关键字。mysql SELECT Continent FROM Country;mysql SELECT DISTINCT Continent FROM Country;在指定的列里,DISTINCT
14、将所有的NULL值当作相同的值。mysql SELECT i,j FROM t;mysql SELECT DISTINCT i,j FROM t;,33,使用WHERE,WHERE子句将过滤满足特定条件的记录。例如:mysql SELECT ID,Name,District FROM city WHERE Name=New York;MySQL支持许多不同类型的运算符,这依赖于操作数的数据类型,或操作数与运算符处理的值的数据类型。运算比较 逻辑例如:mysql SELECT Name,Population-FROM Country-WHERE Population 50000000 AND-(
15、Continent=Europe OR Code=USA);mysql SELECT ID,Name,District-FROM city-WHERE Name IN(New York,Rochester,Syracuse);,34,关于NULL,如果有一个操作数的结果是NULL,则大多数运算符的求值结果也会是NULL。当NULL值表达式在函数中被用于操作数时,运算符将产生NULL。WHERE子句也有相同的情况,WHERE子句会丢弃那些条件不是TRUE的记录。,35,在SELECT语句里使用ORDER BY,如果有必要让输出记录按某一特定的顺序返回,可以使用ORDER BY子句以显示如何排序结
16、果集。mysql SELECT Name FROM Country ORDER BY Name;可以在ORDER BY表达式后使用ASC或DESC来明确指定记录按升序或降序排列。mysql SELECT Name-FROM Country-ORDER BY Name DESC;还可以用多个表达式同时排序,每个表达式有自己的排列顺序。mysql SELECT Name,Continent-FROM Country-ORDER BY Continent DESC,Name ASC;,36,在SELECT语句里使用LIMIT,当一个查询返回许多记录行时,有必要通过增加LIMIT子句来限定只显示部分记
17、录。LIMIT子句可以采用以下一个或两个参数:LIMIT row_countLIMIT skip_count,row_count例如:mysql SELECT Name FROM Country ORDER BY Name LIMIT 3;mysql SELECT Name FROM Country ORDER BY Name LIMIT 2,3;它常见的用处是获取包含某个特定列的最小或最大值的行,例如:mysql SELECT*FROM Country ORDER BY SurfaceArea LIMIT 1;mysql SELECT Name,Population-FROM Country
18、-ORDER BY Population DESC LIMIT 5;,37,聚集查询结果,有可能出现这种情况,结果集里的一行对应于底层基表里的一组记录行。这个过程叫聚合,并且这样一个结果集被称为聚集。计算一组值的摘要值的函数(例如AVG()被称为“聚集”函数。MIN()MAX()SUM()AVG()STD()COUNT()GROUP_CONCAT(),38,聚集查询结果示例,例如,使用COUNT(*)函数来统计world数据库中Country表中的行数。mysql SELECT COUNT(*)FROM Country;现在,指定统计Capital列而产生不同的结果,因为不是每个国家都有Cap
19、ital,NULL值将不会被统计:mysql SELECT COUNT(Capital)FROM Country;,39,用SELECT与GROUP BY分组,所有在GROUP BY子句中指定的表达式里,具有相同结合值的记录行将按一组处理,在结果集里以一行结束。聚集函数可以与GROUP BY一起使用将记录分组。当带有GROUP BY子句时,聚集函数将为每个组统计值。mysql SELECT Continent,AVG(Population)-FROM Country-GROUP BY Continent;,40,带GROUP_CONCAT()的分组,GROUP_CONCAT()函数将每组的结果
20、字符串连接起来。例如,将南美洲的国家按特定的政府形式创建国家的列表:mysql SELECT GovernmentForm,GROUP_CONCAT(Name)AS Countries-FROM Country-WHERE Continent=South America-GROUP BY GovernmentFormG,41,带WITH ROLLUP的分组,可在GROUP BY子句里使用WITH ROLLUP修饰符来产生多个级别的统计值。例如:mysql SELECT Continent,SUM(Population)as pop-FROM Country-GROUP BY Continent
21、-WITH ROLLUP;mysql SELECT Continent,AVG(Population)AS avg_pop-FROM Country-GROUP BY Continent WITH ROLLUP;,42,HAVING,HAVING子句被用于消除基于聚集值的记录行。例如:mysql SELECT Continent,SUM(Population)AS pop-FROM Country-GROUP BY Continent-HAVING SUM(Population)100000000;,43,使用UNION,UNION关键字能够将两个或多个SELECT语句的结果连接起来。其语句是
22、:SELECT UNIONSELECT 缺省地,UNION消除结果集中的重复记录。为了获得所有的记录行,可用UNION ALL取代每个UNION实例。UNION在下面情况下将很有用:多个表中有相似的信息,并且需要从这些表中立刻获取记录。需要从同一个表中获取几组记录,但是表现每组的条件并不容易写在一个单个的WHERE子句里。,44,使用UNION,例如:mysql CREATE TABLE list1(-subscriber CHAR(60),-email CHAR(60)-);mysql CREATE TABLE list2(-name CHAR(96),-address CHAR(128)-
23、);mysql CREATE TABLE list3(-email CHAR(50),-real_name CHAR(30)-);mysql SELECT subscriber,email FROM list1-UNION-SELECT name,address FROM list2-UNION-SELECT real_name,email FROM list3;,45,使用UNION,总体而言,ORDER BY与LIMIT可用于排序与限定一个UNION结果集。mysql(SELECT subscriber,email FROM list1)-UNION-(SELECT name,addres
24、s FROM list2)-UNION-(SELECT real_name,email FROM list3)-ORDER BY email LIMIT 10;在UNION中,可以将ORDER BY与LIMIT应用于单独的SELECT语句中。mysql(SELECT subscriber,email FROM list1 ORDER BY email LIMIT 5)-UNION-(SELECT name,address FROM list2 ORDER BY address LIMIT 5)-UNION-(SELECT real_name,email FROM list3 ORDER BY
25、email LIMIT 5);,46,第四章 数据类型,目 标,描述三个主要类别的数据类型理解字符集与校对规则分配合适的数据类型给表实体理解NULL与NOT NULL的含义与使用,48,数据类型概述,在MySQL中,可用的数据类型共分为四个主要类别:数值数字值(整数、浮点、定点数、位字段值)字符文本字符串二进制二进制数据字符串时间时间和日期ABC的数据类型A)Apt B)BriefC)Complete,49,使用数据类型创建表,创建表时,每个列的声明包括列名、识别该列保存信息的数据类型以及可能的其它属性(选项)以用来明确定义MySQL如何处理该列。例如:mysql CREATE TABLE p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教材 系列 数据库 设计 开发

链接地址:https://www.31ppt.com/p-6269879.html