您的位置:新葡亰496net > 网络数据库 > 新葡亰496netMySQL浅显知识,MySQL的一点浅显知识

新葡亰496netMySQL浅显知识,MySQL的一点浅显知识

发布时间:2019-08-02 13:14编辑:网络数据库浏览(142)

      MySQL是多用户多线程的DBMS,默认支持的存储机制是 InnoDB,InnoDB 通过建立行级锁保证事务的完整性,通过共享锁处理 select 语句,以提供事务安全的存储机制。

    MySQL的一点浅显知识,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的书籍《MySQL必知必会》,书中只写了一些基本知识,但是也基本涵盖了所...

    #MySQL必知必会

    #MySQL必知必会

     引擎管理和处理数据,MySQL支持多种引擎:

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

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

     ·  InnoDB :提供可靠的事务处理,但不支持全文本搜索。

    1、MySQL的引擎分类 InnoDB,MyISAM以及MEMORY等3个引擎。 InnoDB是一个可靠的事务处理引擎,但是其不支持全文本搜索。 MEMORY在功能上等同于MyISAM,但由于数据存储在内存中,速度很快。 MyISAM是一个性能极高的引擎,它支持全文本搜索,但是不支持事务处理。

    1、MySQL的引擎分类 InnoDB,MyISAM以及MEMORY等3个引擎。 InnoDB是一个可靠的事务处理引擎,但是其不支持全文本搜索。 MEMORY在功能上等同于MyISAM,但由于数据存储在内存中,速度很快。 MyISAM是一个性能极高的引擎,它支持全文本搜索,但是不支持事务处理。

     ·  MyISAM:性能高、支持全文本搜索,但不支持事务处理。

    2、谈谈MyISAM的全文本搜索。 MyISAM的全文本搜索不像InnoDB中使用的like语法,搜索某一列,而是搜索全文本,只要有符合的都可以显示出来。它的基本格式如下: Match(匹配的列名) Against(搜索的表达式)

    2、谈谈MyISAM的全文本搜索。 MyISAM的全文本搜索不像InnoDB中使用的like语法,搜索某一列,而是搜索全文本,只要有符合的都可以显示出来。它的基本格式如下: Match(匹配的列名) Against(搜索的表达式)

    工具的安装和使用

     ·  命令行应用程序安装教程:mysql-5.7.15-winx64.zip, 安装教程,常用指令

      net start/stop mysql  // 登录/退出mysql
      mysql [-h 主机名] -u 用户名 -p  (mysql@sqh)
      create user 用户名 identified by '密码'; // 创建用户
    

     ·  图形化交互界面工具:mysql-workbench 或 Navicat for MySQL

       (1)基本语法: SELECT columnName FROM TABLENAME WHERE MATCH(查询列) Against (‘anvils’ WITH QUERY EXPANSION)(这就是查询扩展) 由于搜索全文本,只要其中一个词符合所要求的都会被显示的,所以一般结果不是唯一的。他们会按照一定的顺序进行排列,主要是根据查询的优先级,以及你搜索 的关键词之间的位置。位置越近,优先级越高。

       (1)基本语法: SELECT columnName FROM TABLENAME WHERE MATCH(查询列) Against (‘anvils’ WITH QUERY EXPANSION)(这就是查询扩展) 由于搜索全文本,只要其中一个词符合所要求的都会被显示的,所以一般结果不是唯一的。他们会按照一定的顺序进行排列,主要是根据查询的优先级,以及你搜索 的关键词之间的位置。位置越近,优先级越高。

    某些基本操作

     ·  show databases:数据库实例包含的数据库;

     ·  use/select 数据库名:选择/查看数据库信息;
     ·  show tables:数据库中包含的数据表;

     ·  show columns from 表名:表列信息;

     ·  analyze table 表名; 检查表键是否正确;

     ·  optimize table 表名; 优化表空间;

     ·  show processlist;显示活动的线程;

      (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不支持全文本搜索,这就涉及到引擎内部的问题,希望大家给我答复。

      (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不支持全文本搜索,这就涉及到引擎内部的问题,希望大家给我答复。

    函数

     ·  系统函数

      select Now()/Date()/Time();   // 时间日期
      select Version();   // 版本信息
    

     ·  处理函数

      Concat():字符串拼接
      Substring();截取子串
      Locate():查找子串
    

    3、正则表达式REGXEP 本人在看这本书之前,学过SQL SERVER数据库。但是当时没有学到正则表达式。后来在生活中遇到过几次,才有所了解。 regexp的英文意思就是正则表达式的意思。所以学习英语对于一个程序员来说,是必不可少的。我们有时候通过一个简称便能知道这个是什么,我自己就有亲身体会。 这里我要说的是正则表达式匹配特殊字符。当正则表达式匹配特殊字符时,必须要加上转义字符“\”作为前导。 ?是匹配当前的前面的任何字符的0次或1次出现。

    3、正则表达式REGXEP 本人在看这本书之前,学过SQL SERVER数据库。但是当时没有学到正则表达式。后来在生活中遇到过几次,才有所了解。 regexp的英文意思就是正则表达式的意思。所以学习英语对于一个程序员来说,是必不可少的。我们有时候通过一个简称便能知道这个是什么,我自己就有亲身体会。 这里我要说的是正则表达式匹配特殊字符。当正则表达式匹配特殊字符时,必须要加上转义字符“\”作为前导。 ?是匹配当前的前面的任何字符的0次或1次出现。

    关键字

     ·insert

     MySql支持在单个insert语句中插入多个values值,且效率高。

     ·where - having
     where 子句过滤行,having 子句过滤组;只能在 having 子句中使用组函数(聚合函数);
     ·or - in

     in 优于 or,速度快,可以包含select子句,与not操作符结合简化SQL语句;

     ·like - regexp

     like利用通配符*_进行字符串匹配,完全匹配列值;regexp,正则表达式,部分匹配列值,利用^xxx$可完全匹配列值,效果等效于like,其中^和$是定位符分别对应首和尾。binary regexp可区分大小写。

     ·limit

     限制选取的行数,MySQL-5新增 limit ... offset ... 语法;

     ·auto_increment

     自动增加,每个表只允许有一列且必须被索引。返回值:(1)last _ insert _ id(); (2)after insert 触发器:

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

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

    多表查询

     ·  交叉连接 cross join:笛卡尔乘积,无连接条件; 
     ·  自然连接 natural join:以 2 表中的所有同名列为连接条件,内部连接的一种; 
        -  using 子句连接:显式指定某些同名列为连接条件; 
     ·  左、右、全外连接 left/right/full join: 
        -  on 子句连接:常用连接方式;

    5、游标(CURSOR) 游标的使用步骤:

    5、游标(CURSOR) 游标的使用步骤:

    约束

      MySQL 使用 auto_increment 支持自增长特性,支持除 check 外的 4 种完整性约束:
    新葡亰496netMySQL浅显知识,MySQL的一点浅显知识。·  not null:非空约束;
    ·  unique:唯一约束;
    ·  primary key:主键约束;
    ·  foreign key:外键约束,参照完整性;
      级联删除:删除主表记录时,关联的从表记录也删除,则需要在建立外键约束的后面增加 on delete cascade 或 on delete set null,前者是级联删除,后者是将从表的关联列的值设置为null。
      具体使用可参见 MySQL - 约束;

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

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

    索引

      模式Schema中的一个数据库对象,从属于数据表。通过快速路径访问方法快速定位数据、加快对表的查询。缺点是索引的存储占用空间、索引的维护有系统开销。

             CREATE PROCEDURE C()

             CREATE PROCEDURE C()

    视图

      一个或多个数据表中记录的逻辑显示。通过 with check option 子句强制不允许修改视图的数据。
     ·  提供数据的独立性;
     ·  简化查询;
     ·  限制对数据的访问,提供对相同数据的不同显示;
      视图的 本质 是一条被命名的SQL查询语句。利用 子查询 建立视图,同样可以建立表:

       create or replace view 视图名
          as 子查询语句
       查看视图创建语句:show create view 视图名;
       更新视图:create or replace view 视图名;
    

               BEGIN

               BEGIN

    存储过程

     MySql以call调用存储过程。

      查看存储过程创建语句:show create procedure 存储过程名;
      查看存储过程附加信息:show procedure status like '存储过程名';
    

                 DECLARE 游标名 CURSOR

                 DECLARE 游标名 CURSOR

    游标

     MySql游标只能用于存储过程和函数。

     内部定义顺序:局部变量,游标,句柄。

                   FOR

                   FOR

    触发器

     trigger只能关联表,常用的NEW(可更新、可读)表和OLD(只读)表是针对当前触发器的局部表,在高速缓存中存储新插入或删除的行数据的副本。创建:

      create trigger 触发器名 after/before insert/delete/update on 表名
      for each row 
      begin 
          SQL处理语句;
      end;
    

     其中,before用于数据验证,保证操作的合法性和待操作数据的正确性。

                SELECT _ FROM _;

                SELECT _ FROM _;

    事务

     MySql以start transaction标识事务开始。

               END

               END

    全文本搜索

     MySql要求被检索的列在创建表时必须加索引,即利用 fulltext(列名) 启用全文本搜索,会自动维护更新该索引,通过 Match(列名) Against('模式串') 执行全文本搜索。

     优点

     ·  fulltext速度比like快; 
     ·  明确控制文本匹配,对检索结果按等级值智能排序;

     查询扩展:模糊匹配,MySql对数据和索引进行2遍扫描完成搜索。 Match(列名) Against('模式串' with query expansion) 

     布尔文本搜索:无需定义fulltext索引,利用全文本布尔操作符明确控制文本匹配模式,效率低。 Match(列名) Against('模式串' in boolean mode) 

     


    参考

    ·  21分钟MySQL 入门教程- wid - 博客园;
    ·  

     

         上面就是创建游标的过程 OPEN CURSOR ,CLOSE CURSOR 也就是打开和关闭游标的操作。

         上面就是创建游标的过程 OPEN CURSOR ,CLOSE CURSOR 也就是打开和关闭游标的操作。

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

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

    本文由新葡亰496net发布于网络数据库,转载请注明出处:新葡亰496netMySQL浅显知识,MySQL的一点浅显知识

    关键词:

上一篇:服务下载安装图文教程,7服务下载安装

下一篇:没有了