MySQL 第六天学习笔记

第十七章 组合查询

创建组合查询(UNION)

需要价格小于等于5的所有物品的一个列表,而且还想包括供应商1001和1002生产的所有物品(不考虑价格)

MySQL 第六天学习笔记

同样的,用WHERE也可实现

MySQL 第六天学习笔记

union在实现的过程中,会自动取消重复的行,如果想要改变,可以用union all


第十八章  全文本搜索

首先,并非所有的引擎都支持全文本搜索。MySQL最常用的两个引擎是MyISAM和InnDB

其中,MyISAM支持全文本搜索,而InnDB不支持

如果应用中需要全文本搜索功能,在建立表时,应该用MyISAM

启用全文本搜索支持

一般在创建表时,启用全文本搜索支持

MySQL 第六天学习笔记

FULLTEXT( )  用这个指示表示可以进行索引

定义之后,MySQL会自动维护该索引,在增加、更新、删除行时,索引会随之自动更新

MySQL 第六天学习笔记


进行全文本搜索   

Match( ):指定被搜索的列 

Against( ):指定要使用的搜索表达式

检索单个列note_text,指定词rabbit作为搜索文本

MySQL 第六天学习笔记

如果不用WHERE

MySQL 第六天学习笔记   第一行的逗号不能忘

结果是:每一句都被搜索出来,如果包含rabbit,则rank不为0,排在越前的等级越高

MySQL 第六天学习笔记


使用查询扩展  with query expansion  

比如我想找出所有提到anvils的注释

首先,通过全文搜索,找到anvils所在的行

其次,检查这些行里有用的词

最后,根据检索到的那些词再进行全文搜索,把包含有用词的行也返回出来

MySQL 第六天学习笔记


布尔文本搜索   in boolean mode

MySQL 第六天学习笔记

匹配包含heavy,但不包含任意以rope开始的词的行:

MySQL 第六天学习笔记

MySQL 第六天学习笔记

MySQL 第六天学习笔记




第十九章   插入数据  insert

插入完整的行

MySQL 第六天学习笔记

一般不要使用上图方法,最好使用下图 使用列的列表,即使表的结构发生了变化,也继续发挥作用

MySQL 第六天学习笔记

插入多个行

MySQL 第六天学习笔记

INSERT INTO ...

VALUES( ....),

( ...... )


插入检索出的数据

把名为custnew的表中的数据导入customers表中

MySQL 第六天学习笔记


第二十章  更新和删除数据

更新数据  update

客户10005现在有了新的电子邮件,需要更新

MySQL 第六天学习笔记

MySQL 第六天学习笔记


删除数据 delete  删除行

MySQL 第六天学习笔记

如果要删除整列,可以用update 和 NULL

MySQL 第六天学习笔记

DELETE  按行删除数据,不删除表

truncate table(截断)       删除表


第二十一章 创建和操纵表

创建customers表

MySQL 第六天学习笔记


使用NULL值


定义主键

PRIMARY KEY(order_num,order_item)

MySQL 第六天学习笔记


自动增量 AUTO_INCREMENT

注意:每个表只允许一个自动增量的列,而且它必须被索引(比如让它成为主键)

那么,如何知道插入一行后,自动生成的编号是什么?

SELECT last_insert_id( )


指定默认值   default 

引擎类型

MySQL 第六天学习笔记

MySQL 第六天学习笔记


更新表  alter table  (包括添加ADD和删除DROP)

给表添加一个列

MySQL 第六天学习笔记

删除添加的列

MySQL 第六天学习笔记

定义外键




删除表  DROP TABLE customers

重命名表 RENAME TABLE customers TO customers1



下次看 第二十二章  使用视图