永发信息网

数据库中怎么创建索引

答案:2  悬赏:70  手机版
解决时间 2021-01-02 13:12
数据库中怎么创建索引
最佳答案
问题一:oracle 数据库如何建立索引 如何用索引? 5分方法如下:
Oracle中建立索引,会提高查询速度: create index 索引名 on 表名(列名);
例如:
create index index_userid on tbl_detail(userid);
如何找数据库表的主键字段的名称?
SELECt * FROM user_constraints WHERe CONSTRAINT_TYPE='P' and table_name='AAA'; select * from dba_cons_columns where CONSTRAINT_NAME='SYS_AAA';
Oracle 在创建主键(可以不加constrai浮t SYS_AAA),会为库表自动创建索引,
索引的列为主键列。 并且当库表某些列名或者库表名改变时候,
Oracle自动创建的索引SYS_AAA,中的索引列也会自动更新(类似于视图),并且SYS_AAA会与名字更改后的库表还是保持索引关系。 关键系统库表: desc dba_constraints desc dba_cons_columns
desc dba_indexes desc dba_ind_columns desc DBA_TAB_COLUMNS
例子1:更改库表的列名
ALTER TABLE AAA RENAME COLUMN ID TO AAA_ID; create table AAA ( ID NUMBER(8), NAME CHAr(20),
constraint SYS_AAA primary key(ID) );
//查找约束名字
select c.CONSTRAINT_NAME,c.table_name,cc.COLUMN_NAME from user_constraints c, user_cons_columns cc
where c.constraint_name=cc.constraint_name and c.table_name ='AAA' AND C.CONSTRAINT_TYPE='P';
CONSTRAINT_NAME TABLE_NAME COLUMN_NAME ------------------------------ ------------ ------------- SYS_AAA AAA ID
//查找索引
select index_name,index_type,uniqueness from user_indexes where table_name='AAA'; INDEX_NAME INDEX_TYPE UNIQUENES问题二:为什么数据库表要建立索引 索引是以表列为基础的数据库对象。索引中保存着表中排序的索引列,并且纪录了索引列在数据库表中的物理存储位置,实现了表中数据的逻辑排序。通过索引,可以加快数据的查询速度和减少系统的响应时间;可以使表和表之间的连接速度加快。 用SQL建立索引: 为了给一个表建立索引,启动任务栏SQL Sever程序组中的ISQL/w程序。进入查询窗口后,输入下面的语句: CREATE [UNIQUE] [CLUSER] INDEX ON (); UNIQUE 表明此索引的每一个索引值只对应唯一的数据记录 CLUSTER 表明要建立的是聚簇索引(指索引项的顺序与表中记录的物理顺序一致) 例:CREATE CLUSER INDEX Stuname ON Student(Sname); 在student表的sname列建立一个聚簇索引,student中记录按照sname值的升序排列 参考资料: 问题三:数据库索引有哪几种,怎样建立索引 索引分为聚簇索引和非聚簇索引两种,聚簇索引 是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快。 根据数据库的功能,可以在数据库设计器中创建三种索引:唯一索引、主键索引和聚集索引。 在数据库表中创建的索引可以是是唯一索引、主键索引和聚集索引 景安服务器即使为您解答问题四:如何正确合理的建立MYSQL数据库索引 如何正确合理的建立MYSQL数据库索引
索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型。
在数据库表中,对字段建立索引可以大大提高查询速度。假如我们创建了一个 mytable表:
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAr(16) NOT NULL
); 我们随机向里面插入了10000条记录,其中有一条:5555, admin。
在查找username=admin的记录 SELECt * FROM mytable WHERe
username='admin';时,如果在username上已经建立了索引,MySQL无须任何扫描,即准确可找到该记录。相反,MySQL会扫描所有记录,即要查询10000条记录。
索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索包含多个列。
MySQL索引类型包括:
(1)普通索引
这是最基本的索引,它没有任何限制。它有以下几种创建方式:
◆创建索引
CREATE INDEX indexName ON mytable(username(length));
如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定 length,下同。
◆修改表结构
ALTER mytable ADD INDEX [indexName] ON (username(length))
◆创建表的时候直接指定
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAr(16) NOT NULL,
INDEX [indexName] (username(length)) ); 删除索引的语法:
DROp INDEX [indexName] ON mytable;
(2)唯一索引
它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:
◆创建索引
CREATE UNIQUE INDEX indexName ON mytable(username(length))
◆修改表结构
ALTER mytable ADD UNIQUE [indexName] ON (username(length))
◆创建表的时候直接指定
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAr(16) NOT NULL,
UNIQUE [indexName] (username(length)) );
(3)主键索引
它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引:
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAr(16) NOT NULL,
PRIMARY KEY(ID) ); 当然也可以用 ALTER 命令。记住:一个表只能有一个主键。
(4)组合索引
为了形象地对比单列索引和组合索引,为表添加多个字段:
CREATE TABLE mytable( ID INT......余下全文>>问题五:数据库创建索引后怎么使用 索引在筛选率低于一定的值的情况是会很有效果.
主要还是看你的查贰语句是怎么写的.
记住,在筛选条件中,不要在字段上使用函数.查询条件要尽量简单.能够让数据库引擎更好地分析到合适的执行计划.问题六:在数据表中索引有什么用,怎么建立索引 索引是以表列为基础的数据库对象。索引中保存着表中排序的索引列,并且纪录了索引列在数据库表中的物理存储位置,实现了表中数据的逻辑排序。通过索引,可以加快数据的查询速度和减少系统的响应时间;可以使表和表之间的连接速度加快。
用SQL建立索引:
为了给一个表建立索引,启动任务栏SQL Sever程序组中的ISQL/w程序。进入查询窗口后,输入下面的语句:CREATE [UNIQUE] [CLUSER] INDEX ON ();
UNIQUE 表明此索引的每一个索引值只对应唯一的数据记录
CLUSTER 表明要建立的是聚簇索引(指索引项的顺序与表中记录的物理顺序一致)
例:CREATE CLUSER INDEX Stuname ON Student(Sname);
在student表的sname列建立一个聚簇索引,student中记录按照sname值的升序排列
参考资料:问题七:sql怎么建立索引 CREATE INDEX
为给定表或视图创建索引。
只有表或视图的所有者才能为表创建索引。表或视图的所有者可以随时创建索引,无论表中是否有数据。可以通过指定限定的数据库名称,为另一个数据库中的表或视图创建索引。
语法
CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name
ON { table | view } ( column [ ASC | DESC ] [ ,...n ] )
[ WITH [ ,...n] ]
[ ON filegroup ]
::=
{ PAD_INDEX |
FILLFACTOR = fillfactor |
IGNORE_DUP_KEY |
DROP_EXISTING |
STATISTICS_NORECOMPUTE |
SORT_IN_TEMPDB
}
--这是基本语法,建立索引,只针对查询和一些更新和删除的速度,像性别一列,如果表里面有1000行,如果只有1行是男,这样用索引的话肯定高,如果有990行是男,那么它不如直接扫描了,这是选择性问题八:SQL server中 表中如何创建索引? if exists(select *from sys.objects where naem = 'newindex')
drop index newindex
create index
--===================================
竟然没有悬赏...唉...
那算了吧
我还是都告诉你吧..
看个示例
自己琢磨去:
--==============================================
use master
go
if db_id(N'zhangxu')is not null
drop database zhangxu
go
create database zhangxu
sp_helpdb zhangxu
use zhangxu
go
IF EXISTS (SELECT *FROM SYS.OBJECTS WHERe NAME = N'WORKER')
DROP TABLE WORKER
GO
create table worker
(
w_id int identity (1000,1) not null,
w_name Nvarchar(10) unique,
w_age SMALLINT CONSTRAINT CK_W_AGE CHECK(w_age>20 and w_age>问题九:请问数据库的索引创建后要怎么用啊? 索引要针对where语句中频繁出现的字段创建,索引增加查询检索效率,降低插入速度,耗费硬盘空间问题十:创建索引的sql语句怎么写 CREATE [UNIQUE|CLUSTERED] INDEX INDEX_NAME ON TABLE_NAME(PROPERTY_NAME)
其中UNIQUE和CLUSTER叮D为可选项,分别是建立唯一索引和聚簇索引,具体解释为:
UNIQUE:表示此索引的每一个索引值只对应唯一的数据。
CLUSTERED:表示要建立的索引时聚簇索引,即索引项的顺序与表中记录的物理顺序一致的索引组织。
希望采纳!
全部回答
好好学习下
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
形容无所谓,把周围的事物当作不存在的词语
求救:家里的鱼死了,怎么办?
华北英语怎么说
剑帝加什么属性
佛祖在楞严经中说:“诸修行人,不能得成无上
抓钱舞的背景音乐是什么?
dnf别用和米特斯丁那个好
每天销售占比怎么算
请问,一道物理题,如图1, (1)
广发信用卡额度一般是多少的?提高额度难吗?
请教pro/E,怎么画图中凹下去的那部分?弹
根据反应速率的大小,一定可以知道化学反应的
网上订机票座位怎么选
第一次去丈母娘家,买六样礼品,我已经买了香
亲爱的日语怎么读
推荐资讯
小叶红檀和小叶紫檀哪个好
移植后生化是什么感觉
机动车绿本叫什么
杭州公交k357.k805和k31路几点发车
羊肉火锅要怎么做才能去掉膻味
户撒人家过手米线在哪里啊,我有事要去这个地
已知一次函数y=ax+b(a≠O)的图象如图所示,
彭水苗族土家族自治县人民检察院办公位置在哪
综合性学习在“脚踏一方土”综合性学习活动中
单选题自行车是一种环保型的交通工具,很适合
ESC+D键桌面什么都没有了怎么办?
下列数据最接近实际的是A.普通电视机正常工作
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?