热门搜索 :
考研考公
您的当前位置:首页正文

MySql基础知识、存储引擎与常用数据类型

2023-11-09 来源:东饰资讯网

        本文将主要讲解了数据库的一些基础知识,介绍了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数据库的体系结构具有如下特征:

  • 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、存储引擎

            关系数据库表是用于存储和组织信息的数据结构,可以将表理解为由行和列组成的表格,类似于Excel的电子表格的形式。有的表简单,有的表复杂,有的表根本不用来存储任何长期的数据,有的表读取时非常快,但是插入数据时去很差;而我们在实际开发过程中,就可能需要各种各样的表,不同的表,就意味着存储不同类型的数据,数据的处理上也会存在着差异,那么。对于MySQL来说,它提供了很多种类型的存储引擎,我们可以根据对数据处理的需求,选择不同的存储引擎,从而最大限度的利用MySQL强大的功能。在mysql客户端中,使用以下命令可以查看MySQL支持的引擎。show engines;

    技术分享

    可以看到MySQL有多种存储引擎:MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。

    平时用得最多的是MyISAM和InnoDB,下面主要来介绍这两种。

    2.1、MyISAM

    MyISAM表是独立于操作系统的,这说明可以轻松地将其从Windows服务器移植到Linux服务器;每当我们建立一个MyISAM引擎的表时,就会在本地磁盘上建立三个文件,文件名就是表明。例如,我建立了一个MyISAM引擎的tb_Demo表,那么就会生成以下三个文件:1.tb_demo.frm,存储表定义;

    2.tb_demo.MYD,存储数据;

    3.tb_demo.MYI,存储索引。MyISAM表无法处理事务,这就意味着有事务处理需求的表,不能使用MyISAM存储引擎。MyISAM存储引擎特别适合在以下几种情况下使用:1.选择密集型的表。MyISAM存储引擎在筛选大量数据时非常迅速,这是它最突出的优点。

    2.插入密集型的表。MyISAM的并发插入特性允许同时选择和插入数据。例如:MyISAM存储引擎很适合管理邮件或Web服务器日志数据。2.2、InnoDBInnoDB是一个健壮的事务型存储引擎,这种存储引擎已经被很多互联网公司使用,为用户操作非常大的数据存储提供了一个强大的解决方案。InnoDB是作为默认的存储引擎。InnoDB还引入了行级锁定和外键约束,在以下场合下,使用InnoDB是最理想的选择:1.更新密集的表。InnoDB存储引擎特别适合处理多重并发的更新请求。

    2.事务。InnoDB存储引擎是支持事务的标准MySQL存储引擎。

    3.自动灾难恢复。与其它存储引擎不同,InnoDB表能够自动从灾难中恢复。

    4.外键约束。MySQL支持外键的存储引擎只有InnoDB。

    5.支持自动增加列AUTO_INCREMENT属性。一般来说,如果需要事务支持,并且有较高的并发读取频率,InnoDB是不错的选择。2.3、MEMORY使用MySQL Memory存储引擎的出发点是速度。为得到最快的响应时间,采用的逻辑存储介质是系统内存。虽然在内存中存储表数据确实会提供很高的性能,但当mysqld守护进程崩溃时,所有的Memory数据都会丢失。获得速度的同时也带来了一些缺陷。它要求存储在Memory数据表里的数据使用的是长度不变的格式,这意味着不能使用BLOB和TEXT这样的长度可变的数据类型,VARCHAR是一种长度可变的类型,但因为它在MySQL内部当做长度固定不变的CHAR类型,所以可以使用。一般在以下几种情况下使用Memory存储引擎:1.目标数据较小,而且被非常频繁地访问。在内存中存放数据,所以会造成内存的使用,可以通过参数max_heap_table_size控制Memory表的大小,设置此参数,就可以限制Memory表的最大大小。2.如果数据是临时的,而且要求必须立即可用,那么就可以存放在内存表中。3.存储在Memory表中的数据如果突然丢失,不会对应用服务产生实质的负面影响。Memory同时支持散列索引和B树索引。B树索引的优于散列索引的是,可以使用部分查询和通配查询,也可以使用<、>和>=等操作符方便数据挖掘。散列索引进行“相等比较”非常快,但是对“范围比较”的速度就慢多了,因此散列索引值适合使用在=和<>的操作符中,不适合在<或>操作符中,也同样不适合用在order by子句中。可以在表创建时利用USING子句指定要使用的版本。例如:复制代码 代码如下:create table users(

    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;上述代码创建了一个表,在username字段上使用了HASH散列索引。下面的代码就创建一个表,使用BTREE索引。复制代码 代码如下:create table users(

    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.4、MERGEMERGE存储引擎是一组MyISAM表的组合,这些MyISAM表结构必须完全相同,尽管其使用不如其它引擎突出,但是在某些情况下非常有用。说白了,Merge表就是几个相同MyISAM表的聚合器;Merge表中并没有数据,对Merge类型的表可以进行查询、更新、删除操作,这些操作实际上是对内部的MyISAM表进行操作。Merge存储引擎的使用场景。对于服务器日志这种信息,一般常用的存储策略是将数据分成很多表,每个名称与特定的时间端相关。例如:可以用12个相同的表来存储服务器日志数据,每个表用对应各个月份的名字来命名。当有必要基于所有12个日志表的数据来生成报表,这意味着需要编写并更新多表查询,以反映这些表中的信息。与其编写这些可能出现错误的查询,不如将这些表合并起来使用一条查询,之后再删除Merge表,而不影响原来的数据,删除Merge表只是删除Merge表的定义,对内部的表没有任何影响。

    2.5、小结

    InnoDB存储引擎:用于事务处理应用程序,具有众多特性

    MyISAM存储引擎:主要用于管理费事务表,它提供高速存储和检索,以及全文搜索能力

    MEMORY存储引擎:提供“内存中”表,MEMORY存储引擎的所有数据都在内存中,数据的处理速度快,但安全性不高

    3、名词解释
  • 字段和数据类型
  •         虽然所有这些引擎都支持通用的数据类型,例如整型、实型和字符型等,但是,并不是所有的引擎都支持其它的字段类型,特别是BLOG(二进制大对象)或者TEXT文本类型。其它引擎也许仅支持有限的字符宽度和数据大小。这些局限性可能直接影响到你可以存储的数据,同时也可能会对你实施的搜索的类型或者你对那些信息创建的索引产生间接的影响。这些区别能够影响你的应用程序的性能和功能,因为你必须要根据你要存储的数据类型选择对需要的存储引擎的功能做出决策。

  • 锁定
  •         数据库引擎中的锁定功能决定了如何管理信息的访问和更新。当数据库中的一个对象为信息更新锁定了,在更新完成之前,其它处理不能修改这个数据(在某些情况下还不允许读这种数据)。        锁定不仅影响许多不同的应用程序如何更新数据库中的信息,而且还影响对那个数据的查询。这是因为查询可能要访问正在被修改或者更新的数据。总的来说,这种延迟是很小的。大多数锁定机制主要是为了防止多个处理更新同一个数据。由于向数据中插入信息和更新信息这两种情况都需要锁定,你可以想象,多个应用程序使用同一个数据库可能会有很大的影响。        不同的存储引擎在不同的对象级别支持锁定,而且这些级别将影响可以同时访问的信息。得到支持的级别有三种:表锁定、块锁定和行锁定。支持最多的是表锁定,这种锁定是在MyISAM中提供的。在数据更新时,它锁定了整个表。这就防止了许多应用程序同时更新一个具体的表。这对应用很多的多用户数据库有很大的影响,因为它延迟了更新的过程。        页级锁定使用Berkeley DB引擎,并且根据上载的信息页(8KB)锁定数据。当在数据库的很多地方进行更新的时候,这种锁定不会出现什么问题。但是,由于增加几行信息就要锁定数据结构的最后8KB,当需要增加大量的行,也别是大量的小型数据,就会带来问题。行级锁定提供了最佳的并行访问功能,一个表中只有一行数据被锁定。这就意味着很多应用程序能够更新同一个表中的不同行的数据,而不会引起锁定的问题。只有InnoDB存储引擎支持行级锁定。

  • 建立索引
  •         建立索引在搜索和恢复数据库中的数据的时候能够显著提高性能。不同的存储引擎提供不同的制作索引的技术。有些技术也许会更适合你存储的数据类型。有些存储引擎根本就不支持索引,其原因可能是它们使用基本表索引(如MERGE引擎)或者是因为数据存储的方式不允许索引(例如FEDERATED或者BLACKHOLE引擎)。

  • 事务处理
  • 事务处理功能通过提供在向表中更新和插入信息期间的可靠性。这种可靠性是通过如下方法实现的,它允许你更新表中的数据,但仅当应用的应用程序的所有相关操作完全完成后才接受你对表的更改。例如,在会计处理中每一笔会计分录处理将包括对借方科目和贷方科目数据的更改,你需要要使用事务处理功能保证对借方科目和贷方科目的数据更改都顺利完成,才接受所做的修改。如果任一项操作失败了,你都可以取消这个事务处理,这些修改就不存在了。如果这个事务处理过程完成了,我们可以通过允许这个修改来确认这个操作。

    4、数据类型
  • 字符串数据类型
  • 技术分享

    1.char(n)和varchar(n)中括号中n代表字符的个数,并不代表字节个数,所以当使用了中文的时候(UTF8)意味着可以插入m个中文,但是实际会占用m*3个字节。2.同时char和varchar最大的区别就在于char不管实际value都会占用n个字符的空间,而varchar只会占用实际字符应该占用的空间+1,并且实际空间+1<=n。3.超过char和varchar的n设置后,字符串会被截断。4.char的上限为255字节,varchar的上限65535字节,text的上限为65535。5.char在存储的时候会截断尾部的空格,varchar和text不会。6.varchar会使用1-3个字节来存储长度,text不会。

  • 数值数据类型

  • 整型

     技术分享

    上面定义的都是有符号的,当然了,也可以加上unsigned关键字,定义成无符号的类型,那么对应的取值范围就要翻翻了,比如:

    tinyint unsigned的取值范围为0~255。

    浮点型

     技术分享
  • 二进制数据类型

  •         二进制类型可存储任何数据,如文字、图像、多媒体等。具体类型描述如下:

                                   技术分享
  • 数据类型的属性
  • 技术分享

      林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka

    MySql基础知识、存储引擎与常用数据类型

    标签:mysql   基础知识   存储引擎   常用数据类型   

    小编还为您整理了以下内容,可能对您也有帮助:

    数据库基础知识——Mysql

    数据库基础知识——Mysql包括什么是数据库、、主流数据库、MySQL架构、、服务器,数据库,表之间的关系、、使用数据库、、SQL分类、存储引擎。

    1、什么是数据库

    数据库是用来存储数据的。那么我们之前学习过的存储数据可以使用文件,那么为什么还要弄个数据库呢?

    这就要谈谈用文件保存数据的几个缺点:

    文件的安全性问题、文件不利于数据查询和管理、文件不利于存储海量数据、文件在程序中控制不方便。

    因此为了解决上述的问题,专家们设计出更利于管理数据的东西——数据库,它更有效地管理数据。数据库的水平是衡量一个程序员水平的重要指标。

    数据库:物理操作系统文件或其他形式文件类型的集合。在MySQL数据库中,数据库文件可

    以是frm,MYD,MYI,ibd结尾的文件。当使用NDB引擎时,数据库的文件可能不是操作系统上的文件,而是存放在内存之中的文件,但是定义仍然不变。

    2、主流数据库

    l MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的SQL处理效果好。

    l SQLSever:微软的产品,.Net程序元的最爱,常用于中大型项目。

    l Oracle:甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。

    2.1MySQL

    我主要学习MySQL数据库,那么就再了解了解MySQL数据库。MySQL被设计为一个可移植的数据库,几乎在当前所有系统上都能运行,如:Linux,Windows,Mac,Solaris和FreeBSD。尽管各平台在底层(如线程)实现方面都各有不同。

    但是MySQL基本上能保证在各个平台上的物理体系结构的一致性。因此,用户应该能够很好的理解MySQL数据库在所有这些平台上是如何运作的。

    3、MySQL架构:

    MySQL数据库由后台线程以及一个共享内存区组成。共享内存可以被运行的后台线程所共享。需要牢记的是,数据库实例才是真正用于操作数据库文件的。在MySQL中,实例与数据库的关系通常是一一对应的。即一个实例对应一个数据库,一个数据库对应一个实例。但是,在集群情况下可能存在一个数据库被多个数据实例使用的情况。

    MySQL被设计为一个单进程多线程架构的数据库,这点与SQLServer比较类似,但与Oracle多进程的架构有所不同(Oracle的Windows版本也是单进程多线程架构的)。这也就是说,MySQL数据库实例在系统上的表示就是一个进程。可以通过ps指令观察MySQL数据库启动后的进程情况:

    注意进程为17022的进程就是MySQL的实例。当启动实例时,MySQL数据库会去读取配置文件,根据配置文件中的参数来启动数据库实例。在MySQL数据库中可以没有配置文件,在这种情况下,MySQL会按照编译时的默认参数设置启动实例。

    查看当MySQL实例启动时,会在那些位置查找配置文件:

    [Lxy@VM-20-12-centos~]$mysql--help|grepmy.cnforderofpreference,my.cnf,$MYSQL_TCP_PORT,/etc/my.cnf/etc/mysql/my.cnf/usr/etc/my.cnf~/.my.cnf

    可以看到,MySQL数据库是按照/etc/my.cnf->/etc/mysql/my.cnf->/usr/etc/my.cnf->~/.my.cnf的顺序来读取配置文件的。如果几个配置文件中都有同一个参数,MySQL数据库会按照读取到的最后一个参数为准。在Linux环境下,配置文件一般放在/etc/my.cnf下。在Windows平台下,配置文件的后缀名可能是.cnf或者.ini。

    配置文件中有一个参数datadir,该参数指定了数据库所在的路径。在Linux操作系统下默认datadir为/usr/local/mysql/data,用户可以修改该参数,当然也可以使用该路径。

    3.1连接服务器

    输入:

    mysql-uroot-p。

    注意:

    如果没有写-h127.0.0.1默认是本地连接

    如果没有写``-P3306`默认是3306端口号

    3.2服务器管理。

    l 执行win+r输入services.msc打开服务管理器。

    l 通过下图左侧停止,暂停,重启按钮进行服务管理(一般建议不要动)。

    4、服务器,数据库,表之间的关系

    所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员针对每一个应用创建一个数据库。

    为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。

    5、使用数据库

    这里使用数据库只是一些简单的sql语句,更加相信更加复杂的将在后面的博客中逐渐呈现。

    显示当前所有数据库。

    showdatabases;

    使用数据库。

    use[数据库名];//例如use104_db;

    创建数据库表。

    createtablestudent(idint,namevarchar(20));

    查看表信息。

    desc[表名];//例如descstudent;

    像指定表中插入数据。

    insertinto[表名](id,name)values(1,"张三");//例如:insertintostudent(id,name)values(1,"张三");//也可以如果是全属性插入也可以省略属性字段//例如:insertintostudentvalues(2,"李四");//如果明确指定属性字段后面的插入字段必须与之匹配//例如:insertintostudent(id)values(3);

    查询表中的数据。

    清屏。

    systemclear//mysql并没有提供清屏的指令可以使用系统自带的指令:

    退出数据库。

    6、SQL分类

    l DDL【DataDefinitionlanguage】数据定义语言,用来维护存储数据的结构

    代表指令:create,drop,alter。

    l DML【DataManipulationLanguage】数据操纵语言,用来对数据进行操作的

    代表指令:insert,delete,update。

    l DML中又单独分了一个DQL,数据查询语言,代表指令:select。

    l DCL【DataControlLanguage】数据控制语言,主要负责权限管理和事务

    代表指令:grant,revoke,commit。

    7、存储引擎

    存储引擎:数据库管理系统如何存储数据,如何为存储的数据建立索引和如何更新,查询数据等技术的实现方法。MySQL的核心就是插件式存储引擎,支持多种存储引擎。

    关于mysql数据库存储引擎描述

    关于mysql数据库存储引擎描述 

    MySQL数据库有多种存储引擎,每种存储引擎都有其特定的特点和用途。以下是一些关于MySQL数据库存储引擎的描述:

    1. InnoDB存储引擎:InnoDB是MySQL的默认存储引擎,它提供了事务支持、行级锁定和外键约束等功能。InnoDB适合于需要事务支持和复杂查询的应用程序。

    2. MyISAM存储引擎:MyISAM是MySQL早期版本中常用的存储引擎,它不支持事务支持,但提供了全文搜索、表锁和全文索引等功能。MyISAM适合于不需要事务支持的应用程序。

    3. Memory存储引擎:Memory存储引擎将数据存储在内存中,可以快速检索数据。Memory适合于需要快速检索数据的应用程序,但需要注意内存溢出的问题。

    4. Archive存储引擎:Archive存储引擎适合于需要大量数据的备份和归档,它提供了高压缩比和低读写性能。

    5. NDB Cluster存储引擎:NDB Cluster是一个分布式存储引擎,它提供了高可用性和高并发性能。NDB Cluster适合于需要高可用性和高并发性能的应用程序。

    总之,MySQL数据库的存储引擎可以根据应用程序的需求进行选择,不同的存储引擎具有不同的特点和用途。

    零基础如何mysql学习?

    简单谈谈对新手学习 MySQL 的一些建议,供参考。

    一、搭建好环境,弄清基础概念

    学习 MySQL ,首先要有个自己的环境,可以在自己本机或某台虚拟机上安装下 MySQL ,建议最好使用 Linux 系统,体验下完整的安装步骤,尽量理解清楚每个步骤的作用。

    接下来,要弄清一些基础概念了,比如什么是库、表、字段、索引啊等等。简单介绍下一些常见的基础概念:

    实例(instance):指的是操作系统上的一组进程/线程和内存的集合。比如我们在本机安装好 MySQL ,那就代表着我们本地有一套 MySQL 实例。

    数据库(database):指的是文件系统上的一组文件,等同于 schema 。

    表(table):表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。

    字段(column):字段是指数据表的列,表由字段组成。

    索引(index):索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。

    主键(primary key):主键是唯一的。一个数据表中只能包含一个主键。

    记录(record):指数据,一行可称为一条记录。

    服务端(server):指 MySQL 服务所在端,一般可理解为 MySQL 所在主机。

    客户端(client):连接数据库部分,比如 Navicat、jdbc 程序都可称为客户端。

    数据类型(Data Types):又称字段类型,即定义某个字段所能存储的类型,如 int 、varchar 等。

    字符集(character set):字符是各种文字和符号的总称,字符集是多个字符的集合

    二、学习基础操作,熟悉命令规范

    了解过基础概念后,建议逐步学习一些基础操作,比如如何建库、建表、插入数据、修改数据、删除数据、查询数据等等。这部分主要练习的是 DDL 及 DML 语句。建议一定要按照命令规范来,比如插入数据时指定字段名,建表时指定字符集。

    可以使用 MySQL 命令行来执行 SQL ,也可以使用可视化客户端,关键是要明白每步操作的意义及每条 SQL 的作用。

    三、了解报错内容,善用搜索引擎

    在执行 SQL 或连接数据库过程中,难免会遇到各种报错,这个时候建议先仔细看下是否存在书写及标点错误,关键还是要留意报错内容,根据报错内容大概率就能发现问题所在,比如 Access denied for user xxx 、able 'xxx' doesn't exist ... 有些看到报错内容很明显就可以发现问题,若实在找不到问题,可以复制报错内容到搜索引擎查找下。

    四、根据你的岗位,有目的的进行学习

    在互联网行业,不同岗位的小伙伴可能都会用到 MySQL ,但不同岗位员工学习 MySQL 的侧重点却不尽相同。例如做数据分析的同学可能平时写查询 SQL 比较多,开发同学更侧重程序逻辑如何与数据库交互,DBA 同学可能侧重在数据库高性能高可用方面。所以建议根据自己的需求,有侧重点的进行学习。

    五、要系统、循序渐进的学习

    市面上关于 MySQL 的学习资料有很多,建议选取一个系统的资料进行学习,可以是一本书、一个网站等。切记不要这个资料看一点又转向另外一些资料。

    同其他语言学习方法一样,MySQL 学习也要循序渐进,不能说一上来就学习事务、学习 SQL 优化,任何事情都要一步步来。当然最重要的还是坚持,有需求才能推动学习,假如工作中经常用到 MySQL 或者某个项目要使用 MySQL ,那么自然而然的就会慢慢了解 MySQL 。

    Top