MySQL学习第一天 第一次接触MySQL
一、什么是数据库?
数据库(database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的api用于创建,访问,管理,搜索和复制所保存的数据。
我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。所以,现在我们使用关系型数据库管理系统(rdbms)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
rdbms即关系数据库管理系统(relational database management system)的特点:
1)数据以表格的形式出现
2)每行为各种记录名称
3)每列为记录名称所对应的数据域
4)许多的行和列组成一张表单
5)若干的表单组成database
二、关系型数据库(rdbms)术语
针对关系型数据库作如下解释:
1)关系型数据库可以简单的理解为二维数据库,表格式类似于excel表格,我们平时我接触的数据据,一般都是关系型数据库。
2)关系型数据库不是唯一的高级数据库模型,也不是最优的一种,但是,关系型数据库是现今使用最广泛、最易于理解和使用的数据库模型。
3)在我们开始学习mysql数据库前,让我们先了解下rdbms的一些术语:
1数据库: 数据库是一些关联表的集合。
2数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
3关系:可以理解成一张二维表,每个关系都有一个关系名,即表名。
4关系模式:对关系的描述,在数据库中通常称之为表结构。
5元组:可以理解成二维表中的一行,在数据库中常被称作记录。一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
6属性:可以理解成二维表中的一列,在数据库中常被成为字段。一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。
7域:属性的取值范围,也是数据库中某一列的取值限制。
8关键字:一组可以唯一标识元组的属性。数据库中常称为主键有一个或多个列组成。
9冗余:存储两倍数据,冗余可以使系统速度更快。
10主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
11外键:外键用于关联两个表。
12复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
13索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
14参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。
4)关系型数据库特点:
1容易理解:二维表结构是非常贴近逻辑世界的一个概念,相对与网状、层次以及其它模型更容易理解。
2使用方便:通过sql语言程序员和数据管理员可以很方便的在逻辑层面操作数据库而不必理解其底层实现。
3易于维护:丰富的完整性(实体完整性、参照完整性、用户自定义完整性)降低数据冗余和数据不一致的概率。
5)关系操作:
1数据查询:选择、投影、连接、并、交、差、除
2数据操作:增加、删除、修改、查询
6)sql(structured query language):结构化查询语言,一种特殊目的的编程语言,数据库查询和程序设计语言,用于存储数据以及查询、更新和管理关系型数据库。
sql查询语言组成部分:
1ddl(data definition languages)语句:数据定义语句,用于定义不同的数据段、数据库、表、列、索引等数据库的对象定义。常用关键字主要包括create、drop、alter等。
2dml(data manipulation language)语句:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数
据完整性。常用关键字包括insert、delete、update和select等。
3dcl(data control language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句,用于
定义数据库、表、字段、用户的访问权限和安全级别。常用关键字有grant、revoke等。
三、mysql数据库
mysql是一个关系型数据库管理系统,由瑞典mysql ab公司开发,目前属于oracle公司。mysql最流行的关系型数据库管理系统,在web应用方面mysql是最好的rdbms(relational database management system,关系数据库管理系统)应用软件之一。
mysql是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
mysql所使用的sql语言是用于访问数据库的最常用标准化语言。mysql软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择mysql作为网站数据库。由于其社区版的性能卓越,搭配php和apache可组成良好的开发环境。
四、mysql的特点
1)mysql是开源的,所以你不需要支付额外的费用。
2)mysql支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
3)mysql使用标准的sql数据语言形式。
4)mysql可以允许于多个系统上,并且支持多种语言。这些编程语言包括c、c++、python、java、perl、php、eiffel、ruby和tcl等。
5)mysql对php有很好的支持,php是目前最流行的web开发语言。
6)mysql支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4gb,64位系统支持最大的表文件为8tb。
7)mysql是可以定制的,采用了gpl协议,你可以修改源码来开发自己的mysql系统。
五、mysql系统特性
1)使用c和c++编写,并使用了多种编译器进行测试,保证了源代码的可移植性。
2)支持 aix、freebsd、hp-ux、linux、mac os、novellnetware、openbsd、os/2 wrap、solaris、windows等多种操作系统。
3)为多种编程语言提供了api。这些编程语言包括c、c++、python、java、perl、php、eiffel、ruby、.net和tcl 等。
4)支持多线程,充分利用 cpu 资源。
5)优化的 sql查询算法,有效地提高查询速度。
6)既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。
7)提供多语言支持,常见的编码如中文的gb 2312、big5,日文的shift_jis等都可以用作数据表名和数据列名。
8)提供 tcp/ip、odbc 和 jdbc等多种数据库连接途径。
9)提供用于管理、检查、优化数据库操作的管理工具。
10)支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
11)支持多种存储引擎。
12)在线 ddl/更改功能,数据架构支持动态应用程序和开发人员灵活性(5.6新增)。
13)复制全局事务标识,可支持自我修复式集群(5.6新增)。
14)复制无崩溃从机,可提高可用性(5.6新增)。
15)复制多线程从机,可提高性能(5.6新增)。
六、mysql数据库实现模型
mysql的核心组件(参照上图)
1)连接池:用于完成用户认证、线程重用、并发连接数限制、内存检测以及连接缓存。
2)sql接口:使用sql结构查询语言对数据库就行操作的接口(ddl dml等)
3)parser:分析器,用来进行查询转换、权限分析获取的操作。
4)optimizer:优化器,生成并选择最佳的访问路径。
5)cache & buffers:与存储引擎相关的i/o性能提升工具。
6)存储引擎(真正执行数据查询操作的工具myisam、innodb、ndb、archive、federated、memory、merge、partner、community、custom等等)。
有了这篇文章做基础,相信大家对mysql已经不再陌生了吧,接下来小编就和大家深入的学习mysql,享受mysql带来乐趣。