1楼:兄弟连教育北京总校
前言:微软的sql server数据库是一个在中低端企业应用中占有广泛市场的关系型数据库系统,它以简单、方便、易用等特性深得众多软件开发人员和数据库管理人员的钟爱。但sql server 7.
0以前的数据库系统由于没有全文检索功能,致使无法提供像文本内容查找此类的服务,成为一个小小的遗憾。从sql server 7.0起,到如今的sql server 2000终于具备了全文检索功能,使用户可以高效地检索存储在数据库char、varchar、text、ntext、nchar、nvarchar等数据类型列中的文本数据。
建立全文索引
在进行全文检索之前,必须先建立和填充数据库全文索引。为了支持全文索引操作,sql server 7.0新增了一些存储过程和transact-sql语句。
使用这些存储过程创建全文索引的具体步骤如下(括号内为调用的存储过程名称):
1. 启动数据库的全文处理功能(sp_fulltext_
database);;
2. 建立全文检索目录(sp_fulltext_catalog);
3.在全文检索目录中注册需要全文索引的表(sp_fulltext_table);
4. 指出表中需要全文检索的列名(sp_fulltext_
column);;
5. 为表创建全文索引(sp_fulltext_table);;
6. 填充全文检索目录(sp_fulltext_catalog)。
下面举例说明如何创建全文索引,在本例中,对test数据库book表中title列和notes列建立全文索引。
use test //打开数据库
//打开全文索引支持,启动sql server的全文搜索服务
execute sp_fulltext_database ‘enable’
//建立全文检索目录ft_test
execute sp_fulltext_catalog ‘ft_test’, ‘create’
为title列建立全文索引数据元,pk_title为book表中由主键所建立的唯一索引,这个参数是必需的。
execute sp_fulltext_table ‘book’,‘create’, ‘ft_test’,‘pk_title’
//设置全文索引列名
execute sp_fulltext_column ‘book’, ‘title’, ‘add’
execute sp_fulltext_column ‘book’,‘notes’, ‘add’
//建立全文索引
execute sp_fulltext_table ‘book’, ‘activate’
//填充全文索引目录
execute sp_fulltext_catalog ‘ft_test’, ‘start_full’
至此,全文索引建立完毕。
进行全文检索
sql server 2000提供的全文检索语句主要有contains和freetext。contains语句的功能是在表的所有列或指定列中搜索:一个字或短语;一个字或短语的前缀;与一个字相近的另一个字;一个字的派生字;一个重复出现的字。
contains语句的语法格式为:
contains(), )
其中,column是搜索列,使用“*”时说明对表中所有全文索引列进行搜索。contains_search_
condition 说明contains语句的搜索内容,其语法格式为:
[}] [...n]
下面就******_term和prefix_term参数做简要说明:
******_term是contains语句所搜索的单字或短语,当搜索的是一个短语时,必须使用双引号作为定界符。其格式为:
prefix_term说明contains语句所搜索的字或短语前缀,其格式为:
例如,下面语句检索book表的title列和notes列中包含“database”或“***puter”字符串的图书名称及其注释信息:
select title, notes
from book
where contains(tilte, ‘database’) or contains(notes,‘database’)
or contains(title,‘***puter’) or contains(notes,‘***puter’)
freetext语句的功能是在一个表的所有列或指定列中搜索一个自由文本格式的字符串,并返回与该字符串匹配的数据行。所以,freetext语句所执行的功能又称做自由式全文查询。
freetext语句的语法格式为:freetext(,‘freetext_string’)
其中,column是被搜索列,使用“*”时说明对表中的所有全文索引列进行搜索。freetext_string参数指出所搜索的自由文本格式字符串。
例如,下面语句使用freetext语句搜索book表中包含“successful life”字符串的数据行:
select title, notes
from book
where freetext(*,‘successful life’)
如何在sql语句中使用保留字
2楼:千锋教育
在sql语句中,有些特殊字符,是sql保留的。比如 ' [ ] 等。我们可以先看看它们的用法。
当需要查询某数据时,加入条件语句,或着当你需要insert记录时,我们用 ' 来将字符类型的数据引起来。比如:
select*from customers where city ='london' 当表的名字或列的名字中,含有空格等一些特殊字符时,我们需要用 将表名引起来,告诉语法分析器,号内的才是一个完整的名称。比如
string sql = "select*from customers where customerid ='" + temp + "'"; 如果,我给temp赋值为 tom' or 1=1 ---
那么你拼接起来的语句为 select * from customers where customerid = 'tom' or 1=1 --- '
哈哈,1=1 衡为真,---会把后面的sql语句注释掉。而前面因为有输入的 ' 而使的语句是合法的。那or的条件,会把所有的记录都选出来。
这就是sql注入。在做用户登陆时,如果没有处理该问题,那你的系统受危害的可能性会很高的。
sql语句中addbutch与带参数的有什么区别
3楼:南京新华电脑专修学院
就是交互的功能吧,带参数的功能更大,要用面多一些,实现了交互的功能呢,现在我使用一个存储过程来说明问题吧。这里用的数据库pubs是sql自带的数据库,lz可以试试的。
不带参数的,查询功能单一
use pubs go
create procedure pub_proc1
as select pub_name,type,title
from titles,publishers
where titles.pub_id=publishers.pub_id
order by pub_name,type
带参数的为,可以根据参数的选择,调用,查询自己想要的结果,存储过程应用多
use pubs go
create procedure pub_proc2(@ type char(12))
as select pub_name,type,title
from titles,publishers
where titles.pub_id=publishers.pub_id and type like @type
order by pub_name,type
调用这个存储过程
declare @t char(12)
set @t='business' 这一行可以根据自己的需求选择查询,这里我选择查询类型为商业的进行查询
exec pub_proc2 @t
oracle的sql的select语句中有limit吗
4楼:千锋教育
limit是mysql里的,select * from a order by b limit 6,1,取得按b排序的第6行a的值
而在oracle中想要实现是通过rownum:
select * from a where rownum<6 order by b
rownum是一个序列,是oracle数据库从数据文件或缓冲区中读取数据的顺序。它取得第一条记录则rownum值为1,第二条为2,依次类推。rownum是一个序列,是oracle数据库从数据文件或缓冲区中读取数据的顺序。
它取得第一条记录则rownum值为1,第二条为2,依次类推。
5楼:匿名用户
limit是mysql中的用法
oracle 用rownum
大概给你举个例子:
mysql:
select * from a order by b limit 6,1
oracle:
select * from (select a.* ,rownum rn from a)
where rn=6
oracle的sql的select语句中有limit吗
6楼:匿名用户
--oracle没有limit,不过可以使用rownum
--示例:请修改table_name的值
select*fromtable_namewhererownum<=10
7楼:匿名用户
limit是mysql里的,select * from a order by b limit 6,1,取得按b排序的第6行a的值
而在oracle中想要实现是通过rownum:
select * from a where rownum<6 order by b
rownum是一个序列,是oracle数据回库从数据文件或答缓冲区中读取数据的顺序。它取得第一条记录则rownum值为1,第二条为2,依次类推。rownum是一个序列,是oracle数据库从数据文件或缓冲区中读取数据的顺序。
它取得第一条记录则rownum值为1,第二条为2,依次类推。
8楼:匿名用户
没有 oracle的sql语句中没有limit,limit是mysql中特有的,在oracle中可用rownum来表示,用于查询结果中
回的答前n行数据。
如要查询emp表中的前5行数据,可用如下语句:
select * from emp where rownum<=5;
用abb形式的词语造句,用“abb式”的词语造句,要求在句中必须有至少3个“abb式”的词语
1楼 匿名用户 亮晶晶 黑沉沉 亮闪闪 香喷喷 静悄悄 金灿灿 胖乎乎 黑压压 水汪汪 笑哈哈 喜洋洋 气冲冲 沉甸甸 孤零零 白茫茫 眼睁睁 黑乎乎 懒洋洋 绿油油 慢吞吞 急匆匆 笑眯眯 齐刷刷 笑盈盈 2楼 冰肌玉骨 树枝 光秃秃 的 造句 秋天到了 树叶凋零 很多树枝光秃秃的 街上 冷清清 ...
存在一变量使得等式成立用英语怎么说主要是存在,使
1楼 匿名用户 there exists a variable for which the equation holds 存在一变量使等式成立 存在 there exists 变量 variable 等式 equation 成立 hold s 等式成立 用英文怎么说 2楼 啦啦啦白小姐 equali...
中共建立统一战线的必要性和可能性是什么
1楼 匿名用户 建立统一战线的必要性 中国共产党所领导的革命运动,是在半殖民地半封建的身会环境中进行的,中国的无产阶级尽管是一个最有觉悟,最有组织纪律性。革命性很强的阶级,无产阶级要战胜强大的地主大资产阶级及其支持者帝国主义,必须处理好与农民,城市小资产阶级及其他中间阶级的关系,并在一定的形式下同他...