mysql主索引怎么建立 mysql创建主键索引( 二 )


问题二: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
问题三:如何正确合理的建立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)主键索引
它是一种特殊的唯一索引,不允许有空值 。一般是在建表的时候同时创建主键索引:

推荐阅读