MySQL必知必会笔记(8)

2019-01-19 15:54

SELECT note_text FROM productnotes

WHERE Match(note_text) Against('heavy -rope*' IN BOOLEAN MODE)

全文本布尔操作符

+ 包含,词必须存在

- 排除,词必须不出现

> 包含,而且增加等级值

< 包含,而且减少等级值

() 吧词组成子表达式(允许这些子表达式作为一个组被包含)

~ 取消一个词的排序值

* 词尾的通配符

\ 定义一个短语,(与单词不一样,它匹配整个短语以便包含或排除这个短语)

SELECT note_text FROM productnotes

WHERE Match(note_text) Against('+hea +rop' IN BOOLEAN MODE)

//包含hea 和rop的行

SELECT note_text FROM productnotes

WHERE Match(note_text) Against('hea rop' IN BOOLEAN MODE)

//包含hea 和rop至少一个就行的行

SELECT note_text FROM productnotes

WHERE Match(note_text) Against('\)

//包含hea rop这个短语而不是hea 和rop的行

SELECT note_text FROM productnotes

WHERE Match(note_text) Against('>hea

//包含hea 和rop的行,增加前者的等级,降低后者的等级

SELECT note_text FROM productnotes

WHERE Match(note_text) Against('+hea +(

//包含hea 和rop的行降低后者的等级

全文本搜索使用说明:

1 在索引全文本数据时,短语被忽略且从索引中排除,短语定义为那些具有3个或3个以下字符的词,如果需要,这个数目可以更改

2 mysql内建一个非用词(stopword)列表,这些词在索引全文本数据时总是被忽略,如果需要,可以覆盖这个列表

3 许多词出现的频率高,搜索它们没有用处(返回太多的结果),因此mysql规定了一条50%的规则,如果一个词出现在50%以上的行中,则它将作为一个非用词忽略,50%规则不适用与IN BOOLEAN MODE

4 如果表中的行数少于3行,则全文本搜索不返回结果(因为每个词或者不出现,或者少于出现在50%的行中)

5 忽略词中的单引号,例如 don't 索引为 dont

6 不具有词分隔符(包含日语和汉语)的语言不能恰当地返回全文本搜索结果

7 如前所述,仅在MyISAM数据库引擎中是支持全文本搜索的

MySQL必知必会笔记(五)插入数据 创建和操纵表 第十九章 插入数据

INSERT是用来插入(或添加)行到数据库表的。插入数据的几种方式:

1 插入完整的行 2 插入行的一部分 3 插入多行 4 插入某些查询结果 INSERT SELECT语句

INSERT INTO customers(cust_id,cust_name,cust_email) SELECT cust_id,cust_name,cust_email FROM custnew; 列省略

如果表中定义允许,则可以在INSERT操作中省略某些列,省略的列必须满足以下某个条件。

1 该列定义为允许为NULL 2 在表定义中给出默认值,

提高整体性能

数据库经常多个客户访问,对处理什么请求以及用什么次序处理进行管理mysql的任务。INSERT操作可能很耗时(特别是由很多索引需要更新时),而且它可能降低等待处理的SELECT语句性能。

如果数据检索是最重要的(通常是这样的),则你可以通过在INSERT 和INTO之间添加关键字 LOW_PRIORITY 指示mysql降低INSERT语句的优先集

第二十章 更新和删除数据

更新和删除数据

为了更新(修该)表中的数据,可使用UPDATE语句,可采用两种方式使用UPDATE

1 更新表中特定的行 2 更新表中所有的行

更新行和删除行的时候一定要加上WHERE子句,否则后果自负

UPDATE bname SET zda = 'acontent' , zdb = 'bcontent' WHERE zdid='20005';

IGNORE 关键字 如果使用UPDATE更新多行,并且在更新这些行中的一行或多行时出现一个错误,则整个UPDATE操作被取消,(错误发生前更新的所有行被恢复到他们原来的值)为即使发生错误也继续进行更新。可使用IGNORE关键字

UPDATE IGNORE bname;

删除数据

为了从表中删除(去掉)数据,使用DELETE语句,可以使用两种方式: 1 从表中删除特定的行

2 从表中删除所有的行

不要省略WHERE子句

更快的删除 如果想从表中删除所有的行,不要使用DELETE,可以使用TRUNCATE TABLE语句,他完成相同的工作,但速度更快(TRUNCATE实际上是删除原来的表并重新创建一个表,而不是逐行去删除表中的数据)

更新和删除的指导原则

下面是许多sql程序员使用的UPDATE或DELETE是所遵循的习惯

1 除非确实打算更新和删除每一行,否则绝对不要使用不带WHERE子句的UPDATE或DELETE语句。

2 保证每个表都有主键,尽可能的像WHERE子句那样使用它(可以指定各主键、多个值、和值的范围)

3 在对UPDATE和DELETE语句操作使用WHERE前,应该先用SELECT进行测试,保证它过滤的数据是正确的记录,以防编写的WHERE子句不正确。

4 使用强制实施引用完整的数据库,这样MYSQL将不允许删除具有与其他表相关联的数据的行

第二十一章 创建和操纵表

创建表

一般两种创建表的方法

1 使用具有交互式创建和管理表的工具 2 表也可以直接用MySQL语句操纵

在使用交互式工具时,工具也是生成MySQL语句操纵数据库 表创建基础

为了利用CREATE TABLE创建表,必须给出下列信息: 1 新表的名字,在关键字CREATE TABLE之后给出 2 表列的名字和定义,用逗号分隔 CREATE TABLE table (

column_id int NOT NULL AUTO_INCRMENT, columnOne char(20) NOT NULL DEFAULT 1, columnOne char(20) NOT NULL , column char(20) NOT NULL , .....

PRIMARY KEY ( column_id) ) ENGINE = InnoDB

如果表已经存在,则必须先删除后在创建他,不可以直接覆盖。如果仅想在表没有存在的情况下创建它,应该在表名后给出 IF NOT EXISTS

使用NULL值 如果不指定列为NOT NULL则它默认是NULL


MySQL必知必会笔记(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:结构设计原理-1997-2007试题集

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: