SQL CREATE INDEX 语句

SQL CREATE INDEX 语句用于在表中创建索引。

索引用于比其他方式更快地从数据库中检索数据。用户无法看到索引,它们只是用于加速搜索/查询。

注意: 使用索引更新表比不使用索引更新表需要更多的时间(因为索引也需要更新)。因此,只在经常进行搜索的列上创建索引。

CREATE INDEX 语法

在表上创建索引。允许重复值:

CREATE INDEX index_name
ON table_name (column1, column2, ...);

创建唯一索引的语法如下:

CREATE UNIQUE INDEX index_name
ON table_name (column1, column2, ...);

注意: 创建索引的语法在不同的数据库中有所不同。因此,请检查您的数据库中创建索引的语法。

CREATE INDEX 示例

下面的 SQL 语句在 "Persons" 表的 "LastName" 列上创建一个名为 "idx_lastname" 的索引:

CREATE INDEX idx_lastname
ON Persons (LastName);

如果要在多列的组合上创建索引,可以在括号内列出列名,用逗号分隔:

CREATE INDEX idx_pname
ON Persons (LastName, FirstName);

DROP INDEX 语句

DROP INDEX 语句用于删除表中的索引。

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;

通过这些 SQL 语句,您可以在数据库中创建索引,提高数据检索的效率。如果索引不再需要,也可以使用 DROP INDEX 语句将其删除。

SQL AUTO INCREMENT字段

AUTO INCREMENT 允许在将新记录插入表时自动生成唯一编号。通常,这是我们希望每次插入新记录时自动创建的主键字段。

MySQL 语法

以下 SQL 语句在 "Persons" 表中定义了 "Personid" 列为自动递增主键字段:

CREATE TABLE Persons (
Personid int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (Personid)
);

MySQL 使用 AUTO_INCREMENT 关键字来执行自动递增功能。默认情况下,AUTO_INCREMENT 的起始值为 1,每插入一条新记录它就会递增 1。

要让 AUTO_INCREMENT 序列从另一个值开始,请使用以下 SQL 语句:

ALTER TABLE Persons AUTO_INCREMENT=100;

要将新记录插入 "Persons" 表中,我们将无需为 "Personid" 列指定值(将自动添加唯一值):

INSERT INTO Persons (FirstName, LastName)
VALUES ('Lars', 'Monsen');

上面的 SQL 语句将在 "Persons" 表中插入一条新记录。 "Personid" 列将被分配一个唯一值。 "FirstName" 列将设置为 "Lars",而 "LastName" 列将设置为 "Monsen"。

SQL Server 语法

以下 SQL 语句在 "Persons" 表中定义了 "Personid" 列为自动递增主键字段:

CREATE TABLE Persons (
Personid int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);

MS SQL Server 使用 IDENTITY 关键字执行自动递增功能。在上面的示例中,IDENTITY 的起始值为 1,每插入一条新记录它就会递增 1。

提示: 要指定 "Personid" 列应从值 10 开始递增 5,请将其更改为 IDENTITY(10,5)

要将新记录插入 "Persons" 表中,我们将无需为 "Personid" 列指定值(将自动添加唯一值):

INSERT INTO Persons (FirstName, LastName)
VALUES ('Lars', 'Monsen');

上面的 SQL 语句将在 "Persons" 表中插入一条新记录。 "Personid" 列将被分配一个唯一值。 "FirstName" 列将设置为 "Lars",而 "LastName" 列将设置为 "Monsen"。

Access 语法

以下 SQL 语句在 "Persons" 表中定义了 "Personid" 列为自动递增主键字段:

CREATE TABLE Persons (
Personid AUTOINCREMENT PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);

MS Access 使用 AUTOINCREMENT 关键字执行自动递增功能。默认情况下,AUTOINCREMENT 的起始值为 1,每插入一条新记录它就会递增 1。

提示: 要指定 "Personid" 列应从值 10 开始递增 5,请将 AUTOINCREMENT 更改为 AUTOINCREMENT(10,5)

要将新记录插入 "Persons" 表中,我们将无需为 "Personid" 列指定值(将自动添加唯一值):

INSERT INTO Persons (FirstName, LastName)
VALUES ('Lars', 'Monsen');

上面的 SQL 语句将在 "Persons" 表中插入一条新记录。 "Personid" 列将被分配一个唯一值。 "FirstName" 列将设置为 "Lars",而 "LastName" 列将设置为 "Monsen"。

Oracle 语法

在 Oracle 中,代码会复杂一些。您将不得不使用序列对象,此对象生成一个数字序列,来创建一个自动递增字段。

使用以下 CREATE SEQUENCE 语法:

CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10;

上面的代码创建了一个名为 seq_person 的序列对象,从 1 开始递增 1。 它还将缓存最多 10 个值以提高性能。 缓存选项指定了将存储在内存中以加快访问速度的多少个序列值。

要将新记录插入 "Persons" 表中,我们必须使用 nextval 函数,此函数从 seq_person 序列检索下一个值:

INSERT INTO Persons (Personid, FirstName, LastName)
VALUES (seq_person.nextval, 'Lars', 'Monsen');

