MySQL 第六天学习笔记

第十七章 组合查询

创建组合查询(UNION)

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


同样的,用WHERE也可实现


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


第十八章  全文本搜索

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

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

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

启用全文本搜索支持

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


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

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



进行全文本搜索   

Match( ):指定被搜索的列 

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

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


如果不用WHERE

   第一行的逗号不能忘

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



使用查询扩展  with query expansion  

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

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

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

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



布尔文本搜索   in boolean mode


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







第十九章   插入数据  insert

插入完整的行


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


插入多个行


INSERT INTO ...

VALUES( ....),

( ...... )


插入检索出的数据

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



第二十章  更新和删除数据

更新数据  update

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




删除数据 delete  删除行


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


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

truncate table(截断)       删除表


第二十一章 创建和操纵表

创建customers表



使用NULL值


定义主键

PRIMARY KEY(order_num,order_item)



自动增量 AUTO_INCREMENT

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

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

SELECT last_insert_id( )


指定默认值   default 

引擎类型




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

给表添加一个列


删除添加的列


定义外键




删除表  DROP TABLE customers

重命名表 RENAME TABLE customers TO customers1



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









猜你喜欢

转载自blog.csdn.net/weixin_41151172/article/details/80154770