精华内容
下载资源
问答
  • 列出同义词
    千次阅读
    2014-01-03 17:02:03

    当学习英语时我们发现词汇量相当大,而且最令人讨厌的莫过于里面还有很多同义词,近义词.相当让人无语,纠结.

    如果说近义词还有比较大的用处,可以用来精准的描述一些细微的差别.那同义词基本上用处不大,大部分同义词应该完全去掉,这样可以降低学习难度.

    不过现实情况肯定是不完美的,由于各种历史渊源,同义词会一直存在着并增加我们的学习难度.

     

    近义词

    近义词,顾名思义就是意思比较接近的词.比如常用的like和love,都有喜欢的意思,但后者可能喜欢的多一点.估计很多MM也老喜欢问GG喜欢和爱的区别.

    关于为什么有近义词我们很容易理解,这很符合日常思维习惯.因为现在中确实存在很多类似的概念,为了做区别必须使用些近义词.特别在一某些场合,使用不同的近义词也会是差之毫米谬以千里,比如像法律,文学中相当讲究用词准确

     

    但是为什么有很多同义词是很不容易理解,这不太符合我们的思维习惯.

    同义词主要有这样一些来源

     

    同义词来源

    1.借用外族语

    我们知道英语是很多语言混合形成的.差不多有一半的词汇是外来语,比如从拉丁语,法语中借来的词.比如

    英语ask --- 法语inquire,  英语end --- 法语finish

     

    这样一来就存在问题了,本来英语中已经有个词表示某个意思,而外来词表示同样的意思,但写法不一样.

    可能你会问,为什么本来已经有这个词了还引用外来语,难道闲得蛋痛,没事找事啊?

    有可能是外来语刚传进来时,大家觉得比较新奇,用外来语显得比较洋气,上档次一点.

    像我们平时也常用音译的英语词. 出租车 --- 的士,  公共汽车 --- 巴士, 妈妈 --- 妈咪

     

    2.古语同义词

    这个比较好理解,语言是不断发展演化.古代的一些词慢慢会被废弃不用.但中间总有个过度阶段,要向后兼容嘛,有些词还会继续使用.跟软件一样的,不能在新版本的操作系统中就不能装以前一些老版本的软件了啊.

    比如古英语中用ege表示眼睛,而现在一般用eye.

     

    3.简写通俗同义词

    有些专业性太强的词往太长,并且不容易理解.所以我们往往会整出些缩写,或者用个通俗的用法.

    比如info是informaton的简写. 中国是中华人民共和国的简写.

     

    青春痘是粉刺的通俗说法.炒鱿鱼是开除的意思.一般把通俗的说法叫作俚语.俚语不仅通俗易懂,还带点比喻戏谑调侃的成份.

     

    4.变体同义词

    我们平常学英语实际不只学一个版本的英语,像英国,英国,澳大利亚很多国家都是把英语做为母语.而不同国家使用的词汇可能不一样.

    但我们学起来的时候都得记.

    比如lift --- elevator都是电梯, autumn --- fall都是秋天的意思.

     

    汉语虽然没在不同的国家使用,但不同的地区口语是不一样的.比如: 靓 --- 漂亮

     

     

     

     

     

     

     

     

     

     

    更多相关内容
  • Restyler 是一组过程,可帮助改进文本... 对于这些表达中的每一个,它都会列出同义词,用户可以选择用同义词替换单词或表达。 用户还可以添加和删除新的同义词来丰富他的词典。 对于不同的上下文,可以有多个叙词表。
  • 然后,我需要使用wordnet查找lemma_names,单词的同义词集的定义和示例。我读过这本书:"使用NLTK 2.0食谱进行Python文本处理"和"使用NLTK进行自然语言处理",以帮助我朝这个方向发展。尽管我已经知道可以使用终端来...

    我需要输入一个单词的输入文本文件。然后,我需要使用wordnet查找lemma_names,单词的同义词集的定义和示例。我读过这本书:"使用NLTK 2.0食谱进行Python文本处理"和"使用NLTK进行自然语言处理",以帮助我朝这个方向发展。尽管我已经知道可以使用终端来完成此操作,但是我无法使用文本编辑器来完成此操作。

    例如,如果输入文本具有单词" flabbergasted",则输出需要采用以下方式:

    吓坏的

    (动词)吃惊的,吃惊的,吃惊的克服;"这使人感到困惑!"

    (形容词)傻眼的,傻眼的,吃惊的,震惊的,雷击过的,傻眼的,傻傻的-仿佛惊奇而惊奇地傻了起来;"由于否认曾见过这起事故,一个警察圈感到震惊";"饱受摧残的al徒无语";"被他晋升的消息震惊了"

    同义词集,定义和例句可直接从WordNet获得!

    我有以下代码:

    from __future__ import division

    import nltk

    from nltk.corpus import wordnet as wn

    tokenizer = nltk.data.load('tokenizers/punkt/english.pickle')

    fp = open("inpsyn.txt")

    data = fp.read()

    #to tokenize input text into sentences

    print '

    -----

    '.join(tokenizer.tokenize(data))# splits text into sentences

    #to tokenize the tokenized sentences into words

    tokens = nltk.wordpunct_tokenize(data)

    text = nltk.Text(tokens)

    words = [w.lower() for w in text]

    print words     #to print the tokens

    for a in words:

    print a

    syns = wn.synsets(a)

    print"synsets:", syns

    for s in syns:

    for l in s.lemmas:

    print l.name

    print s.definition

    print s.examples

    我得到以下输出:

    flabbergasted

    ['flabbergasted']

    flabbergasted

    synsets: [Synset('flabbergast.v.01'), Synset('dumbfounded.s.01')]

    flabbergast

    boggle

    bowl_over

    overcome with amazement

    ['This boggles the mind!']

    dumbfounded

    dumfounded

    flabbergasted

    stupefied

    thunderstruck

    dumbstruck

    dumbstricken

    as if struck dumb with astonishment and surprise

    ['a circle of policement stood dumbfounded by her denial of having seen the accident', 'the flabbergasted aldermen were speechless', 'was thunderstruck by the news of his promotion']

    有没有一种方法可以检索词性以及引理名称组?

    如果您重新登录到SO,则应该接受Andreys的回答。 因为他不仅回答了问题,还回应了您的评论以帮助您。

    def synset(word):

    wn.synsets(word)

    不返回任何内容,因此默认情况下,您得到None

    你应该写

    def synset(word):

    return wn.synsets(word)

    提取引理名称:

    from nltk.corpus import wordnet

    syns = wordnet.synsets('car')

    syns[0].lemmas[0].name

    >>> 'car'

    [s.lemmas[0].name for s in syns]

    >>> ['car', 'car', 'car', 'car', 'cable_car']

    [l.name for s in syns for l in s.lemmas]

    >>>['car', 'auto', 'automobile', 'machine', 'motorcar', 'car', 'railcar', 'railway_car', 'railroad_car', 'car', 'gondola', 'car', 'elevator_car', 'cable_car', 'car']

    非常感谢!! :)真是个愚蠢的错误!

    有没有一种方法可以仅从同义词集中提取单词并将其作为参数传递?例如,对于单词flabbergasted,您将获得Synset(flabbergast.v.01)和Synset(dumbfounded.s.01)。如何将它们作为参数传递给lemma_name函数?

    从nltk.corpus导入wordnet syns = wordnet.synsets(car)[s.lemmas [0]。s在syns中的名称] >>> [汽车,汽车,汽车,汽车,电缆车]

    我更新了答案

    万分感谢!!我已经用输出更新了代码。有没有一种方法可以同时检索词类和词组名称呢?例如,字词是flabbergast,boggle和bowl over。有没有办法将其与输出结合在一起?

    要获得词性,请使用[s.lemmas中l的l.synset.pos对于syns中s的使用]

    打印[s.lemmas()中l的syns中s的s的l.name()]

    我如何使用自己的火车数据?

    在这里,我创建了一个易于使用(导入)的模块,并将一个字符串传递给它,它将返回该字符串的所有引理词。

    模块:

    #!/usr/bin/python2.7

    ''' pass a string to this funciton ( eg 'car') and it will give you a list of

    words which is related to cat, called lemma of CAT. '''

    from nltk.corpus import wordnet as wn

    import sys

    #print all the synset element of an element

    def lemmalist(str):

    syn_set = []

    for synset in wn.synsets(str):

    for item in synset.lemma_names:

    syn_set.append(item)

    return syn_set

    用法:

    注意:模块名称为lemma.py,因此"来自lemma import lemmalist"

    >>> from lemma import lemmalist

    >>> lemmalist('car')

    ['car', 'auto', 'automobile', 'machine', 'motorcar', 'car', 'railcar', 'railway_car', 'railroad_car', 'car', 'gondola', 'car', 'elevator_car', 'cable_car', 'car']

    干杯!

    出现错误no ImportError: No module named lemma

    synonyms = []

    for syn in wordnet.synsets("car"):

    for l in syn.lemmas():

    synonyms.append(l.name())

    print synonyms

    请修改您的答案以包含更多信息。不建议使用仅代码和"尝试此"答案,因为它们不包含可搜索的内容,并且不解释为什么有人应该"尝试此"。

    在NLTK 3.0中,lemma_names已从属性更改为方法。 因此,如果出现错误提示:

    TypeError: 'method' object is not iterable

    您可以使用以下方法修复它:

    >>> from nltk.corpus import wordnet as wn

    >>> [item for sysnet in wn.synsets('car') for item in sysnet.lemma_names()]

    这将输出:

    >>> [

    'car', 'auto', 'automobile', 'machine', 'motorcar', 'car',

    'railcar', 'railway_car', 'railroad_car', 'car', 'gondola',

    'car', 'elevator_car', 'cable_car', 'car'

    ]

    展开全文
  • 同义词语法:CREATE [PUBLIC] SYNONYM synonym FOR object;1.创建同义词语句:create public synonym table_name for user.table_name;其中第一个user_table和第二个user_table可以不一样。此外如果要创建一个远程的...

    从字面上理解就是别名的意思,和视图的功能类似。就是一种映射关系。

    同义词语法:CREATE [PUBLIC] SYNONYM synonym FOR object;

    1.创建同义词语句:

    create public synonym table_name for user.table_name;

    其中第一个user_table和第二个user_table可以不一样。

    此外如果要创建一个远程的数据库上的某张表的同义词,需要先创建一个Database Link(数据库连接)来扩展访问,然后在使用如下语句创建数据库同义词:create synonym table_name for table_name@DB_Link;

    当然,你可能需要在user用户中给当前用户(user2)授权: grant select/delete/update on user2

    2.删除同义词:

    drop public synonym table_name;

    3.查看所有同义词:

    select * from dba_synonyms

    同义词拥有如下好处:节省大量的数据库空间,对不同用户的操作同一张表没有多少差别;扩展的数据库的使用范围,能够在不同的数据库用户之间实现无缝交互;同义词可以创建在不同一个数据库服务器上,通过网络实现连接。

    知识扩展:数据库对象

    表、视图、序列、过程、函数、程序包,甚至其它同义词都可以创建同义词。

    1、同义词:私有同义词、公有同义词。

    私有同义词只能被当前模式的用户访问。私有同义词名称不可与当前模式的对象名称相同。要在自身的模式创建私有同义词,

    用户必须拥有Create Synonym系统权限。要在其它用户模式创建私有同义词,用户必须拥有Create Any Synonym系统权限。

    公有同义词可被所有的数据库用户访问。要创建公有同义词,用户必须拥有Create Public Synonym系统权限。

    创建私有同义词语法:

    Create [OR REPLACE] SYNONYM [schema.]synonym_name FOR [schema.]object_name;

    其中:OR REPLACE表示在同义词存在的情况下替换该同义词。

    synonym_name表示要创建的同义词的名称。

    object_name指定要为之创建同义词的对象的名称。

    示例1:create synonym s_emp for scott.emp;

    创建公有同义词语法:

    Create PUBLIC SYNONYM synonym_name FOR [schema.]object_name;

    示例2:create public synonym emp_syn from scott.emp;

    可以查询字典视图User_Synonyms来查看用户所创建的同义词的详细信息

    删除同义词语法:Drop Synonym synonym_name; 删除公有同义词加上一个Public

    此命令只删除同义词,不会删除对应的表。

    2、序列:是用来生成唯一、连续的整数的数据库对象。序列通常用来自动生成主键或唯一键的值。

    创建序列语法如下:

    Create SEQUENCE sequence_name

    [START WITH integer]

    [INCREMENT BY integer]

    [MAXVALUE integer|NOMAXVALUE]

    [MINVALUE integer|NOMINVALUE]

    [CYCLE|NOCYCLE]

    [CACHE interger|NOCACHE];

    其中:START WITH是指定要生成的第一个序列号。对于升序序列,其默认值为序列的最小值。对于降序序列,其默认值为序列的最大值。

    INCREMENT BY是用于指定序列号之间的间隔。其默认值为1。如果integer为正值,则生成的序列将按升序排列,否则按降序排列。

    MAXVALUE指定序列可以生成的最大值。

    NOMAXVALUE这是默认选项,将升序序列的最大值设为10的27次幂,将降序序列的最大值设为-1。

    MINVALUE指定序列的最小值。MINVALUE必须小于或等于START WITH的值,并且必须小于MAXVALUE。

    NOMINVALUE这是默认选项,将升序序列的最小值设为1,将降序序列的最小值设为-10的26次幂。

    CYCLE指定序列在达到最大值或最小值后,将继续从头开始生成值。

    NOCYCLE这是默认选项。指定序列在达到最大值或最小值后,将不能再继续生成值。

    CACHE使用CACHE选项可以预先分配一组序列号,并将其保留在内存中,这样可以更快的访问序列号。

    NOCACHE此项则不会为加快速度而预先分配序列号。如果在创建序列时忽略了CACHE和NOCACHE选项,Oracle将默认缓存20个序列号。

    示例3:Create SEQUENCE toys_seq

    START WITH 10

    INCREMENT BY 2

    MAXVALUE 2000

    MINVALUE 10

    NOCYCLE

    CACHE 30;

    访问序列:可以通过CURRVAL和NEXTVAL伪列来访问该序列的值。

    示例4:演示从序列toys_seq中选择值插入toys表中的toyid列。执行成功将会在该表的toyid列插入值"P10"和"P12"。

    INSERT INTO toys(toyid,toyname,toyprice) values('p'||toys_seq.NEXTVAL,'TWENTY',25);

    INSERT INTO toys(toyid,toyname,toyprice) values('p'||toys_seq.NEXTVAL,'MAGIC PENCIL',75);

    示例5:演示如何查看序列当前值

    Select toys_seq.CURRVAL from dual;

    更改序列:ALTER SEQUENCE命令用于设置或删除MINVALUE或MAXVALUE、修改增量值、修改缓存中的序列号的数目。

    修改序列语法如下:注意,不能修改序列的START WITH参数。在修改序列时,应注意升序序列的最小值应小于最大值。

    ALTER SEQUENCE [schema.]sequence_name

    [INCREMENT BY integer]

    [MAXVALUE integer|NOMAXVALUE]

    [MINVALUE integer|NOMINVALUE]

    [CYCLE|NOCYCLE]

    [CACHE interger|NOCACHE];

    示例6:演示如何设置一个新的MAXVALUE,并为toys_seq序列打开了CYCLE。

    ALTER SEQUENCE toys_seq

    MAXVALUE 5000

    CYCLE;

    可以查询字典视图User_Sequences来查看用户所创建的序列的详细信息

    删除序列语法:Drop SEQUENCE toys_seq;

    3、视图

    视图是存储的查询定义。

    创建视图的语法如下:

    Create [OR REPLACE] [FORCE | NOFORCE] VIEW view_name[(alias,alias,...)] AS

    select_statement [WITH CHECK OPTION [CONSTRAINT constraint]] [WITH READ ONLY];

    其中:OR REPLACE表示在该视图存在的话,将重新创建该视图。

    FORCE使用此关键字,则无论基表是否存在,都将创建视图。

    NOFORCE这是默认值。如果使用此关键字,则仅当基表存在时才创建视图。

    view_name表示要创建视图的名称。

    alias指定在视图里面列的名字,名字数目必须与视图所选择的表达式的数目相匹配。

    select_statement表示Select语句。

    WITH CHECK OPTION此选项指定只能插入或更新视图可以访问的行。术语constraint表示为CHECK OPTION约束指定的名称。

    WITH READ ONLY此选项确保不能在此视图上执行任何修改操作。

    示例7:演示创建一个名为ven_view的视图,该视图与vendor_master表具有相同的结构。

    Create VIEW ven_view AS select * from vendor_master;

    视图中的ORDER BY子句:以便在查询视图时即使不使用Order By子句,结果集也会按指定的顺序排列行。

    示例8:Create OR REPLACE VIEW ven_view(编号,日期) AS select orderno,odate from vendor_master order by venname;

    创建带有错误的视图:使用FORCE选项

    在以下情况下,Oracle也会创建视图:

    视力定义的查询引用了一个不存在的表;视图定义的查询引用了现有表中无效的列;视图的所有者没有所需的权限。

    示例9:下面创建一个基于venmast的视图。但数据库中并不存在名为"venmast"的表。

    Create FORCE VIEW ven AS select * from venmast;

    如果稍后创建名为venmast的表,可以使用ALTER VIEW ven COMPILE;

    联接视图:

    示例:演示如何创建联接视图

    Create OR REPLACE VIEW ven_ord_view AS select vm.vencode,venname,orderno,odate,ostatus

    from vendor_master vm,order_master om where vm.vencode=om.vencode;

    键保留表:在联接视图中,如果视图包含了一个表的主键,并且也是这个视图的主键,则这个键被保留,则这个表被称为键保留表。

    ven_ord_view视图以vendor_master和order_master这两个表为基表。order_master表被视为键保留表,因为orderno既是order_master表

    的主键,也是视图的主键。而vendor_master表不被视为键保留表,因为vendor_master表的主键vencode是联接字段,不是视图的主键。

    示例10:此示例成功修改了记录,因为odate列属于键保留表order_master。对于非键保留表vendor_master的venname列的更新则是不允许的。

    update wen_ord_view odate=odate+1 where vencode='V003';    注意:运行此示例时,必须确保基表的主键已正确创建。

    可以查询字典视图User_Updateble_Columns来查看联接视图中可更新的列。

    可以查询字典视图User_Views来查看用户所创建的视图信息。

    视图中的函数:视图可以使用单行函数(由数字、字符、日期组成)、分组函数和表达式。

    示例11:此示例用UPPER函数创建视图,注意使用函数或表达式时,应赋予列一个别名。

    Create VIEW vendor_master_view AS select vencode,UPPER(venname) vendor_name from vendor_master;

    删除视图语法:Drop VIEW view_name ;

    4、索引:

    查询User_indexes可以获取有关用户已创建的索引的详细信息。

    查询User_ind_partitions可以获取有关用户已创建的分区索引的详细信息。

    查询User_ind_columns可以获取有关列(用户的索引是基于这些列创建的)的详细信息。

    唯一索引、组合索引、反向键索引、位图索引和基于函数的索引。

    索引在逻辑上物理上都独立于关联表中的数据,在任何时候都可以创建或删除索引,而不会影响基表或其它索引。

    创建普通索引的语法:

    Create INDEX index_name ON table_name(column_list) [TABLESPACE tablespace_name];

    其中:index_name指所创建索引的名称。

    table_name表示为之创建索引的表名。

    column_list是在其上创建索引的列名列表,可以基于多列创建索引。

    tablespace_name为索引指定表空间。

    示例12:演示如何在itemfile表的itemcode列上创建索引

    create index item_index on itemfile(itemcode);

    ALTER INDEX语句的REBUILD选项可以用来重建现有的索引。该选项提供的性能要优于使用DROP INDEX和CREATE INDEX语句重新创建索引。

    示例13:重建索引

    ALTER INDEX item_index REBUILD;

    删除索引语法:Drop INDEX item_index;

    (1)唯一索引:此索引可以确保在定义索引的列中,表的任意两行的值都不相同。Oracle自动为表的主键列创建唯一索引。

    可以使用Create UNIQUE INDEX命令明确地创建唯一索引。

    示例14:在itemfile表的itemcode列上创建了一个名为item_index的唯一索引。

    Create UNIQUE INDEX item_index ON itemfile(itemcode);

    (2)组合索引:组合索引是在表中的多个列上创建的索引。组合索引中列的顺序是任意的,不必是表中相邻的列。

    创建组合索引时,应注意定义中使用的列的顺序。通常,最频繁访问的列应放置在列表的最前面。

    示例15:在itemfile表上创建了一个名为comp_index的组合索引,当查询该表的的WHERE子句同时包含这两个列或只包含

    p_category列时,以下示例语句创建的索引将用于检索数据,但如果单独使用itemrate列,则索引不能用于检索数据。

    Create INDEX comp_index ON itemfile(p_category,itemrate);

    (3)反向键索引:通常建立在一些值连续增长的列上,例如列中的值是是由序列产生的情况。

    示例16:在itemfile表上创建了一个名为rev_index的反向键索引。注意使用REVERSE关键字。

    Create INDEX rev_index ON itemfile(itemcode) REVERSE;

    示例17:使用关键字NOREVERSE可以将反向键索引重建为标准索引。

    ALTER INDEX rev_index REBUILD NOREVERSE;

    注意:不能将标准索引重建为反向键索引。

    (4)位图索引:如果某个列的值重复超过一百次,则可以考虑在该列上创建位图索引。

    示例18:itemcode是order_detail表中的低基数列,因为货物编码在大多数订单中都是重复的,因此适合在该列上创建位图索引。

    Create BITMAP INDEX bit_ind1 ON order_detail(itemcode);

    位图索引不应当用在频繁发生的INSERT,UPDATE,DELETE操作的表上。位图索引最适合于数据仓库和决策支持系统。

    (5)索引组织表:索引组织表与在一个或多个列上建立索引的普通表相似,但它无需为表和索引维护两个单独的存储空间,

    数据库系统仅维护一个索引,该索引包含相应的已编码键值和与其关联的列值。

    示例19:使用ORGANIZATION INDEX子句来创建索引组织表。

    Create table ind_org_tab

    (

    vencode NUMBER(4) primary key,          注意:primary key是创建索引组织表所必需的。不允许使用分区。

    venname VARCHAR2(20)

    )

    organization index;

    索引组织表适合于通过主键来访问数据。

    (6)基于函数的索引:如果在WHERE子句的算术表达式或函数中已经包含了某个列,则不会使用该列上的索引。不能在表达式包含任何

    聚合函数,LOB列、REF列或包含LOB或REF的对象类型上创建基于函数的索引。

    示例20:venname是vendor_master表的一个列,用于存储供应商的姓名,假定所有供应商的姓名都以混合大小写的形式存储

    (如:John Smith、Dave Jones、Tony Greig等等),同时假定我们经常需要根据供应商的姓名来查询表的数据。由于

    姓名是以混合大小写的形式存储的,因此可能很难给出姓名的正确大小写形式。可以创建如下索引:

    Create INDEX vn_ind ON vendor_master(UPPER(venname));

    示例21:演示如何使用前面创建的基于函数的索引检索数据。

    select * from vendor_master where UPPER(venname)='SMALL';

    要创建基于函数或表达式的索引,必须具有QUERY REWRITE系统权限。

    (7)索引中的分区:与对表进行分区类似,Oracle也允许对索引分区。牵引分区可以存储在不同的表空间中。

    局部分区索引:Oracle为表的每个分区建立一个独立的索引。

    示例22:先创建分区表

    Create table order_mast

    (

    orderno number(4),

    venname varchar2(20)

    )

    partition by range(orderno)

    (

    partition oe1 values less than(1000),

    partition oe2 values less than(2000),

    partition oe3 values less than(maxvalue)

    );

    接着创建局部索引:

    create INDEX myind ON order_mast(orderno) LOCAL;

    全局分区索引:是指在分区表或非分区表上创建的索引。

    示例23:在上面创建的分区表上创建全局索引

    create INDEX glb_ind ON order_mast(orderno) GLOBAL

    partition by range(orderno)

    (

    partition ip1 values less than(1500),

    partition ip2 values less than(maxvalue)

    );

    在有3个分区的表上创建2个分区的索引。注意:不能在散列分区或子分区建立全局索引。

    全局非分区索引:全局分区索引是在分区表上创建的全局索引,它类似于非分区表上的索引,索引的结构不会被分割。

    展开全文
  • Oracle序列(sequence),OracleRUNNUM和Oracle同义词(synonyms)...Oracle序列(sequence),OracleRUNNUM和Oracle同义词(synonyms)2018-04-21 23:41:08 发布者:来源网络Oracle 序列Oracle序列的概念: 序列是一数据库...

    一团网资讯

    一团资讯 > oracle > Oracle序列(sequence),OracleRUNNUM和Oracle同义词(synonyms)...

    Oracle序列(sequence),OracleRUNNUM和Oracle同义词(synonyms)

    2018-04-21 23:41:08     发布者:来源网络

    Oracle 序列

    Oracle序列的概念: 序列是一数据库对象,利用它可生成唯一的整数。一般使用序列自动地生成主码值(类似于MySQL中的主键auto_increment属性)

    有时候我们定义某张表其中某一列为主键,当我们往标中插入数据的时候,对于主键字段的赋值要求唯一性,我们希望能有个自增类型的数据库对象,我们每获取一次它就自动增长,保证下次获取的时候肯定是不一样的值,序列既是这种Oracle对象。 create sequence sequence_name [increment by n1, start with n2 ,maxvalue n3, cache n , nocache .....] 从序列取值:sequence_name.CURRVAL(取当前值) sequence_name.NEXTVAL(取下一条值) 更改序列的定义: alter sequence_name sequence definition;

    属性cache的指定:

    如果指定CACHE值,Oracle就可以预先在内存里面放置一些Sequence,这样存取的快些。 cache里面的取完后,Oracle自动再取一组到cache。使用cache或许会跳号, 比如数据库突然不正常down掉(shutdown abort) cache中的Sequence就会丢失。 举个例子:比如你的sequence中cache 100,那当你sequence取到90时突然断电,那么在你重启数据库后,sequence的值将从101开始。 如果指定NOCACHE值,Oracle就不会预先在内存里面存放Sequence,当然这也就可以避免数据库不正常down掉的sequence丢失。 不过会产生一些问题:创建nocache sequence在高并发访问时,容易导致row cache lock等待事件 主要原因是每次获取nextval时都需要修改rowcache中的字典信息。使用nocache sequence,还会导致如下问题: 由于每次修改字典信息都需要commit,可能导致log file sync等待,nocache sequence在RAC环境下 会对基于sequence生成的列创建的索引造成实例间大量索引块争用。基于以上问题,避免创建nocache sequence。

    创建序列的语法,序列是和表一样的对象要指定它的用户 CREATE SEQUENCE sequence [INCREMENT BY n] -- 自增的公差,默认为1 [START WITH n] -- 起始值 [{MAXVALUE n | NOMAXVALUE}] -- 最大值 [{MINVALUE n | NOMINVALUE}] -- 最小值 [{CYCLE | NOCYCLE}] -- 循环 [{CACHE n | NOCACHE}]; -- 缓存

    从序列取值: CURRVAL 取当前值, NEXTVAL取下一个值

    更改序列的定义: ALTER SEQUENCE dept_deptid_seq INCREMENT BY 20 MAXVALUE 999999 NOCACHE NOCYCLE;

    Oracle RUNNUM

    对于 Oracle 的 rownum 问题,很多资料都说不支持>,>=,=,between...and,只能用以上符号(,>=,=,between..and 时会提示SQL语法错误,而是经常是查不出一条记录来,还会出现似乎是莫名其妙的结果来,其实您只要理解好了这个 rownum 伪列的意义就不应该感到惊奇,同样是伪列,rownum 与 rowid 可有些不一样。

    rownum是伪列,意思就是数据库中并不存在的列,它是只有在显示了第一行时才给出一个值 1,下一行则在上一行的值上加1,所以如果rownum>2 则不会有任何匹配的记录。由于rownum>2不匹配第一行记录,所以第一行不显示,记录跳到第二行,第二行又会被rownum重新写上值 1,这样第二行又不匹配。以此类推造成每行记录输出的rownum值永远停在1上,并由于条件rownum>2造成所有行都不被显示。(先有结果集才有rownum,任何时候想把 rownum = 1 这条记录抛弃是不对的,它在结果集中是不可或缺的,少了rownum=1 就像空中楼阁一般不能存在,所以你的 rownum 条件要包含到 1) 如果你想分页就必需将伪列转化为实际列,即将有伪列的查询做为子查询处理,简单的作为两次查询就可以了。 例如:select c.* from( select a.*,rownum rm from employees a) c where c.rm between 1 and 10 -- 分页查询前十条记录

    rowid 与 rownum 虽都被称为伪列,但它们的存在方式是不一样的,rowid 可以说是物理存在的,表示记录在表空间中的唯一位置ID,在DB中唯一。只要记录没被搬动过,rowid是不变的。rowid 相对于表来说又像表中的一般列,所以以 rowid 为条件就不会有 rownum那些情况发生。 另外还要注意:rownum不能以任何基表的名称作为前缀。

    通过rowid分页查询 select * from employees where rowid in ( --这里选择要查询出的字段 select rid from (select rownum rn, rid from (select rowid rid, salary from employees order by salary desc) --这里进行表排序 where rownum < 8 --这里是上限 ) where rn > 5 --这里是下限 ) order by salary desc --这里再次排序

    Oracle 同义词(synonyms )

    同义词概念

    Oracle的同义词(synonyms) 从字面上理解就是别名的意思,和视图的功能类似,就是一种映射关系。它可以节省大量的数据库空间,对不同用户的操作同一张表没有多少差别;它扩展了数据库 的使用范围,能够在不同的数据库用户之间实现无缝交互;Oracle数据库中提供了同义词管理的功能。同义词是数据库对象的一个别名,经常用于简化对象访 问和提高对象访问的安全性。在使用同义词时,Oracle数据库将它翻译成对应方案对象的名字。与视图类似,同义词并不占用实际存储空间,只有在数据字典 中保存了同义词的定义。

    Oracle同义词有两种类型,分别是Oracle公用同义词与Oracle私有同义词。普通用户创建的同义词一般都是私有同义词,公有同义词一般由DBA创建,普通用户如果希望创建同义词,则需要CREATE PUBLIC SYNONYM这个系统权限。

    1)Oracle公用同义词:由一个特殊的用户组Public所拥有。顾名思义,数据库中所有的用户都可以使用公用同义词。公用同义词往往用来标示一些比较普通的数据库对象,这些对象往往大家都需要引用。

    2)Oracle私有同义词:它是跟公用同义词所对应,他是由创建他的用户所有。当然,这个同义词的创建者,可以通过授权控制其他用户是否有权使用属于自己的私有同义词。

    同义词作用

    1) 多用户协同开发中,可以屏蔽对象的名字及其持有者。public同义词只是为数据库对象定义了一个公共的别名,其他用户能否通过这个别 名访问这个数据库对象,还要看是否已经为这个用户授权。

    2)为分布式数据库的远程对象提供位置透明性。

    4)Oracle同义词在数据库链接中的作用,数据库链接是一个命名的对象,说明一个数据库到另一个数据库的路径,通过其可以实现不同数据库之间的通信。

    Create database link 数据库链名 connect to user名 identified by 口令 using ‘Oracle连接串’; 访问对象要通过 object名@数据库链名。同义词在数据库链中的作用就是提供位置透明性。

    [ 责任编辑:来源网络 ]

    展开全文
  • Oracle Database 中对同义词的操作Operations on Synonyms in Oracle Database06/08/2017本文内容Oracle 数据库适配器Oracle Database adapter允许你对同义词执行操作。The Oracle 数据库适配器Oracle Database ...
  • right_arrow_curving_left:在浏览器中打开突出显示的条目SHIFT —使用quicklook预览突出显示的条目的页面结果产生的同义词或反义词将根据用户评级顺序列出。发展使用init.sh脚本将所需的依赖项安装在src文件夹中。 ...
  • 我正在创建一个同义词列表,我将它存储在数据库中并在进行全文搜索之前检索它.当用户输入如下:word1我需要在我的同义词表中查找这个单词.所以,如果找到这个单词,我会选择这个单词的所有同义词,并在下一个查询的全文...
  • 同义词挖掘一般有三种思路,借助已有知识库,上下文相关性,文本相似度。 1.1 知识库 可以借助已有知识库得到需要同义词,比如说《哈工大信息检索研究室同义词词林扩展版》和 HowNet,其中《词林》文件数据如下。 ...
  • 查找类似的汉字,同音异义词,同义词! 该解决方案由以下列出的几个模块组成。 模组 聚合器 这是一个控制台应用程序,它结合了多个词典以及数据,并生成各种聚合数据,这些数据可随时在后端使用。 基本上只运行一...
  • 每天随机学两条SQL语句: 查询用户权限:select * from session_privs; 以管理员登录:sqlplus / as sysdba;...可以把同义词建成共有的,这样大家就都能访问了。 create public synonym d_sum for dept_sum_vu;
  • 概念: 从一个或多个表或视图中导出的虚表,其结构和数据是建立在对表的查询... 创建同义词: CREATE [PUBLIC] SYNONYM 同义词名 FOR 对象名; public 选项表示所有用户均可使用. 删除同义词: DROP SYNONYM dept_seq;
  • oracle不想mysql一样,可以让某一的值自动增长的特性,但是提供了序列来解决这个问题。 1.2、创建与使用简单序列 创建序列语法: create sequence 序列名称 通过序列的伪来访问序列的值 NEXTVAL 返回序列的下...
  • oracle同义词和序列

    2010-09-17 09:20:20
    oracle 数据库中,同义词和序列的概念,特别是同义词,概念往往被人忽略,这里讲解的很清楚
  • 目录 一、数据库对象 ...二、同义词synonym 三、序列 四、视图 五、索引 六、综合代码 1.同义词部分: 2.序列: 3.视图和索引 一、数据库对象 1.数据库对象 2.同义词 3.序列 4.视图 5.索引 ......
  • 通过深入分析当前针对中文的基于同义词替换的自然语言信息隐藏算法,发现由于存在大量不完全可替换的同义词词组,经过同义词替换后可能会破坏句子的语义一致性。针对这一缺点,提出了一种改进的基于同义词替换的中文...
  • Oracle中的视图和同义词

    千次阅读 2016-11-26 16:04:18
    但是,与公用同义词不同,无论是否给其他用户授予如何使用方案同义词所对应的对象的对象权限,都不能够使用方案同义词,因为同义词是私有的。也就是说,如果有一张USER表。用户A虽然有CREATE ANY SYNONYM权限,...
  • 介绍如何通过 Oracle 数据字典查看视图、序列、存储过程/函数、程序包、触发器、同义词、计划任务以及对象之间的依赖关系等信息。
  • 主要讲解视图、序列、索引、同义词
  • 1. 数据库对象之【视图... 视图是一种数据库对象,是从一个或多个数据库表或视图中查询或计算结果的虚拟表,视图对应的数据并不是真正存储在视图中,而是存在于实际引用的数据库表中,视图的构成可以是单表查询...
  • 3.3 同义词 3.3.1 什么是同义词 同义词就是别名,可以给表、视图等起别名 同义词意义: 同义词允许基对象重命名或者移动,这时,只需对同义词进行重定义,基于同义词的应用程序可以继续运行而无需修改 3.3.2 同义词...
  • 权限:权限和同义词一般要一起设置,设置同义词后,查其他用户的表就不需要写其他用户的用户名。因此 在 user1 下 有表 table1,现在 user2 要使用 table1 1.设权限 :grant select on table1to user2; (设置之后...
  • 【其实论文看到一半就觉得好像有点不对劲,因为我们的任务是做wordnet,这个是在已经有了wordnet情况下,根据特定的语料库来提取同义词和反义词……不过我觉得思想应该是差不多的,就继续看了】 【啊看完了,后面要...
  • 同义词:使用对象(Table,View,同义词)的一个别名,不占用任何实际的存储空间,只是在Oracle的数据字典中保存其定义描述,在使用同义词时,Oracle会将其翻译为对应对象的名称。  作用:屏蔽对象的名字及其持有者...
  • 如果公司主要为其他公司发展,则应将其放在“近岸”类别中(此列表的近岸可以被视为“外包”或“代理商”的同义词) 仅添加具有“职业”页面的公司,否则添加带有LinkedIn定期发布的空缺的公司。 这样做是为了将...
  • 1.1.使用同义词 1.2.同义词格式 1.3.扩展或收缩 简单扩展 简单收缩 类型扩展 1.4.同义词和分析链 大小写敏感的同义词 1.5.多词同义词和短语查询 使用简单收缩进行短语查询 同义词与 query_string 查询 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,526
精华内容 10,210
关键字:

列出同义词