MySql基础知识、存储引擎与常用数据类型_MySQL
本文将主要讲解了数据库的一些基础知识,介绍了MySql的存储引擎,最后讲了MySql常用的数据类型1、基础知识1.1、数据库概述 简单地说:数据库(Database或DB)是存储、管理数据的容器; 严格地说:数据库是“按照某种数据结构对数据进行组织、存储和管理的容器”。 总结:数据永远是数据库的核心。1.2、关系数据库管理系统通过“数据库管理系统”,数据库用户可以轻松地实现数据库容器中各种数据库对象的访问(增、删、改、查等操作),并可以轻松地完成数据库的维护工作(备份、恢复、修复等操作) 数据库用户无法直接通过操作系统获取数据库文件中的具体内容; 数据库管理系统通过调用操作系统的进程管理、内存管理、设备管理以及文件管理等服务,为数据库用户提供管理、控制数据库容器中各种数据库对象、数据库文件的接口。 1.3、关系数据库 关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据,同时也是一个被组织成一组拥有正式描述性的表格,该形式的表格作用的实质是装载着数据项的特殊收集体,这些表格中的数据能以许多不同的方式被存取或重新召集而不需要重新组织数据库表格。关系数据库的定义造成元数据的一张表格或造成表格、列、范围和约束的正式描述。每个表格(有时被称为一个关系)包含用列表示的一个或更多的数据种类。 每行包含一个唯一的数据实体,这些数据是被列定义的种类。 基本特征 关系数据库在一个给定的应用领域中,所有实体及实体之间联系的集合构成一个关系数据库。 关系数据库的型与值关系数据库的型称为关系数据库模式,是对关系数据库的描述,若干域的定义,在这些域上定义的若干关系模式。 1.4、结构化查询语言SQL 结构化查询语言SQL(Structured Query Language)是一种介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制四个方面,是一个通用的功能极强的关系数据库标准语言。目前,SQL语言已被确定为关系数据库系统的国际标准,被绝大多数商品化关系数据库系统采用。在SQL语言中,指定要做什么而不是怎么做,不需要告诉SQL如何访问数据库,只要告诉SQL需要数据库做什么。可以在设计或运行时对数据控件使用SQL语句。 1.5、SQL数据库的体系结构 SQL术语与传统的关系模型术语不同。在SQL中,外模式对应于视图,模式对应于基本表,元组称为行,属性称为列。内模式对应于存储文件。SQL数据库的体系结构具有如下特征: SQL模式(Schema)是表和约束的集合。表(Table)是行(Row)的集合,每行是列(Column)的序列,每列对应一个数据项。 表可以是一个基本表,也可以是一个视图。基本表是实际存储在数据库中的表。视图是从基本表或其他视图中导出的表,它本身不独立存储在数据库中,也就是说数据库中只存放视图的定义而不存放视图的数据,这些数据仍存放在导出视图的基本表中,因此视图是一个虚表。 一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表,一个表可以带若干索引,索引也存放在存储文件中。每个存储文件与外部存储器上一个物理文件对应,存储文件的逻辑结构组成了关系数据库的内模式。用户可以用SQL语句对视图和基本表进行查询等操作。在用户看来,视图和基本表是一样的,都是关系(即表格)。 SQL用户可以是应用程序,也可以是终端用户。SQL语句可嵌入在宿主语言的程序中使用,宿主语言有Fortran、Cobol、Pascal、PL/I、C和Ada等语言;SQL语言也能作为独立的用户接口,供交互环境下的终端用户使用。1.6、SQL的组成 数据定义 这一部分也称为“SQL DDL”,用于定义SQL模式、基本表、视图和索引。 数据操纵 这一部分也称为“SQL DML”。数据操纵分成数据查询和数据更新两类。其中数据更新又分成插入、删除和修改三种操作。 数据控制 这一部分也称为“SQL DCL”。数据控制包括对基本表和视图的授权,完整性规则的描述,事务控制语句等。嵌入式SQL使用 这一部分内容涉及到SQL语句嵌入在宿主语言程序中的使用规则。
2、存储引擎
可以看到MySQL有多种存储引擎: 平时用得最多的是MyISAM和InnoDB,下面主要来介绍这两种。 2.1、MyISAM MyISAM表是独立于操作系统的,这说明可以轻松地将其从Windows服务器移植到Linux服务器;每当我们建立一个MyISAM引擎的表时,就会在本地磁盘上建立三个文件,文件名就是表明。例如,我建立了一个MyISAM引擎的tb_Demo表,那么就会生成以下三个文件: 2.tb_demo.MYD,存储数据; 3.tb_demo.MYI,存储索引。 2.插入密集型的表。MyISAM的并发插入特性允许同时选择和插入数据。例如:MyISAM存储引擎很适合管理邮件或Web服务器日志数据。 2.事务。InnoDB存储引擎是支持事务的标准MySQL存储引擎。 3.自动灾难恢复。与其它存储引擎不同,InnoDB表能够自动从灾难中恢复。 4.外键约束。MySQL支持外键的存储引擎只有InnoDB。 5.支持自动增加列AUTO_INCREMENT属性。 id smallint unsigned not null auto_increment, username varchar(15) not null, pwd varchar(15) not null, index using hash (username), primary key (id))engine=memory; id smallint unsigned not null auto_increment, username varchar(15) not null, pwd varchar(15) not null, index using btree (username), primary key (id))engine=memory; 2.5、小结 InnoDB存储引擎:用于事务处理应用程序,具有众多特性 MyISAM存储引擎:主要用于管理费事务表,它提供高速存储和检索,以及全文搜索能力 MEMORY存储引擎:提供“内存中”表,MEMORY存储引擎的所有数据都在内存中,数据的处理速度快,但安全性不高
3、名词解释字段和数据类型 虽然所有这些引擎都支持通用的数据类型,例如整型、实型和字符型等,但是,并不是所有的引擎都支持其它的字段类型,特别是BLOG(二进制大对象)或者TEXT文本类型。其它引擎也许仅支持有限的字符宽度和数据大小。 数据库引擎中的锁定功能决定了如何管理信息的访问和更新。当数据库中的一个对象为信息更新锁定了,在更新完成之前,其它处理不能修改这个数据(在某些情况下还不允许读这种数据)。 建立索引在搜索和恢复数据库中的数据的时候能够显著提高性能。不同的存储引擎提供不同的制作索引的技术。有些技术也许会更适合你存储的数据类型。 事务处理功能通过提供在向表中更新和插入信息期间的可靠性。这种可靠性是通过如下方法实现的,它允许你更新表中的数据,但仅当应用的应用程序的所有相关操作完全完成后才接受你对表的更改。例如,在会计处理中每一笔会计分录处理将包括对借方科目和贷方科目数据的更改,你需要要使用事务处理功能保证对借方科目和贷方科目的数据更改都顺利完成,才接受所做的修改。如果任一项操作失败了,你都可以取消这个事务处理,这些修改就不存在了。如果这个事务处理过程完成了,我们可以通过允许这个修改来确认这个操作。 4、数据类型字符串数据类型1.char(n)和varchar(n)中括号中n代表字符的个数,并不代表字节个数,所以当使用了中文的时候(UTF8)意味着可以插入m个中文,但是实际会占用m*3个字节。 数值数据类型 整型 ![]() 上面定义的都是有符号的,当然了,也可以加上unsigned关键字,定义成无符号的类型,那么对应的取值范围就要翻翻了,比如: tinyint unsigned的取值范围为0~255。 浮点型 ![]() 二进制数据类型 二进制类型可存储任何数据,如文字、图像、多媒体等。具体类型描述如下: ![]() 数据类型的属性
|