MySQL经典之讲.ppt
《MySQL经典之讲.ppt》由会员分享,可在线阅读,更多相关《MySQL经典之讲.ppt(183页珍藏版)》请在三一办公上搜索。
1、1,MySQL数据库,2,MySQL数据库,数据库导论MySQL数据类型MySQL运算符SQL语句MySQL数据库管理,3,数据库导论,基本概念MySQL数据库建立与终止数据库的连接,4,基本概念,数据(Data)数据库(Database)数据库管理系统(DBMS)数据库系统(DBS),5,数据(data),数据的定义:描述事物的符号记录。在日常生活中,人们直接用语言来描述事物;在计算机中,为了存储和处理这些事物,就要将事物的特征抽象出来组成一个记录来描述。数据是数据库中存储的基本对象。数据的种类文字、图形、图象、声音数据的特点数据与其语义是不可分的,6,数据举例,学生档案中的学生记录(李明,
2、男,1972,江苏,计算机系,1990)数据的形式不能完全表达其内容数据的解释语义:学生姓名、性别、出生年月、籍贯、所在系别、入学时间解释:李明是个大学生,1972年出生,江苏人,1990年考入计算机系请给出另一个解释和语义,7,数据库,人们收集并抽取出一个应用所需要的大量数据之后,并将其保存起来以供进一步加工处理,进一步抽取有用信息数据库的定义:数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据集合,8,什么是数据库?,档案柜=数据库抽屉=表文件=记录在数据库中,称装有文件的抽屉为表,文件本身为记录,取出信息的行为称为查询,结果数据称为结果集合。,9,数据库
3、的类型,纯文本数据库:纯文本数据库是只用空格符、制表符和换行符来分割信息的文本文件。适用于小型应用,对于大中型应用来说它存在诸多限制:只能顺序访问,不能进行随机访问。查找数据和数据关系或多用户同时访问进行写操作时非常困难。关系数据库:由于纯文本数据库存在诸多局限,所以人们开始研究数据模型,设计各种类型的使用方便的数据库。在数据库的发展史上,最具影响的数据库模型有:层次模型、网状模型和关系模型。其中,关系模型是目前应用最广泛和最有发展前途的一种数据模型,其数据结构简单,当前主流的数据库系统几乎都采用关系模型。,10,数据库(举例),11,数据库(续),数据库的特征数据按一定的数据模型组织、描述和
4、储存可为各种用户共享冗余度较小数据独立性较高易扩展,12,数据库管理系统,什么是DBMS:数据库管理系统(Database Management System,简称DBMS)是位于用户与操作系统之间的一层数据管理软件。DBMS的用途:科学地组织和存储数据、高效地获取和维护数据。,13,DBMS的主要功能,数据定义功能:提供数据定义语言(DDL)定义数据库中的数据对象数据操纵功能:提供数据操纵语言(DML)操纵数据实现对数据库的基本操作(查询、插入、删除和修改),14,DBMS的主要功能,数据库的运行管理 保证数据的安全性、完整性、多用户对数据的并发使用 发生故障后的系统恢复数据库的建立和维护功
5、能(实用程序)数据库数据批量装载 数据库转储 介质故障恢复 数据库的重组织 性能监视等,15,数据库系统,什么是数据库系统:数据库系统(Database System,简称DBS)是指在计算机系统中引入数据库后的系统构成。在不引起混淆的情况下常常把数据库系统简称为数据库。数据库系统的构成:由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员(和用户)构成。,16,MySQL数据库,一、什么是MySQL?MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程
6、序mysqld和很多不同的客户程序和库组成。,17,SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你能用SQL语言为一个网站检索产品信息及存储顾客信息,同时MySQL也足够快和灵活以允许你存储记录文件和图像。MySQL主要目标是快速、健壮和易用。最初是因为我们需要这样一个SQL服务器,它能处理与任何在不昂贵硬件平台上提供数据库的厂家在一个数量级上的大型数据库,但速度更快,MySQL就开发出来。自1996年以来,我们一直都在使用MySQL,其环境有超过40个数据库,包含10,000个表,其中500多个表超过7百万行,这大约有100个吉字节(GB)的关键应用数据。,18,MyS
7、QL建立的基础是业已用在高要求的生产环境多年的一套实用例程。尽管MySQL仍在开发中,但它已经提供一个丰富和极其有用的功能集。MySQL的官方发音是“My Ess Que Ell”(不是MY-SEQUEL)。,19,MySQl特征,性能:在RDBMS中,速度就是一切。甚至MySQL的最激烈的批评家都会承认MySQL非常迅速,有时主要指令的执行比他的竞争者都要快。容易使用:MySQL易于使用,初学者在几个小时就可以领会它的基本知识,并且能得到很好的支持;,20,可靠性:大多数情况下,高级数据库的性能是以降低可靠性为代价的。然而MySQL不是这样,它提供了最大可靠性和正常运行时间,并且在大量要求严
8、格的应用系统中已得到测试和认证。,21,多用户支持:MySQL是一个完全多用户系统,这意味着多个用户可以同时访问和使用一个(或更多个)MySQL数据库。MySQL也包括一个强有力的、灵活的权限系统,它允许管理者使用基于用户和基于主机的认证方案的组合来限制对敏感数据的访问。可移植性:MySQL对UNIX和非UNIX操作系统都适用。,22,遵循现有标准:MySQL的发展工作组试图使MySQL尽量适应标准。MySQL4.0支持ANSI SQL-99标准的大部分重要特性,而且支持在未来版本中希望增加的标准。国际化MySQL特征:MySQL是一个被全球很多国家数百万人使用的系统。,23,开放源代码:My
9、SQL开发者MySQL AB是开放源代码运动的坚定支持者,并且MySQL软件可在GPL下畅通使用。用户可以免费下载和修改符合他们需要的应用程序的源代码,并且可以免费使用它来增强自己的应用程序。,24,三、MySQL应用,MySQL的官方网站引述MySQL是“世界上最受欢迎的开放源代码数据库”。这不是狂妄之语,数字可以证明它:根据MySQL网站上最近公布的统计,全世界有超过400万的系统使用MySQL。在下述网页你能查看到MySQL和它竞争对手进行了短兵相接的比较。http:/,25,随着网站以及基于WEB分布式应用程序变得越来越复杂,有效管理数据来改善处理效率、降低响应时间和提高用户的全面技能
10、变得越来越重要。很多原因让MySQL正合需要。经过证实的记录让它的可靠性和寿命得到保证,开放源代码的根本能够确保迅速调整缺陷和性能持续增强的周期(成本低)对不同编程语言和技术的可移植性和支持,使它适应多种应用程序。,26,MySQL新支持的特性,储存过程 预先定义的SQL语句序列,他们被编译和存储在数据库内以求更有效地执行触发器 当一个特定事件发生变化时自动执行的数据库操作。视图 源于现在表内容的虚表,它能够与标准表完全相同的方式执行操作。,27,四、MySQL体系结构,主子系统:MySQL体系结构由5个主子系统组成,他们协同工作,响应MySQL数据库服务器发出的请求。5个主子系统如下:查询引
11、擎存储管理器缓冲管理器事务管理器恢复管理器,28,查询引擎:包括3个相互关联的部件语法分析器查询优化器执行部件存储管理器:存储管理器与操作系统(OS)相互配合,有效地向磁盘存入数据。MySQL能够在内存中存储结果集合本身,因而完全回避了搜索数据库的需要。查询高速缓冲存储器。,29,缓冲管理器:这个子系统负责处理所有在查询引擎和存储管理器数据请求中引起的内存管理问题。当新的记录在等待目标表和索引使用时,也可以存储在缓冲管理器中。如果需要新的数据,要先从存储管理器中取出数据,放置在缓冲管理器中,然后发送到查询引擎。,30,事务管理器:事务管理器的功能是促进数据访问的并发性。这个子系统提供一个加锁工
12、具,保证同时访问的多个用户协调地访问数据,不会以任何方式破坏或者损坏数据。恢复管理器:恢复管理器的工作是防止数据丢失,保存数据副本以备后来提取。它还负责把数据库中修改数据和其他重要事件的指令记入日志文件。到目前为止只有InnoDB和BDB表处理程序系统有恢复管理功能。,31,MySQL体系结构,子系统/部件相互作用和控制流查询引擎要求从缓冲管理器读取数据或者把数据写入缓冲管理器以满足用户的查询。它依赖事务管理器请求锁定数据才能保证并发性。要生成和删除表,查询引擎要直接访问存储管理器以生成或者删除文件系统中的文件,而不用访问缓冲管理器。缓冲管理器高速缓存来自存储管理器中的数据,查询引擎就可以有效
13、地取回数据。在执行任何修改操作之前,检查数据的锁定状态依赖于事务管理器。,32,五、MySQL引擎,连通性:MySQL是在假定它的大部分应用程序都在运行TCP/IP协议的基础上而设计的。SQL:结构化查询语言(SQL)是一个开放标准,自1986年以来,它一直由美国国家标准协会(ANSI)进行维护。虽然这个标准在不同厂商的支持程度不同,但是可以很公正地说,SQL是当今使用最广泛的语言之一。与其他系统的SQL实现一样,比如Oracle的SQL,MySQl也具有自己的SQL标准变体,它添加了强大的性能,超过了在这个标准之内可用的性能。,33,事务:直到最近,MySQL 才以处理事务的能力而出名。事务
14、数据库必须支持以下特性:原子性一致性分离性持久性,34,事务被定义为一个或者一系列可以访问或改变数据库内容的动作。在SQL术语中,当一个或者更多的SQL语句作为一个单元运行时,一个事务就发生了。在这样一个单元中,每一个SQL语句都与其他的SQL语句相互依赖。银行举例,35,一致性:当每一个事务使得系统处于一致状态时,不管事务是成功还是失败,一致性都会存在。在MySQL中,一致性主要由MySQL日志机制来处理,它记录了对数据库所做的所有改变,并且为事务恢复提供检查跟踪依据。如果系统在事务执行中途关机,MySQl恢复程序将使用这些日志来检查事务是否顺利完成,必要时回滚。分离性:分离性意味着每个事务
15、在各自的空间内发生,与系统内可能发生的其他事务相互独立,而且还意味着组成事务的全部事件序列完全被执行后,事务的结果才可见。,36,持久性:持久性意味着即使在系统崩溃时,也要保存已提交的事务所做的改变。默认情况下,InnoDB表对崩溃前最后1秒的数据变化情况有100%的持久性。,37,安全性,访问一个MySQL数据库的过程可以分解成2个任务:连接MySQL服务器和访问个别对象,比如表和列。MySQL有一个内建的安全性来检查两个阶段上用户的可信度。可以用ssh来实现数据传输的安全性。,38,MySQL通过用户表管理用户认证,用户表不仅核查用户是否使用适当的用户名和密码,而且还核查连接是否来自一个授
16、权的TCP/IP地址。一旦用户被连接,系统管理员就会给予用户在对象和MySQL中实施的行为上的用户专有权利。例如:A表只有甲用户能查询,乙用户能来修改。,39,复制,复制是一种数据发布机制,它允许在远距离的地方放置表和数据库的副本,以便用户可以更加方便地访问它们。,40,应用程序的接口,对应用程序开发者来说,MySQL提供了一个用C语言编写的客户端库和一组API(应用程序接口)。当前,MySQL API 对Perl,PHP,C/C+,Java,Visual Basic,Python,Ruby和.NET 都可用。,41,附加工具,MySQL CC 对于MySQL,它是一个极好的前端查询和数据库管
17、理工具。现有Windows,UNIX和Linux版本可用,并且Mac OS X 的版本现在也有DBTOOL专业管理器,来自,是一个用于管理MySQL数据库、表和索引的图形客户,其输入来自其他RDBMS的数据,该管理器提供一个用于查询和报告设计的接口。,42,建立与终止数据库的连接,运行mysql程序mysql-h host_name-u user_name p password 其中:-h:后加主机名-u:后加用户名注意:如果使用的系统为linux并且登陆用户名字与MySQL的用户名相同即可不用加,默认以登陆名登陆但是两个用户名不同.默认是以root登陆,windows默认用户是ODBC.-p
18、:加用户的密码 注意:密码如果写在命令行中时候一定不能有空格 备注:可以将启动命令设成别名,并放在.bash_profile文件中,43,:退出mysql的方法 exit,quit,ctrl+D:在linux中使mysqld自动运行的方法 1):setup 2):chkconfig 3):将K改成S(在几个文件内)4):ntsysv中进行设置,44,MySQL数据类型,数据类型种类数值列类型字符串列类型日期和时间列类型,45,数据类型种类,数值型分为整型和浮点型整型:可以由十进制和十六进制表示整数由数字序列组成,如:1,100。由十六进制表示方法:0 x且后面加19和AF 的任意数字或字母,并
19、且0 x中的X不能大写。浮点型:浮点数由一个数字加一个小数点再加上一个数字组成。两个数字序列不能同时为空。,46,字符串:由单引号或者双引号括起来的字符或者数字。如:”abc”,abc10字符串中要用转义字符才能表示的特殊符号,47,日期和时间值是存储如”2005-1-1”或者”12:00:00”这样的数值的值。在MySQL中日期是按”年-月-日”的顺序。NULL值是一种无类型的值,表示”空,什么也没有”。,48,数值列类型,MySQL为除了NULL值外的所有通用数据类型提供了列类型。列类型是一种手段,通过这种手段可以描述表的列可以包含什么样类型的值。数值列类型 所有数值列类型的类型名及其说明
20、和所占的字节数见下表:,49,50,数值列类型包括整型和浮点型 说明:TINYINT,SAMLLINT,MEDIUMINT,INT,BIGINT每个数据类型的取值范围不同,故分别可以表示不同的数值范围。在定义整型列时,可以指定可选的显示尺寸M(见上表),M是从1到255的值,它表示显示列中值的字符数。,51,例如:MEDIUMINT(4)意思是指定了一个具有4个字符显示宽度的MEDIUMINT列。如果定义了一个没有明确宽度的整数列,则会分配缺省的宽度,缺省值为每种类型的最长值的长度。对于每种浮点型,可指定一个最大的显示尺寸和小数位数D,M的取值应该是0-30,但不应该大于M-2。即M是精度,D
21、是小数点位数,M和D对于DECIMAL是必须的。,52,数值列的列属性AUTO_INCREMENT 在需要产生唯一标志符号或者顺序值时候,可用此属性。值一般从1始,每行增加1,在插入NULL到一个AUTO_INCREMENT列时,MySQL会插入一个比该列中当前最大值大1 的值,一个表中最多能有一个有此属性的列。对于想使用此属性的列应该定义为NOT NULL,并定义为PRIMARY KEY 或者定义为UNIQUE键。举例:create table a(I int auto_increment not null primary key);UNSIGNED 此属性禁用负值,是将数值的取值范围从零开
22、始,即前移了取值范围而已.举例:Create table test(num tinyint,num2 tinyint unsigned);,53,NULL和NOT NULL 缺省为NULL,即插入值时没有在此字段插入值,默认为NULL值,如果指定了NOT NULL,则必须在插入值时在此字段添入值。DEFAULT 可以通过此属性来指定一个缺省值,即如果没有在此列添加值,那么默认添加此值。如果指定了ZEROFILL 属性,则用前导零填充数值类型值以达到列的显示宽度。举例:Create table test2(num int,num2 int default 1,num3 int default n
23、ull);,54,55,字符串列类型所有字符串列类型的类型名及其说明和所占的字节数见下表:,56,说明:对于可变长的字符串类型,其长度取决于实际存放在列中的值的长度。此长度在上表中用来表示。以外所需要的额外字节为存放该值的长度所需要的字节数。,57,CHAR和VARCHAR类型CHAR类型和VARCHAR类型长度范围都是0255之间的大小。他们之间的差别在于MySQL处理这个指示器的方式:CHAR把这个大小视为值的准确大小(用空格填补比较短的值,所以达到了这个大小),而VARCHAR类型把它视为最大值并且只使用了存储字符串实际上需要的字节数(增加了一个额外的字节记录长度)。因而,较短的值当被插
24、入一个语句为VARCHAR类型的字段时,将不会用空格填补(然而,较长的值仍然被截短)。,58,59,BLOB和TEXT类型BLOB是可以存放任意大数据的数据类型,而TEXT与之相同,只是前者区分大小写,后者不区分大小写。ENUM 和SET类型是特殊的串类型,其列值必须从固定的串集中选择,二者差别为前者必须是只能选择其中的一个值,而后者可以多选。,60,字符串列类型的属性BINARY使用此属性可以使列值作为二进制串处理,即比较和排序时区分大小写。NOT 和NOT NULL同数值型功能相同DEFAULT同数值型功能相同,61,日期和时间列类型所有时间和日期列类型的类型名及其说明和所占的字节数见下表
25、:,62,63,说明:每个时间和日期列类型都有一个零值,当插入非法数值时就用零值来添加表示日期时必须先按:年,月,日的顺序给出DATE,TIME,DATETIME分别是存储日期,时间与日期和时间的组合,其格式为”YYYY-MM-DD”,”hh:mm:ss”和”YYYY-MM-DD hh:mm:ss”,对于DATETIME类型,日期和时间部分都需要TIMESTAMP时间戳列类型以YYYYMMDDhhmmss的格式来表示值,其取值范围是到2037年的某个时间,主要用于记录更改或创建某个记录,64,65,66,67,MySQL运算符,算数运算符 比较运算符 逻辑运算符 位运算符,68,算数运算符,6
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MySQL 经典
链接地址:https://www.31ppt.com/p-5441084.html