Учебник по SQL

SQL ГЛАВНАЯ Введение в SQL Синтаксис SQL Выбор SQL SQL выбрать отдельный SQL Где SQL И, Или, Не Порядок SQL по SQL вставить в Нулевые значения SQL Обновление SQL SQL Удалить SQL выберите вверху SQL Мин. и Макс. Количество SQL, среднее, сумма SQL нравится Подстановочные знаки SQL SQL входящий SQL между Псевдонимы SQL SQL-соединения Внутреннее соединение SQL Левое соединение SQL SQL правое соединение Полное соединение SQL Самостоятельное присоединение SQL Союз SQL Группа SQL по SQL Имея SQL существует SQL Любой, Все SQL выбрать в SQL вставить в выбор SQL-кейс Нулевые функции SQL Хранимые процедуры SQL Комментарии SQL SQL-операторы

База данных SQL

SQL Создать БД БД SQL Drop Резервная копия базы данных SQL Создание таблицы SQL Таблица удаления SQL Таблица изменений SQL Ограничения SQL SQL не нулевой Уникальный SQL Первичный ключ SQL Внешний ключ SQL Проверка SQL SQL по умолчанию Индекс SQL Автоматическое увеличение SQL Даты SQL Представления SQL SQL-инъекция Хостинг SQL Типы данных SQL

Ссылки на SQL

Ключевые слова SQL Функции MySQL Функции SQL-сервера Функции MS Access Краткое руководство по SQL

Примеры SQL

Примеры SQL SQL-викторина SQL-упражнения SQL-сертификат

Поле SQL AUTO INCREMENT


Поле АВТОИНКРЕМЕНТ

Автоинкремент позволяет автоматически генерировать уникальный номер при вставке новой записи в таблицу.

Часто это поле первичного ключа, которое мы хотели бы создавать автоматически каждый раз, когда вставляется новая запись.


Синтаксис для MySQL

Следующая инструкция SQL определяет столбец «Personid» как поле первичного ключа с автоинкрементом в таблице «Persons»:

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;

Чтобы вставить новую запись в таблицу «Лица», нам НЕ нужно будет указывать значение для столбца «Персонал» (уникальное значение будет добавлено автоматически):

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

Приведенный выше оператор SQL вставит новую запись в таблицу «Люди». Столбцу «Personid» будет присвоено уникальное значение. В столбце «Имя» будет указано «Ларс», а в столбце «Фамилия» будет указано «Монсен».


Синтаксис для SQL Server

Следующая инструкция SQL определяет столбец «Personid» как поле первичного ключа с автоинкрементом в таблице «Persons»:

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

Сервер MS SQL использует IDENTITYключевое слово для выполнения функции автоматического увеличения.

В приведенном выше примере начальное значение IDENTITYравно 1, и оно будет увеличиваться на 1 для каждой новой записи.

Совет: Чтобы указать, что столбец «Идентификатор личности» должен начинаться со значения 10 и увеличиваться на 5, измените его на IDENTITY(10,5).

Чтобы вставить новую запись в таблицу «Лица», нам НЕ нужно будет указывать значение для столбца «Персонал» (уникальное значение будет добавлено автоматически):

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

Приведенный выше оператор SQL вставит новую запись в таблицу «Люди». Столбцу «Personid» будет присвоено уникальное значение. В столбце «Имя» будет указано «Ларс», а в столбце «Фамилия» будет указано «Монсен».



Синтаксис доступа

Следующая инструкция SQL определяет столбец «Personid» как поле первичного ключа с автоинкрементом в таблице «Persons»:

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(10,5).

Чтобы вставить новую запись в таблицу «Лица», нам НЕ нужно будет указывать значение для столбца «Персонал» (уникальное значение будет добавлено автоматически):

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

Приведенный выше оператор SQL вставит новую запись в таблицу «Люди». Столбцу «Personid» будет присвоено уникальное значение. В столбце «Имя» будет указано «Ларс», а в столбце «Фамилия» будет указано «Монсен».


Синтаксис для Oracle

В Oracle код немного сложнее.

Вам нужно будет создать поле автоинкремента с объектом последовательности (этот объект генерирует числовую последовательность).

Используйте следующий CREATE SEQUENCEсинтаксис:

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

Приведенный выше код создает объект последовательности с именем seq_person, который начинается с 1 и увеличивается на 1. Он также кэширует до 10 значений для повышения производительности. Параметр кэша указывает, сколько значений последовательности будет храниться в памяти для более быстрого доступа.

Чтобы вставить новую запись в таблицу «Люди», нам придется использовать функцию nextval (эта функция извлекает следующее значение из последовательности seq_person):

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

Приведенный выше оператор SQL вставит новую запись в таблицу «Люди». Столбцу «Personid» будет присвоен следующий номер из последовательности seq_person. В столбце «Имя» будет указано «Ларс», а в столбце «Фамилия» будет указано «Монсен».