[原创]SQL SERVER 2005/2008 全文索引介绍 (一)
PS:最近在论坛上接连碰到有关SQL全文索引的提问,感觉有点代表性,特此准备写个系列文章,将我对SQL全文索引的理解与大家分享一下,欢迎各位批评指正。
在正式介绍SQL全文索引相关概念,先请各位跟着如下步骤实战一下:
--新建一个测试数据库,并指定排序规则为Chinese_PRC_CI_ASCREATE DATABASE TESTFT COLLATE Chinese_PRC_CI_AS GOUSE TESTFTGO--新建全文目录TestCL,并将其置为默认CREATE FULLTEXT CATALOG TestCL AS DEFAULT GO--新建测试表CREATE TABLE TB ( ID INT IDENTITY, Title VARCHAR(100), Body VARCHAR(1000), CONSTRAINT PK_TB PRIMARY KEY CLUSTERED (ID))GO--在TB表的title和body列上创建全文索引CREATE FULLTEXT INDEX ON TB (Title,Body) KEY INDEX PK_TBGO--插入两行演示数据INSERT TB(Title,Body) VALUES('艺术家评选','苍井空和小泽玛利亚是深受人民群众喜爱的著名艺术家')INSERT TB(Title,Body) VALUES('给苍老师的一封信','宁夏固原有一位网友给敬爱的苍老师写了一封信')GO
--例1:SELECT * FROM TB WHERE CONTAINS(*,'小')/*ID Title Body----------- ------------------------------ ------------------------------------------------------(0 行受影响)*/SELECT * FROM TB WHERE CONTAINS(*,'小泽')/*ID Title Body----------- ------------------------------ ------------------------------------------------------1 艺术家评选 苍井空和小泽玛利亚是深受人民群众喜爱的著名艺术家(1 行受影响)*/--例2:SELECT * FROM TB WHERE CONTAINS(*,'苍')/*ID Title Body----------- ------------------------------ ------------------------------------------------------1 艺术家评选 苍井空和小泽玛利亚是深受人民群众喜爱的著名艺术家(1 行受影响)*/SELECT * FROM TB WHERE CONTAINS(*,'苍老师')/*ID Title Body----------- ------------------------------ ------------------------------------------------------2 给苍老师的一封信 宁夏固原有一位网友给敬爱的苍老师写了一封信(1 行受影响)*/