上面的 SQL 语句将在 "Persons" 表中插入一条新记录。 "Personid" 列将被分配 seq_person 序列的下一个数字。 "FirstName" 列

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

SQL CREATE INDEX 语句- 提高数据库检索效率的关键步骤的更多相关文章

  1. SQL-W3School-高级:SQL CREATE INDEX 语句

    ylbtech-SQL-W3School-高级:SQL CREATE INDEX 语句 1.返回顶部 1. CREATE INDEX 语句用于在表中创建索引. 在不读取整个表的情况下,索引使数据库应用 ...

  2. SQL CREATE INDEX 语句

    CREATE INDEX 语句用于在表中创建索引. 在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据. 索引 您可以在表中创建索引,以便更加快速高效地查询数据. 用户无法看到索引,它们只 ...

  3. Create Index语句的Include作用

    在 SQL Server 2005 中,可以通过将非键列添加到非聚集索引的叶级别来扩展非聚集索引的功能.通过包含非键列,可以创建覆盖更多查询的非聚集索引.这是因为非键列具有下列优点: 它们可以是不允许 ...

  4. java提高数据库访问效率代码优化

    package com.jb.jubmis.comm; import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQL ...

  5. 如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集?

    如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集?(2006-12-14 09:25:36) 与这个问题具有相同性质的其他描述还包括:如何 ...

  6. SQL DROP INDEX 语句

    SQL DROP INDEX 语句 我们可以使用 DROP INDEX 命令删除表格中的索引. 用于 Microsoft SQLJet (以及 Microsoft Access) 的语法: DROP ...

  7. SQL-W3School-高级:SQL CREATE TABLE 语句

    ylbtech-SQL-W3School-高级:SQL CREATE TABLE 语句 1.返回顶部 1. CREATE TABLE 语句 CREATE TABLE 语句用于创建数据库中的表. SQL ...

  8. SQL-W3Chool-高级:SQL CREATE DATABASE 语句

    ylbtech-SQL-W3Chool-高级:SQL CREATE DATABASE 语句 1.返回顶部 1. CREATE DATABASE 语句 CREATE DATABASE 用于创建数据库. ...

  9. 如何使用CREATE INDEX语句对表增加索引?

    创建和删除索引索引的创建可以在CREATE TABLE语句中进行,也可以单独用CREATE INDEX或ALTER TABLE来给表增加索引.删除索引可以利用ALTER TABLE或DROP INDE ...

  10. SQL CREATE TABLE 语句\SQL 约束 (Constraints)\SQL NOT NULL 约束\SQL UNIQUE 约束

    CREATE TABLE 语句 CREATE TABLE 语句用于创建数据库中的表. SQL CREATE TABLE 语法 CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据 ...

随机推荐

  1. java基础集合类之ArrayList---01

    集合类之ArrayList ArrayList<E>: 1.可调整大小的数组实现 2.<E>:是一种特殊的数据类型,泛型 3.在出现E的地方我们使用引用数据类型替换即可:Arr ...

  2. 【Azure App Service】Web Job 报错 UNC paths are not supported. Defaulting to Windows directory.

    问题描述 PHP的Web Job,通过artisan来配置路径启动PHP任务,相关启动脚本如下: artisan_path = "d:\\home\\site\\wwwroot"; ...

  3. 2024年,提升Windows开发和使用体验实践 - 终端&命令行篇

    前言 经过前面的铺垫,终于继续更新了,这个大概率是本系列近期的最后一篇了. 同时之前有些内容更新,我也补充到这一篇里面. 关于 scoop 管理器的补充 scoop 常用命令 scoop help # ...

  4. C++ 错误 具有类型“const sort”的表达式会丢失一些 const-volatile 限定符以调用“bool sort::operator ()(int,int)” 如下:环境 vs2019 内容:set内置函数排序

    C++ 错误 具有类型"const sort"的表达式会丢失一些 const-volatile 限定符以调用"bool sort::operator ()(int,int ...

  5. Visual Studio部署C++环境下OpenCV库

      本文介绍在Visual Studio 2022中配置.编译C++计算机视觉库OpenCV的方法. 1 OpenCV库配置   首先,我们进行OpenCV库的下载与安装.作为一个开源的库,我们直接在 ...

  6. 图片动态操作,利用SeekBar控制属性示例,适配屏幕解决方案

    需求为,让图片适配屏幕大小,并且可以用一个滑块来控制图片的旋转,用一个滑块来控制图片大小,核心语法思路,控制图片的大小, 核心语法为:mImageView.setLayoutParams(new Li ...

  7. 定时器之PWM

    void PWM_Init(void) { RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); RCC_APB2PeriphClockCmd(RC ...

  8. 动态less 解决 vue main.js

    // 引入主题文件 // eslint-disable-next-line no-unused-expressions import('./theme/color/' + config.theme + ...

  9. react 修改页面title - react-document-title

    安装 cnpm install --save react-document-title 引用 import DocumentTitle from 'react-document-title' 代码 & ...

  10. electron 中如何安装或更新 vuejs-devtool 最新稳定版

    手上正在开发的项目是vue3.0 通过添加 vue-cli-plugin-electron-builder 插件生成 electron 项目,项目在开发过程中发现 beta版的 vuejs-devto ...