MySQL学习第一天 第一次接触MySQL

 更新时间:2016年05月29日 14:22:37   作者:丿木呈广予口贝  
这篇文章是学习MySQL的第一篇文章,开启了探究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带来乐趣。

相关文章

  • 分析MySQL抛出异常的几种常见解决方式

    分析MySQL抛出异常的几种常见解决方式

    在本文中,总结了开发过程中最为常见的几种 MySQL 抛出的异常以及如何解决,包括高版本驱动的问题、时区配置问题、SSL 连接问题等。于我个人而言,这一篇足以解决目前项目中所有遇到的MySQL问题。同时,也希望本文能对 MySQL 数据库初学者有一定的引导入门作用。
    2021-05-05
  • Linux系统下mysqlcheck修复数据库命令(详解)

    Linux系统下mysqlcheck修复数据库命令(详解)

    下面小编就为大家带来一篇Linux系统下mysqlcheck修复数据库命令(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,祝大家游戏愉快哦
    2016-12-12
  • MySQL隐式类型的转换陷阱和规则

    MySQL隐式类型的转换陷阱和规则

    这篇文章先是通过一个实例给大家讲述在MySQL隐式类型的转换时遇到的陷阱,而后给大家介绍了MySQL隐式类型的规则,对大家操作mysql隐式类型的时候具有一定的参考借鉴价值,下面来一起看看吧。
    2016-09-09
  • Mysql经典高逼格/命令行操作(速成)(推荐)

    Mysql经典高逼格/命令行操作(速成)(推荐)

    这篇文章主要介绍了Mysql命令行操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 全面解析Windows下安装 mysql5.7的方法

    全面解析Windows下安装 mysql5.7的方法

    这篇文章主要介绍了全面解析Windows下安装 mysql5.7的方法的相关资料,需要的朋友可以参考下
    2016-07-07
  • MySQL高速缓存启动方法及参数详解(query_cache_size)

    MySQL高速缓存启动方法及参数详解(query_cache_size)

    这篇文章主要介绍了MySQL高速缓存启动方法及参数详解(query_cache_size),需要的朋友可以参考下
    2014-12-12
  • 干掉一堆mysql数据库,仅需这样一个shell脚本(推荐)

    干掉一堆mysql数据库,仅需这样一个shell脚本(推荐)

    这篇文章主要介绍了干掉一堆mysql数据库,仅需这样一个shell脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • java连不上mysql8.0问题的解决方法

    java连不上mysql8.0问题的解决方法

    这篇文章主要为大家详细介绍了java连不上MySQL8.0问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • MySQL 角色(role)功能介绍

    MySQL 角色(role)功能介绍

    这篇文章主要介绍了MySQL 角色(role)功能的相关资料,帮助大家更好的理解和学习使用MySQL数据库,感兴趣的朋友可以了解下
    2021-04-04
  • 关于避免MySQL替换逻辑SQL的坑爹操作详解

    关于避免MySQL替换逻辑SQL的坑爹操作详解

    这篇文章主要给大家介绍了关于避免MySQL替换逻辑SQL的坑爹操作的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用mysql具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-03-03

最新评论