【英】ben Forta著

5

  1.0  *使用扩展查询*

        |---->select note from table   where Match(note) Against('anl');

                       |--->where  Match(note) Against('anl'  WITH QUERY EXPANSION);

                       |--->按等级返回与第一行(优先级最高)有关的行,表中行越多,使用扩展查询结果越好。

  2.0  *关于insert*

      |--->insert操作耗时,可能降低等待处理的select语句性能。解决方案:

                                     |-->在insert和into之间插入LOW_PRIORITY(降低优先级)

                                     |-->同样适用于 UPDATAE ,DELETE语句。

    *提高insert性能*------>MySQL用单条insert语句处理多个插入比使用多条insert语句快。==== values (),(),()...

    *关于 INSERT SELECT的使用,顾名思义就是把SELECT语句的内容作为INSERT的插入部分*

      |--->eg:      insert into 表名1(列) select 列 from 表名2

  3.0  *关于布尔文本搜索*    即使没有FULLTEXT索引也可以使用。

          eg:   select note

              from 表

              where Match(note) Against('heavy -ropt*' IN BOOLEAN MODE);

              |--->为了匹配包含heavy,但不包含以rope开始词的行。

       *全文本布尔操作符*

         

       ---- 几个经典例子:

  4.0   *关于IGNORE*

          UPDATE 更新多行时,一行出错就会发生错误。

              |--->解决方案:UPDATE IGNORE .......

      *为了删除某个 列的值,可以设置他为NULL*

              |---->delete 删除整行而不是某个列,若删除列用update语句。

                           |---->删除行,所有的行,但不会删除表本身。

              *若要删除所有行,TRUNCATE TABLE (删除一个表,重新创建一个表)

  5.0

         *MySQL没有撤销(undo)按钮*

       |---》NULL值是没有值,不是空串,空串是有一个有效的值,不是无值。

            |---》AUTO_INCREMENT (每个表只允许一个这样的列,而且他必须被索引)

        select last_insert-id()

            |----->返回最后一个AUTO_INCREMENT值。

6

    1.0   *关于MSQL引擎*

|

        |--->InnoDB 创建表最后一句常用。|ENGINE = InnoDB;

           |---->可靠的事务处理引擎,不支持全文本搜索

       |

       |--->MEMORY 功能等同于MYISAM,由于数据存储在内存,比较快,适用于临时表。

       |

       |--->MyISAM(大多数默认的引擎)支持全文本搜索,不支持事务处理。

    ****    外键不能跨引擎 ***

*ALTER TABLE 常用来定义外键*

|---->  eg:   alter table 表名

             Add CONSTRAINT 列

            FOREIGN KEY () REFERENCE 表 (列)

  2.0

     *视图不能索引也不能有关联的触发器或默认值*

      SHOW CREATE VIEW  viewname;------>查看创建视图的语句

*关于更新*---------->先DROP再用CREATE ,也可以用CREATE OR REPLACE VIEW

      |------->insert update delete

        若有以下则不能更新:| 分组(group by having)

                  | 联结

                    | 子查询

                  |并

                  |聚集函数

                  |Distinct

                  |导出列

  3.0

     *关于创建存储过程*

          | CREATE PROCEDURE 存储名()

BEGIN

select语句

           END;

          引用存储过程的语句: CALL 存储名();

                    |--->将会显示select语句的查询结果。

        删除语句: DROP PROCEDURE 存储名;(如果删除的不存在将会出现    错误)

                                        |--->解决方案: DROP PROCEDURE IF EXISTS;

  4.0

      MYSQL命令行客户机分隔符

          DELTMITER //

           A

END //

DELTMITER ;(除\符号以外)

5.0

      *存储过程本质是一个函数*

       注释语句:--

        SHOW CREATE PROCEDURE       存储名;

                     |---> STATUS LIKE '存储名';--------->like限制输出

  6.0

    *关于游标*  是一个存储在MYSQL服务器上的数据库查询,他不是一条select语句,而是被该语句检索出来的结果集。 不像多数DBMS,MYSQL游标只用于存储过程(函数)

    *触发器* ------->只有表才支持,视图不支持。

      CREATE TRIGGER ....

      FOR EACH ROW SELECT语句

         |----->对每个插入行都执行。

  7.0

    事务处理用来维护数据库完整性。

      START TRANSACTIDN

      当COMMIT或ROLLBACK语句执行时,事务会自动关闭。

如果不想让事务自动提交,则可以 SET AUTOCOMMIT = 0;(不自动提交)------------>针对的是连接,不是服务器。

7

    1.0       *关于安全*

            CREATE USER ben IDENTIFIED BY 'p@123';(创建一个用户口令)

                        |---->指定口令为纯文本

            RENAME USER ben TO f;

            drop user ben;

|--------->删除帐号以及相关帐号权限

            SET PASSWORD FOR ben = password('n3w p@1234');------------>更改口令。如果没有则更改的是自己。

    2.0 *关于权限的问题*

        GRANT 和REVOKE

            |----->GRANT ALL和REVOKE ALL,对应于整个服务器

            |----->ON DATABASE.*; 对应于整个数据库

            |----->ON DATABASE.TABLE;对应于特定的表

            |----->其他权限见下表

    3.0 *关于数据库的维护*

        *使用命令行实用程序MYSQLDUMP转储所有数据库内容到另外一个文件。

        *使用命令行实用程序MYSQLHOTCOPY从一个数据库复制所有数据。

        *ANALYZE TABLE用来检查表健是否正确。

        *CHECK TABLE用来针对许多问题对表进行检查。

    4.0

        查看日志:

              错误日志 hostname.err 位于data目录中。可用--log-error命令选项更改

              查询日志:hostname.log  --log

               二进制日志:hostname-bin --log-bin

              缓慢查询日志: hostname-slow.log              --log-slow-queries

