74 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			74 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								title: SQL CREATE INDEX Statement
							 | 
						|||
| 
								 | 
							
								localeTitle: SQL CREATE INDEX语句
							 | 
						|||
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								CREATE INDEX语句用于在表中创建索引。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								索引用于非常快速地从数据库中检索数据。用户无法看到索引,它们只是用于加速搜索/查询。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								> **注意:**使用索引更新表比没有表更新表需要更多时间(因为索引也需要更新)。因此,只在经常搜索的列上创建索引。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#### CREATE INDEX语法
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								在表上创建索引。允许重复的值:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```sql
							 | 
						|||
| 
								 | 
							
								CREATE INDEX index_name 
							 | 
						|||
| 
								 | 
							
								 ON table_name (column1, column2, ...); 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#### CREATE UNIQUE INDEX语法
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								在表上创建唯一索引。不允许重复值:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```sql
							 | 
						|||
| 
								 | 
							
								CREATE UNIQUE INDEX index_name 
							 | 
						|||
| 
								 | 
							
								 ON table_name (column1, column2, ...); 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								> **注意:**创建索引的语法因不同的数据库而异。因此:检查在数据库中创建索引的语法。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#### CREATE INDEX示例
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								下面的SQL语句在“Persons”表的“LastName”列中创建名为“idx\_lastname”的索引:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```sql
							 | 
						|||
| 
								 | 
							
								CREATE INDEX idx_lastname 
							 | 
						|||
| 
								 | 
							
								 ON Persons (LastName); 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								如果要在列组合上创建索引,可以在括号中列出列名,用逗号分隔: CREATE INDEX idx\_pname
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```sql
							 | 
						|||
| 
								 | 
							
								ON Persons (LastName, FirstName); 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#### DROP INDEX声明
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								DROP INDEX语句用于删除表中的索引。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								**MS Access:**
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```sql
							 | 
						|||
| 
								 | 
							
								DROP INDEX index_name ON table_name; 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								**SQL Server:**
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```sql
							 | 
						|||
| 
								 | 
							
								DROP INDEX table_name.index_name; 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								**DB2 / Oracle数据库:**
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```sql
							 | 
						|||
| 
								 | 
							
								DROP INDEX index_name; 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								**MySQL的:**
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```sql
							 | 
						|||
| 
								 | 
							
								ALTER TABLE table_name 
							 | 
						|||
| 
								 | 
							
								 DROP INDEX index_name; 
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```
							 |