MySQL的一点浅显知识

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL的一点浅显知识相关的知识,希望对你有一定的参考价值。

       本人最近看了一本有关于mysql的书籍《MySQL必知必会》,书中只写了一些基本知识,但是也基本涵盖了所有的MySQL的知识点。其余的比较高级的也只是在基础上进行扩展或者是优化,看完这本书之后,本人也有一点疑惑,所以知道的朋友帮忙解决一下

     1、MySQL的引擎分类

                InnoDB,MyISAM以及MEMORY等3个引擎。

                InnoDB是一个可靠的事务处理引擎,但是其不支持全文本搜索。

                MEMORY在功能上等同于MyISAM,但由于数据存储在内存中,速度很快。

                MyISAM是一个性能极高的引擎,它支持全文本搜索,但是不支持事务处理。

    2、谈谈MyISAM的全文本搜索。

             MyISAM的全文本搜索不像InnoDB中使用的like语法,搜索某一列,而是搜索全文本,只要有符合的都可以显示出来。它的基本格式如下:

               Match(匹配的列名) Against(搜索的表达式)

           (1)、基本语法:

                           SELECT columnName

                            FROM     TABLENAME

                           WHERE  MATCH(查询列) Against (‘anvils’ WITH QUERY EXPANSION)(这就是查询扩展)

                      由于搜索全文本,只要其中一个词符合所要求的都会被显示的,所以一般结果不是唯一的。他们会按照一定的顺序进行排列,主要是根据查询的优先级,以及你搜索            的关键词之间的位置。位置越近,优先级越高。

         (2)布尔类型文本搜索

                  举例:

                            select  note_text

                           from  product

                          where Match(note_text) Against(‘heavy ‘ IN BOOLEAN MODE)

                 其中的 heavy为搜索的关键字。IN BOOLEAN MODE即为布尔文本类型的标志。

                 Against(‘heavy - rope*‘ IN BOOLEAN MODE)表示搜索出来行的结果去除含有rope的行

                Against(‘ +rabbit + bait‘ IN BOOLEAN MODE)显示包含rabbit和bait的行

                Against(‘rabbit + bait‘ IN BOOLEAN MODE)   显示包含rabbit和bait中任意一个的行

                Against(‘rabbit bait‘ IN BOOLEAN MODE)   显示rabbit bait短语的行。

          这里我提出一个问题:为什么InnoDB不支持全文本搜索,这就涉及到引擎内部的问题,希望大家给我答复。

     3正则表达式REGXEP

             本人在看这本书之前,学过SQL SERVER数据库。但是当时没有学到正则表达式。后来在生活中遇到过几次,才有所了解。

             regexp的英文意思就是正则表达式的意思。所以学习英语对于一个程序员来说,是必不可少的。我们有时候通过一个简称便能知道这个是什么,我自己就有亲身体会。

              这里我要说的是正则表达式匹配特殊字符。当正则表达式匹配特殊字符时,必须要加上转义字符“\\”作为前导。

             ?是匹配当前的前面的任何字符的0次或1次出现。

    4、视图

          视图为虚拟表。主要用来数据的检索,其对select 语句进行封装,保护一些用户的基本数据。但是本人还是不够了解视图的使用。

    5、游标(CURSOR)

         游标的使用步骤:

                                 定义——声明——使用——关闭

         CREATE PROCEDURE C()

             BEGIN

                 DECLARE 游标名 CURSOR

                FOR

              SELECT  _  FROM _;

           END

     上面就是创建游标的过程

   OPEN CURSOR ,CLOSE CURSOR 也就是打开和关闭游标的操作。

    以上最近所学的就是这些,希望上面的红色标注的问题,希望有人回答下。这些基本的知识对于我们想要了解MySQL的人来说很重要,还有一些我们所不知道的。也会继续了解深入。等待着我的后续数据库知识,让我们一起成长。

   

     

以上是关于MySQL的一点浅显知识的主要内容,如果未能解决你的问题,请参考以下文章

关于Knowledge Transfer的一点想法

浅显回顾 Java 面向对象的最后方面的知识

史上最全的HTMLCSS知识点总结,浅显易懂。

记录关于交叉编译器的一点知识

网络编程知识预备 ——浅显易懂的三次握手与四次挥手

makefile中的一点知识