精华内容
下载资源
问答
  • 索引是关系数据库中用于存放每一条记录的一种...应用系统的性能直接与索引的合理直接有关。下面给出建立索引的方法和要点。§3.5.1 建立索引1. CREATE INDEX命令语法:CREATE INDEXCREATE [unique] INDEX [user.]inde...

    索引是关系数据库中用于存放每一条记录的一种对象,主要目的是加快数据的读取速度和完整性检查。建立索引是一项技术性要求高的工作。一般在数据库设计阶段的与数据库结构一道考虑。应用系统的性能直接与索引的合理直接有关。下面给出建立索引的方法和要点。

    §3.5.1 建立索引

    1. CREATE INDEX命令语法:

    CREATE INDEX

    CREATE [unique] INDEX [user.]index

    ON [user.]table (column [ASC | DESC] [,column

    [ASC | DESC] ] ... )

    [CLUSTER [scheam.]cluster]

    [INITRANS n]

    [MAXTRANS n]

    [PCTFREE n]

    [STORAGE storage]

    [TABLESPACE tablespace]

    [NO SORT]

    Advanced

    其中:

    schema ORACLE模式,缺省即为当前帐户

    index 索引名

    table 创建索引的基表名

    column 基表中的列名,一个索引最多有16列,long列、long raw

    列不能建索引列

    DESC、ASC 缺省为ASC即升序排序

    CLUSTER 指定一个聚簇(Hash cluster不能建索引)

    INITRANS、MAXTRANS 指定初始和最大事务入口数

    Tablespace 表空间名

    STORAGE 存储参数,同create table 中的storage.

    PCTFREE 索引数据块空闲空间的百分比(不能指定pctused)

    NOSORT 不(能)排序(存储时就已按升序,所以指出不再排序)

    2.建立索引的目的:

    建立索引的目的是:

    l 提高对表的查询速度;

    l 对表有关列的取值进行检查。

    但是,对表进行insert,update,delete处理时,由于要表的存放位置记录到索引项中而会降低一些速度。

    注意:一个基表不能建太多的索引;

    空值不能被索引

    只有唯一索引才真正提高速度,一般的索引只能提高30%左右。

    Create index ename_in on emp (ename,sal);

    取消

    评论

    展开全文
  • 1.在企业管理器中,右击要创建索引的表。在弹出的菜单中选择“所有任务”下的“管理索引”命令。 2.在管理索引的窗口中显示了表中已有的索引,点击“新建”按钮。 3.在“列”下选择要创建索引的列。可以选择多达...
         1.在企业管理器中,右击要创建索引的表。在弹出的菜单中选择“所有任务”下的“管理索引”命令。
            2.在管理索引的窗口中显示了表中已有的索引,点击“新建”按钮。
            3.在“列”下选择要创建索引的列。可以选择多达16 列。为获得最佳性能,最好只选择一列或两列。对所选的每一列可指出索引是按升序还是降序组织列值。为索引指定任何其它需要的设置,然后单击“确定”按钮。
            4.还可以使用另外一种方法创建索引:进入表设计器,在上面的空白处右击鼠标,在弹出的菜单中选择“索引/键”命令。
            5.在视图的属性对话框的“索引/键”标签页中,显示了表中已有的索引,以及这些索引的设置。点击“新建”按钮创建一个新的索引。
            6.在“选定的索引”文本框显示了系统分配给新索引的名称。在“列名”下可以选择为一个或多个列创建索引,“顺序”下可以选择列的排序顺序。设置其他的选项之后,点击关闭按钮。
            7.通过本例学习了如何在企业管理器创建索引,可以在管理索引的窗口中创建也可以在表设计器中创建。
    ****************************************************






    本文转自redking51CTO博客,原文链接:http://blog.51cto.com/redking/64350,如需转载请自行联系原作者

    展开全文
  • 1.基本表的创建 create table 表名( [列级完整性约束条件] [, [列级完整性约束条件]]... [,] ); eg: create student(id int primary key, name varchar(20) not null , number varchar(10) unique); //...

    1.基本表的创建

    create table 表名(<列名> <数据类型> [列级完整性约束条件]

    [,<列名> <数据类型> [列级完整性约束条件]]...

    [,<表级完整性约条件>]

    );

    eg: create student(id int primary key, name varchar(20) not null , number varchar(10) unique);

    //unique是完整性约束的一种,用来表示该列的值唯一

    //distincet用在查询中,表示查询出来的结果中该列不会出现重复值


    2.视图的创建(虚表,数据库的数据字典中只存在视图的定义,而不记录数据,数据的存储仍然在基本表中)

    create view 视图名[<列名>[,<列名>]]

    as 子查询

    [with check option]

    eg: create view as select name from student where number='101' with chek option

    其中with check option表示对视图进行insert、update和delete操作时,要保证插入、更新和删除的行满足视图定义中谓词条件(即子查询中的条件表达式)


    3.创建索引

    create [unique] [cluster] index 索引名

    on <表名>(<列名>[<次序>] [,<列名>[<次序>]]...)

    eg: create index no_index on student(number)

    //默认是按照列number升序ASC存放。

    //DESC为降序排序

    //索引可以建立在对应表的一列或者多列上

    //unique 表示此索引值不能重复,对应唯一的数据记录。

    //cluster表示要建立的索引是簇集索引,所谓的簇集索引,指索引项的顺序与表中记录的物理顺序相一致的索引组织。用户可以在查询频率最高的列上建立簇集索引,从而提高查询效率。由于簇集索引是将索引和表记录存放在一起存储,所以一张表最多只能建立一个簇集索引。但是由于更新列中数据时候会导致记录的物理顺序的变更,系统要为维护索引付出代价。


    4.删除表、视图和索引

    drop table 表名;

    drop view 视图名;

    drop index 索引名;

    //删除表后,表中的数据和在表中定义的索引都会自动删除,要谨慎。有的系统中视图也会自动删除,但是Oracle中视图仍然保存在数据字典中。

    //删除视图后,由该视图导出的其他视图仍然存在,需要继续drop

    //建立索引后,由系统来维护他。如果数据被频繁的删除和修改,系统会花很多时间来维护该索引,因此可以删除一些不必要的索引


    4.表的修改

    alter table 表名

    [add <新列名><数据类型>[<完整性约束>]]

    [drop <完整性约束列名>]

    [modify <列名><数据类型>];

    eg:

    alter table student add sex char not null //增加新列和新的完整性约束条件

    alter table student drop unique(number)//删除指定的完整性约束

    alter table student modify number int //修改原有的列定义

    //这里SQL没有提供删除指定列的定义,用户只能通过间接的方法实现这一功能。首先将被删除表中要保留的列及其内容全部复制到一个新表中,然后删除原表,最后将新表重命名为原表的名字即可。

     


    展开全文
  • 通过使用CREATE INDEX命令创建索引基本语法 如下所示: CREATE [UNIQUE][CLUSTERED | NONCLUSTERED] INDEX index_name ON { [database_name.[schama_name]. | schema_name.] table_or_view_name } ( column...

        下面说明如何创建两种类型的索引,一个是聚集的,另一个是非聚集的。通过使用CREATE INDEX命令创建索引基本语法
    如下所示:
     

    CREATE [UNIQUE][CLUSTERED | NONCLUSTERED] INDEX index_name
    ON
       {
        [database_name.[schama_name]. | schema_name.]
        table_or_view_name
       }
    ( column[ASC | OESC][,…n])

                                   CREATE INDEX命令的参数

    参  数 描  述
    [ UNIQUE] 在每个表上只可以有一个主键。但是,如果你希望强制其他非键列是唯一的,可以为创建的索引指定UNIQUE约束。可以在单个表上创建多个UNIQUE索引,并且可以包括那些包含NULL值(尽管在每个列组合上只允许一个NULL值)的列
    [ CLUSTEREO I NONCLUSTERED ] 这个参数指定索引类型.CLUSTERED或NONCLUSTEREO。你只可以拥有一个CLUSTERED索引,但最多可以拥有249个NONCLUST'ERED索引
    index name 定义了新索引的名称
    [database_name.[schama_name]. | schema_name.]
        table_or_view_name
    表示要索引的表或视图
     column 指定用作索引键部分的一个或多个列
    [ ASC I DESC ] 指定了索引的特定列顺序.ASC为升序,DESC为降序

    可以使用ALTER INDEX命令修改既有索引:
    ALTER INDEX iridex_name
    ON object_name
        这个命令包括多个与CREATE INDEX相同的选项,只是你不能使用它来改变使用哪些列以及它们的顺序。这个命令也用来重建或重组织索引。

    --在数据库AdventureWorks中创建新的表。
    USE AdventureWorks
    GO
    CREATE TABLE HumanResources.TerminationReason
    (
       TerminationReasonID smallint IDENTITY(1,1) NOT NULL,
       TerminationReason varchar(50) NOT NULL,
       DepartmentID smallint NOT NULL,
       CONSTRAINT FK_TerminationReason_DepartmentID
       FOREIGN KEY (DepartmentID) REFERENCES
       HumanResources.Department(DepartmentID)
    )   
    --当使用CREATE TABLE或ALTER TABLE在列上创建主键时,主键也会创建索引。
    --在这个示例中,我们先不这样做,而是使用带有ADD CONSTRAINT的ALTER TABLE
    --在TerminationReasonID上创建一个CLUSTERED索引:
    USE AdventureWorks
    GO
    
    ALTER  TABLE  HumanResources.TerminationReason
    ADD CONSTRAINT PK_TerminationReason PRIMARY KEY CLUSTERED (TerminationReasonID)
    --下一步,在DepartmentID列上创建非聚集索引:
    USE AdventureWorks
    GO
    
    CREATE NONCLUSTERED INDEX NCI_TerminationReason_DepartmentID ON
    HumanResources.TerminationReason(DepartmentID)
    

     

    展开全文
  • 一、索引 1.索引定义 索引是由数据库表中一列或者多列组合而成,...缺点:创建和维护索引的时间增加了; 3.索引分类 1,普通索引 这类索引可以创建在任何数据类型中; 2,唯一性索引 使用 UNIQUE 参数可以设...
  • 这篇博文主要是做一些记录,关于MySQL中索引操作一些常用命令的使用:1....2. 创建索引-- index_name可以省略, 创建普通索引ALTER TABLE table_name ADD INDEX index_name (column_list,column_list...
  • 创建全文索引的命令是CREATE FULLTEXT INDEX.部分语法如下所示; CREATE FULLTEXT INDEX ON table_name [ ( { column_name [ TYPE COLUMN type_column_name ] [ LANGUAGE language_term ] } [ ,...n] ) ...
  • MySQL创建索引

    2021-01-19 11:06:23
    加快对数据的访问速度,一般在查询条件WHERE column=或排序条件ORDER BY column中的数据列创建索引命令: ALTER TABLE `table_name` ADD INDEX index_name ( `column` ); 1.2 唯一索引(UNIQUE) 创建唯一索引...
  • 索引 命令

    2019-02-22 01:20:00
    1、创建索引 ALTER TABLE TBL_STUDENT-表名 ADD INDEX INDEX_NAME(STU_NAME-列名) 2、EXPLAIN命令 MySQLEXPLAIN命令用于SQL语句查询执行计划(QEP)。这条命令的输出结果能够让我们了解MySQL 优化器是...
  • SQL 索引的使用

    2007-10-15 22:42:00
    创建索引的方式为: create index index_name> on (Column_names)创建索引之后你该如何使用你的索引呢?其实是这样的.在你用select命令检索你创建了索引的表时,如果你所索引的字段与你创建索引时Column_names的字段相...
  • 写在前边:索引在mysql中是极其重要,它可以大大提高数据查询速度,而且使用起来灵活方便,本章大概聊一下常用的索引类型以及...普通索引(normal)普通索引可以理解为单个字段的索引,可以使用如下命令创建CREATE...
  • 今天来聊一聊零散MySQL基础——SQL命令:DDL、DML、DCL和TCL。 SQL命令 SQL命令分可以分为四组:DDL、DML、DCL和TCL。四组中包含命令分别如下 (图片来源见水印) DDL DDL是数据定义语言(Data ...
  • 如果name字段已经创建索引,如果需要修改话,必须先删除索引才能正确进行。 您可能感兴趣文章:sql server建库、建表、建约束技巧mysql建库时提示Specified key was too long max key length is 1000 bytes...
  • 1、CREATE INDEX语句  CREATE INDEX 语句用于在表中创建索引。... 注释:更新一个包含索引的表需要比更新一个没有索引的表花费更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在...
  • 写在前边:索引在mysql中是极其重要,它可以大大提高数据查询速度,...普通索引可以理解为单个字段的索引,可以使用如下命令创建 CREATE INDEX index_name ON table(column(length)) 或者修改通过表结构方式.
  • 索引的创建与删除不会对表中的数据产生影响。 CREATE INDEX 命令: CREATE INDEX命令的基本语法如下: CREATE INDEX index_name ON table_name; 单列索引: 单列索引基于单一的字段创建,其基本
  • SqlServer 视图索引

    2019-10-02 01:56:34
    在视图上创建索引的另一个好处是:查询优化器开始在查询中使用视图索引,而不是直接在 FROM 子句中命令视图。这样一来,可从索引视图检索数据而无需重新编码,由此带来的高效率也使现有查询获益。在视图上创建的第一...
  • 软件安装:装机软件必备包SQL是Structured Query Language(结构化查询语言)缩写。SQL是专为数据库而建立操作命令集,是一种功能齐全数据库语言。...mysql索引,mysql创建索引,mysql删除索引...
  • background选项指定所创建的索引是应该发送在shell前台还是后台。在前台运行完成速度更快,但占用更多系统资源。所以在生产系统高峰时期,在前台运行不是个好主意。 MongoDB 数据导入导出 导出json...
  • 通过本章内容,你将学会MySQL性能下降的原因,索引的简介,索引创建的原则,explain命令的使用,以及explain输出字段的意义。 这些内容将帮助你了解索引,分析索引,使用索引,从而写出更高性能的sql语句。还在等...
  • MongoDB 慢查询 MongoDB 慢查询记录储存在 system.profile 里,默认情况下是关闭,我们可以在数据库级别上或者是节点级别上配置。...可以通过db.getProfilingLevel()命令来获取当前Profil
  • SQL Server 视图索引

    2014-08-27 17:08:00
    在视图上创建索引的另一个好处是:查询优化器开始在查询中使用视图索引,而不是直接在 FROM 子句中命令视图。这样一来,可从索引视图检索数据而无需重新编码,由此带来的高效率也使现有查询获益。在视图上创建的第一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 401
精华内容 160
关键字:

创建索引的sql命令是