**在使用日志时,可用FLUSH LOGS语句来刷新和重新开始所有的日志文件**

    5.0

           *MYSQL变量都必须以@开始*

        存储过程的一个例子:

            |---->create procedure 名字 (out p1 Decimal(8,2))------->"Decimal 十进位"

            |        BEGIN SELECT MIN(列) INTO P1 end;

       *串在字符集之间进行转换,使用cast()或 convert()函数*

MySQL必知必会笔记<2>的更多相关文章

  1. 《mysql必知必会》读书笔记--存储过程的使用

    以前对mysql的认识与应用只是停留在增删改查的阶段,最近正好在学习mysql相关内容,看了一本书叫做<MySQL必知必会>,看了之后对MySQL的高级用法有了一定的了解.以下内容只当读书 ...

  2. MySQL必知必会(第4版)整理笔记

    参考书籍: BookName:<SQL必知必会(第4版)> BookName:<Mysql必知必会(第4版)> Author: Ben Forta 说明:本书学习笔记 1.了解 ...

  3. MySQL必知必会1-20章读书笔记

    MySQL备忘 目录 目录 使用MySQL 检索数据 排序检索数据 过滤数据 数据过滤 用通配符进行过滤 用正则表达式进行搜索 创建计算字段 使用数据处理函数 数值处理函数 汇总数据 分组数据 使用子 ...

  4. 《MySQL必知必会》学习笔记整理

    简介 此笔记只包含<MySQL必知必会>中部分章节的整理笔记.这部分章节主要是一些在<SQL必知必会>中并未讲解的独属于 MySQL 数据库的一些特性,如正则表达式.全文本搜索 ...

  5. MySQL必知必会复习笔记(1)

    MySQL必知必会笔记(一) MySQL必知必会是一本很优秀的MySQL教程书,并且相当精简,在日常中甚至能当成一本工作手册来查看.本系列笔记记录的是:1.自己记得不够牢的代码:2.自己觉得很重要的代 ...

  6. MySQL使用和操作总结(《MySQL必知必会》读书笔记)

    简介 MySQL是一种DBMS,即它是一种数据库软件.DBMS可分为两类:一类是基于共享文件系统的DBMS,另一类是基于客户机——服务器的DBMS.前者用于桌面用途,通常不用于高端或更关键应用. My ...

  7. 读《MySql必知必会》笔记

    MySql必知必会 2017-12-21 意义:记录个人不注意的,或不明确的,或不知道的细节方法技巧,此书250页 登陆: mysql -u root-p -h myserver -P 9999 SH ...

  8. 《MySQL必知必会》学习笔记——前言

    前言 MySQL已经成为世界上最受欢迎的数据库管理系统之一.无论是用在小型开发项目上,还是用来构建那些声名显赫的网站,MySQL都证明了自己是个稳定.可靠.快速.可信的系统,足以胜任任何数据存储业务的 ...

  9. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  10. mysql必知必会系列(一)

    mysql必知必会系列是本人在读<mysql必知必会>中的笔记,方便自己以后查看. MySQL. Oracle以及Microsoft SQL Server等数据库是基于客户机-服务器的数据 ...

随机推荐

  1. [转]如何正确清理C盘

    转自微软的Answers网站. 以下是推荐使用的方法,安全且不会误删有用的系统文件 1.尽量不要在C盘安装应用软件,在软件安装时,一般可以手动指定安装路径,您可以将软件指定安装到其他盘符. 在使用它们 ...

  2. ThreadPoolExecutor(转)

    让ThreadPoolExecutor的workQueue占满时自动阻塞submit()方法 By learnhard | 2015 年 09 月 04 日 0 Comment 转载请注明出处:htt ...

  3. setlocal enabledelayedexpansion

    http://www.jb51.net/article/29323.htm 例1: 代码如下: @echo off set a=4 set a=5&echo %a% pause  结果:4 解 ...

  4. jQuery Validate 插件验证,,返回不同信息(json remote)自定义

    问题 申请账号需要确认该账号是存在 jquery.validate.js中的remote Jquery Ajax获取后台返回的Json数据后,添加自定义校验 解题思路:输入的登陆信息远程验证是否该账号 ...

  5. Nginx学习之二-配置项解析及编程实现

    在开发功能灵活的Nginx模块时,需要从配置文件中获取特定的信息.不过,我们并不需要再编写一套读取配置的系统,Nginx已经为用户提供了强大的配置项解析机制,同时还支持“-s reload”命令,可以 ...

  6. 关于KeyEvent.Callback

    keycode------------>KEYCODE_BACK,KEYCODE_MENU event.getAction------->ACTION_DOWN,ACTION_UP,ACT ...

  7. Centos7网络配置+图形界面设置

    一. 查看网络地址: centos7取消了ifconfig命令,使用ip addr命令查看IP地址 二.配置网络 用VirtualBox安装的CentOS7,安装完成后,发现无法上网,于是到网上查了一 ...

  8. tomcat优化-有改protocol 和 缓存 集群方案

    tomcat优化 在线上环境中我们是采用了tomcat作为Web服务器,它的处理性能直接关系到用户体验,在平时的工作和学习中,归纳出以下七种调优经验. 1. 服务器资源 服务器所能提供CPU.内存.硬 ...

  9. Chapter 1. Hello, Perl/Tk

    Chapter 1. Hello, Perl/Tk 内容: Perl/Tk Concepts Some Perl/Tk History Getting Started with Perl/Tk Hel ...

  10. 【Java】使用Runtime执行其他程序

    public class ExecDemo{ public static void main(String[] args) { Runtime r = Runtime.getRuntime(); Pr ...