澳门新萄京官方网站-www.8455.com-澳门新萄京赌场网址

澳门新萄京官方网站:MySQL的一点浅显知识

2019-08-03 作者:数据库网络   |   浏览(166)

  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 种完整性约束:
·  not null:非空约束;
·  unique:唯一约束;
·  primary key:主键约束;
·  foreign key:外键约束,参照完整性;
  级联删除:删除主表记录时,关联的从表记录也删除,则需要在建立外键约束的后面增加 on delete cascade 或 on delete set null,前者是级联删除,后者是将从表的关联列的值设置为null。
澳门新萄京官方网站:MySQL的一点浅显知识。  具体使用可参见 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用于数据验证,保证操作的合法性和待操作数据的正确性。

澳门新萄京官方网站:MySQL的一点浅显知识。            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的人来说很重要,还有一些我们所不知道的。也会继续了解深入。等待着我的后续数据库知识。

本文由澳门新萄京官方网站发布于数据库网络,转载请注明出处:澳门新萄京官方网站:MySQL的一点浅显知识

关键词: