MSSQL server 2008 全文索引简明教程
- 格式:docx
- 大小:202.90 KB
- 文档页数:9
上机实训06建立索引学号______________姓名____________任务1描述在xscjglDB数据库中,为学生信息表创建基于学号列的唯一、聚集索引StudentNo_Index。
设计过程一、将所发数据库文件复制到自己文件夹中,并附加到本机SQL中。
二、使用SSMS图形工具创建索引。
成果展示(裁图):任务2描述在xscjglDB数据库中,为教师信息表创建基于教师编号列降序的唯一聚集索引Teacher_index。
设计过程T-SQL语句:成果展示(裁图):在xscjglDB数据库中,为成绩信息表创建基于学号列升序的非聚集索引cjxh_index。
设计过程T-SQL语句:成果展示(裁图):任务3描述在xscjglDB数据库中,为成绩信息表创建基于”学号”列和”课号”的复合、唯一索引cjxhkh_index。
设计过程T-SQL语句:测试能否添加一条已经存在的成绩记录?成果展示(裁图):在xscjglDB数据库中,显示成绩信息表上创建的索引文件。
设计过程T-SQL语句:成果展示(裁图):任务5描述删除xscjglDB数据库中成绩表中cjxh_index索引。
设计过程T-SQL语句:成果展示(裁图):任务6描述在xscjglDB数据库的学生信息表中,查询最大的一个学号,并显示查询处理过程。
设计过程T-SQL语句:USE xscjglDBGOSET SHOWPLAN_ALL ONGOSELECT MAX(学号)FROM学生信息表GOSET SHOWPLAN_ALL OFF成果展示(裁图):任务7描述在xscjglDB数据库的学生停息表中,查询学号最大的一个文档记录,并显示查询过程处理中磁盘活动统计信息。
设计过程T-SQL语句:USE xscjglDBGOSET STATISTICS IO ONGOSELECT MAX(学号)FROM学生信息表GOSET STATISTICS IO OFF成果展示(裁图):。
SQL Server2008中全文检索的实现1 引言随着计算机的普及和网络技术的发展,我厂的生产管理、数据查询、公文流转等大都实现了计算机管理,方便了信息交流与共享,提高了生产效率。
但是,目前针对散落在个人、单位电脑中的WORD文档、电子表格以及多媒体汇报(PPT)文档等还没有一套完整的管理系统,既造成了存储资源的浪费,又不利于资源的共享。
因此,需要一个文档信息管理系统,把这些分散的文档集中存储到数据库中,为用户提供一个统一的、可以多方式检索的平台,方便用户进行科学、高效地获取信息。
而对存储在数据库中的大量非结构化的文档数据进行查询时,通过普通的SQL语句是无法实现的(不能使用LIKE谓词来查询格式化的二进制数据);即使是非二进制的普通类型字段查询,对数百万行文本数据执行的LIKE 查询可能需要花费几分钟时间才能返回结果;但对同样的数据,全文索引查询只需要几秒或更少的时间。
因此要实现一个能够快速实现检索的文档管理平台,有必要应用全文检索技术。
2 全文索引简介全文索引是以文本数据为主要处理对象,提供根据数据资料的内容来实现的信息检索。
全文搜索通常用于基于Web的应用程序、文档管理系统以及自定义应用程序,以便对存储在数据库中的数据提供文本搜索功能。
Microsoft公司开发的SQL Server 2008是一款面向高端的数据库系统,它继承了SQL SERVER以前版本的一些强大的优势,界面更加友好。
它的全文索引功能配置简单、使用方便,为索引和查询数据库中存储的结构化和非结构化文本数据提供了可靠、快速而灵活的方法。
3 全文索引实现过程下面以多媒体信息管理平台为例,详细介绍一下全文索引的实现方法。
第一步,登陆SQL Server 2008服务器第二步,在SQL Server中建立一个使用全文索引的数据库dmtpt,要选中使用全文索引选项。
在该数据库中建立一个存储文档文件的表main_files。
第三步,在main_files表上点击右键,选择“定义全文索引”,进入全文索引向导对话框。
Sql2008全文索引简明教程如果不存在此服务的,需要确认是否安装全文索引功能--检查数据库PS2是否支持全文索引,如果不支持 --则使用sp_fulltext_database 打开该功能if(select databaseproperty('PS2','isfulltexte nabled'))=0execute sp_fulltext_database 'en able'全文目录是用来存储全文索引的-J 20193^0 L J 两据犀关系图 I+I 一I 表 SOm 」同丈词(±1 口可骗程性s s ervi ce Broker" 曰立存$ ___________全文目录gTtsCi+i 」吩氏方案 田LJI 分N 全文非索引宝表 N 責金性二、为表定义全文索引、新建全文目录、开启 SQL Full-text Filter Daemon Launcher服务提醒:开始-> 管理工具-> 服务r 斬建苴直血* :H 1**相疔© ►■《痒7圍T 警喝團口二(FS4 J J*^OTu+于斬建衰00… 设计◎诰择前1000行⑴ 编辑前200 循写裳脚本対© 直看依赖关条S存储(A)定文全文家引®)■■启用全交索引⑷.选中需要操作的数据库,启用全文检索执行 SQL 语句,启用全文检索:Execute sp_fulltext_database 'enable'文住㈤ 堀辑砂 査昏© 査冏畑 顶目即 碉试⑴ 工旦⑵ gnix) tizt) 朝韵onSQTJDnP 育X 塔Tat orExecute st XulLtext database j enetle"l_ 出.ZQLGmru 10.S) 1GJ7 TIN IOSH04TOOD\AJjkiLiiili .id ) 0 一I 埶囁岸S I 」.赛、樹摘屋 Eh 」数瘫慣磐回 J 20ie_i f在需要全文检索的 数据表上点击右键-> 全文索引-> 定义全文索引2013_bS一i 数拥库关系图d 克四、点击下一步,按提示选择 1•确认下一步+d.bo. d.3 3 a [+ E+f+E EEIbo. li llo.王E国匡一ibc. dild.j ibo. i]d.bo. diibe. iiibc. Aillbo. i]2•选择唯一索引,通常是主键3•选择要建立的全文索引列,对于断字符的选择如果列存的是中文就选择chinese如果是英文就选择English4•选择索引更新方式,可以先自动更新,以后数据量大了可以设置添加全文索引的计划5•选择全文目录Oddness赤水市旅游车 赤水床狒车站五、全文索引的SQL 查询关键字 建立好全文索引后就可以使用 SQL 语句来查询了,主要用带三个关键字 CONTAINS FREETEXTCONTAINSTABL K FREETEXTTABLE 1. CONTAINS搜索单个词和短语的精确或模糊的匹配项, 要搜索的内容必须是个有 意义的词语,比如说 苹果” 建设厅”不能是一些没意义的词语, 比如 阿迪撒啊是”儿儿的”这样的词语即使LIKE 是能查询出来,但全文索引对这样没意义的词语可能没有建立索 引,查不出来SELECT FROMdbo.BusinessWHERECONTAINS (Addres 旅游') 实现功能:查询Business 表中Address 列包含 旅游”的行>essiD BusinesslypelD Busiiesslype Name MarneF*honeBusiness Scopemi 3宾馆©店赤水红城商劳宾馆 D852-29M7S9 42 円26会師0£53 28S6111详细查看: /zh -cn/Iibrary/ms187787.aspx 2. FREETEXT和CONTAIN 啖似,不同的是它会先把要查询的词语先进性分词然后 在查询匹配项select* from dbo.Bus in ess where freetext (Address,'带婴儿旅游')BosinessScone AddressURL QQPin^n赤水市齢车站咅http;//qghQswtiQ林市步行衔爱多爭婴儿游济http://addlyyyg赤水时车站妾hrttpz//26hs详细查看: /zh -cn/library/ms176078.aspx 3. CONTAINSTABLE 在查询方式上与 CONTAINS 几乎一样。
SQL-Server-2008安装及基本功能操作说明书LTSQL Server 2008安装及基本功能操作说明书此说明书主要说明SQL Server 2008软件的安装、连接、附加、备份、分离、还原等基本功能的操作。
一、数据库的安装1.点击安装包里的setup.exe文件,刚开始会出现如下图所示界面:紧接着会出现如下图【SQL Server安装中心】的界面:2.选择【安装】-【全新SQL Server独立安装或向现有安装添加功能】,如下图所示:如果出现如下图所示界面,也就是所有的规则选项里都通过了,这样就可以直接点击【确定】按钮进行下一步。
3.注:一般情况下会出现重新启动计算机这一项失败,如下所示,只需要将电脑重启,6.再点击【下一步】。
7.点【下一步】,出现如下图所示的界面后,选中【我接受许可条款】,再点击【下一步】。
8.待出现如下图所示的界面后,点击【全选】,再点击【下一步】。
9.出现如下图所示界面后,选择实例名,选中【默认实例】或者【命名实例】,如果选择【命名实例】,在后面的文本框里填写实例名,如sql2008。
再点击【下一步】。
10.紧接着会出现如下图所示的界面,再点击【下一步】。
11.如下图所示,点击【对所有SQL Server服务使用相同的账户(U)】。
出现如下图所示的界面:在【帐户名(A)】后面的文本框中选择如下图所示的选项,然后再点击【确定】按钮。
回到如下图所示的界面,然后点击【下一步】。
12.出现如下图所示的界面后,一般选中【混合模式(SQL Server身份验证和Windows身份验证)(M)】,然后输入密码,一般密码设为1。
再点击【添加当前用户】按钮,待空白框中出现了如下图所示的用户后,点击【下一步】按钮。
13.会出现如下图所示的界面,点击【添加当前用户】按钮。
待空白框中出现当前用户,如下图所示,然后再点击【下一步】按钮。
14.出现如下图所示的界面,直接点击【下一步】按钮。
Sql2008 全文索引简明教程
一、开启SQL Full-text Filter Daemon Launcher服务
提醒:开始-> 管理工具-> 服务
如果不存在此服务的,需要确认是否安装全文索引功能
--检查数据库PS2是否支持全文索引,如果不支持
--则使用sp_fulltext_database 打开该功能
if(select databaseproperty('PS2','isfulltextenabled'))=0execute sp_fulltext_database 'enable'
二、新建全文目录
全文目录是用来存储全文索引的
三、为表定义全文索引
选中需要操作的数据库,启用全文检索
执行SQL语句,启用全文检索:Execute sp_fulltext_database 'enable'
在需要全文检索的数据表上点击右键->全文索引->定义全文索引。
四、点击下一步,按提示选择
1.确认下一步
2.选择唯一索引,通常是主键
3.选择要建立的全文索引列,对于断字符的选择如果列存的是中文就选择chinese,如果是英文就选择English
4.选择索引更新方式,可以先自动更新,以后数据量大了可以设置添加全文索引的计划
5.选择全文目录
五、全文索引的SQL查询关键字
建立好全文索引后就可以使用SQL语句来查询了,主要用带三个关键字CONTAINS、FREETEXT、CONTAINSTABLE和FREETEXTTABLE
1.CONTAINS
搜索单个词和短语的精确或模糊的匹配项,要搜索的内容必须是个有意义的词语,比如说“苹果”、“建设厅”,不能是一些没意义的词语,比如“阿迪撒啊是”,“儿儿的”这样的词语即使
LIKE是能查询出来,但全文索引对这样没意义的词语可能没有建立索引,查不出来
SELECT*FROM dbo.Business WHERE CONTAINS(Address,'旅游')
实现功能:查询Business表中Address列包含“旅游”的行
详细查看:/zh-cn/library/ms187787.aspx 2. FREETEXT
和CONTAINS类似,不同的是它会先把要查询的词语先进性分词然后在查询匹配项
select*from dbo.Business where freetext(Address,'带婴儿旅游')
详细查看:/zh-cn/library/ms176078.aspx 3.CONTAINSTABLE
在查询方式上与CONTAINS 几乎一样。
但CONTAINSTABLE 返回的是符合查询条件的表,在SQL 语句中我们可以把它当作一个普通的表来使用,并且使用CONTAINSTABLE 的查询对每一行返回一个相关性排名值(RANK) 和全文键(KEY)。
SELECT*FROM Business AS FT_TBL
INNER JOIN CONTAINSTABLE(Business,*,'ISABOUT(婴儿WEIGHT(.8),赤水WEIGHT(.4))')AS KEY_TBL ON FT_TBL.BusinessId=KEY_TBL.[KEY] ORDER BY KEY_TBL.RANK DESC
ISABOUT是这种查询的关键字,weight指定了一个介于0~1之间的数,类似系数。
表示不同条件有不同的侧重。
CONTAINSTABLE 返回的表包含有特殊的两列:KEY,RANK。
被全文索引的表必须有唯一索引。
这个唯一的索引列在返回的表中就成为KEY。
我们通常把它作为表连接的条件。
在某些网站搜索时,结果中会出现表示匹配程度的数字,RANK 与此类似。
它的值在0~1000之间,标识每一行与查询条件的匹配程度,程度越高,RANK 的值大,通常情况下,按照RANK 的降序排列。
详细查看:/zh-cn/library/ms189760.aspx
4.FREETEXTTABLE
在查询方式上与FREETEXT几乎一样。
但FREETEXTTABLE返回的是符合查询条件的表,在SQL 语句中我们可以把它当作一个普通的表来使用,并且使用FREETEXT的查询对每一行返回一个相关性排名值(RANK) 和全文键(KEY)。
SELECT*,BusinessID,Address FROM Business AS FT_TBL INNER JOIN FREETEXTTABLE(Business,Address,'ISABOUT(带婴儿旅游WEIGHT(.8),赤水WEIGHT(.4))')
AS KEY_TBL ON FT_TBL.BusinessId=KEY_TBL.[KEY]
ORDER BY KEY_TBL.RANK DESC
详细查看:/zh-cn/library/ms177652.aspx
--activate,是激活表的全文检索能力,也就是在全文目录中注册该表execute sp_fulltext_table 'ProSearch','activate'
--填充全文索引目录
execute sp_fulltext_catalog 'ProSearchCatalog','start_full'
--查询全文索引是否建立完毕(0:完毕;1:正在建立)
select fulltextcatalogproperty('ProSearchCatalog','populateStatus')
三、介绍一下全文索引的一些相关操作
查看全文检索的配置情况:
sp_help_fulltext_catalogs --检查数据库有哪些全文目录
sp_help_fulltext_tables ProSearchCatalog --查看哪些表把全文索引建立在T_testData下
sp_help_fulltext_columns ProSearch --查看test表哪些字段配置了全文索引
删除全文索引必须与创建的时候倒过来一步一步操作:
drop fulltext index on test --撤销test上的全文检索
drop fulltext catalog FT_testData --撤销全文目录FT_testData。