SQL CREATE INDEX statement
SQL CREATE INDEX
Statements are used to create indexes in tables.
Indexes are used to retrieve data from a database faster than other ways. The user cannot see the index, they are just used to speed up search/queries.
Notice:It takes more time to update tables with indexes than to update tables without indexes (because indexes also need to be updated). Therefore, only indexes are created on columns that are frequently searched.
CREATE INDEX Syntax
Create an index on the table. Repeat values are allowed:
CREATE INDEX index_name ON table_name (column1, column2, ...);
The syntax for creating a unique index is as follows:
CREATE UNIQUE INDEX index_name ON table_name (column1, column2, ...);
Notice:The syntax for creating indexes varies in different databases. So, check the syntax for creating indexes in your database.
CREATE INDEX Example
The following SQL statement creates an index named "idx\_lastname" on the "LastName" column of the "Persons" table:
CREATE INDEX idx_lastname ON Persons (LastName);
If you want to create an index on a combination of multiple columns, you can list the column names in brackets, separated by commas:
CREATE INDEX idx_pname ON Persons (LastName, FirstName);
DROP INDEX statement
DROP INDEX
Statements are used to delete indexes in tables.
MS Access:
DROP INDEX index_name ON table_name;
SQL Server:
DROP INDEX table_name.index_name;
DB2/Oracle:
DROP INDEX index_name;
MySQL:
ALTER TABLE table_name DROP INDEX index_name;
These SQL statements allow you to create indexes in the database to improve the efficiency of data retrieval. If the index is no longer needed, you can also use itDROP INDEX
The statement deletes it.
SQL AUTO INCREMENT Field
AUTO INCREMENT
Allows automatic generation of unique numbers when inserting new records into tables. Usually, this is the primary key field we want to automatically create every time a new record is inserted.
MySQL Syntax
The following SQL statement defines the "Personid" column as an auto-increment primary key field in the "Persons" table:
CREATE TABLE Persons ( Personid int NOT NULL AUTO_INCREMENT, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, PRIMARY KEY (Personid) );
MySQL usageAUTO_INCREMENT
Keywords to perform automatic incrementing function. By default,AUTO_INCREMENT
The starting value of is 1, and it will increment by 1 for every new record inserted.
To makeAUTO_INCREMENT
The sequence starts with another value, please use the following SQL statement:
ALTER TABLE Persons AUTO_INCREMENT=100;
To insert a new record into the "Persons" table, we will not need to specify a value for the "Personid" column (a unique value will be added automatically):
INSERT INTO Persons (FirstName, LastName) VALUES ('Lars', 'Monsen');
The above SQL statement will insert a new record in the "Persons" table. The "Personid" column will be assigned a unique value. The "FirstName" column will be set to "Lars", and the "LastName" column will be set to "Monsen".
SQL Server Syntax
The following SQL statement defines the "Personid" column as an auto-increment primary key field in the "Persons" table:
CREATE TABLE Persons ( Personid int IDENTITY(1,1) PRIMARY KEY, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int );
MS SQL Server UseIDENTITY
Keywords perform automatic incrementing function. In the example above,IDENTITY
The starting value of is 1, and it will increment by 1 for every new record inserted.
hint:To specify that the "Personid" column should be incremented by 5 starting from the value 10, change it toIDENTITY(10,5)
。
To insert a new record into the "Persons" table, we will not need to specify a value for the "Personid" column (a unique value will be added automatically):
INSERT INTO Persons (FirstName, LastName) VALUES ('Lars', 'Monsen');
The above SQL statement will insert a new record in the "Persons" table. The "Personid" column will be assigned a unique value. The "FirstName" column will be set to "Lars", and the "LastName" column will be set to "Monsen".
Access syntax
The following SQL statement defines the "Personid" column as an auto-increment primary key field in the "Persons" table:
CREATE TABLE Persons ( Personid AUTOINCREMENT PRIMARY KEY, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int );
MS Access UseAUTOINCREMENT
Keywords perform automatic incrementing function. By default,AUTOINCREMENT
The starting value of is 1, and it will increment by 1 for every new record inserted.
hint:To specify that the "Personid" column should be incremented by 5 starting from the value 10, please turn theAUTOINCREMENT
Change toAUTOINCREMENT(10,5)
。
To insert a new record into the "Persons" table, we will not need to specify a value for the "Personid" column (a unique value will be added automatically):
INSERT INTO Persons (FirstName, LastName) VALUES ('Lars', 'Monsen');
The above SQL statement will insert a new record in the "Persons" table. The "Personid" column will be assigned a unique value. The "FirstName" column will be set to "Lars", and the "LastName" column will be set to "Monsen".
Oracle Syntax
In Oracle, the code will be more complicated. You will have to use a sequence object, which generates a sequence of numbers to create an auto-increment field.
Use the followingCREATE SEQUENCE
grammar:
CREATE SEQUENCE seq_person MINVALUE 1 START WITH 1 INCREMENT BY 1 CACHE 10;
The above code creates a name calledseq_person
The sequence object of , incremented by 1 from 1. It will also cache up to 10 values for performance. The cache option specifies how many sequence values will be stored in memory to speed up access.
To insert a new record into the "Persons" table, we must usenextval
function, this function fromseq_person
Sequence searches for the next value:
INSERT INTO Persons (Personid, FirstName, LastName) VALUES (seq_person.nextval, 'Lars', 'Monsen');
The above SQL statement will insert a new record in the "Persons" table. The "Personid" column will be assignedseq_person
The next number of the sequence. "FirstName" column
The above is a detailed explanation of the key steps for SQL CREATE INDEX to improve database retrieval efficiency. For more information about SQL CREATE INDEX database retrieval, please pay attention to my other related articles!