САМОСТОЯТЕЛЬНОЕ ОБУЧЕНИЕ ДЛЯ ВЕБ РАЗРАБОТЧИКОВ

SQL Учебник

SQL Главная SQL Введение SQL Синтаксис SQL SELECT SQL SELECT DISTINCT SQL WHERE SQL AND, OR, NOT SQL ORDER BY SQL INSERT INTO SQL Значение Null SQL Инструкция UPDATE SQL Инструкция DELETE SQL SELECT TOP SQL MIN() и MAX() SQL COUNT(), AVG() и ... SQL Оператор LIKE SQL Подстановочный SQL Оператор IN SQL Оператор BETWEEN SQL Псевдонимы SQL JOIN SQL JOIN Внутри SQL JOIN Слева SQL JOIN Справа SQL JOIN Полное SQL JOIN Сам SQL Оператор UNION SQL GROUP BY SQL HAVING SQL Оператор Exists SQL Операторы Any, All SQL SELECT INTO SQL INSERT INTO SELECT SQL Инструкция CASE SQL Функции NULL SQL Хранимая SQL Комментарии

SQL База данных

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

SQL Справочник

SQL Ключевые слова MySQL Функции SQL Server функции MS Access функции SQL Операторы SQL Типы данных SQL Краткий справочник

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;

Чтобы вставить новую запись в таблицу "Persons", нам не нужно будет указывать значение для столбца "Personid" (уникальное значение будет добавлено автоматически):

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

Приведенная выше инструкция SQL вставит новую запись в таблицу "Persons". Столбцу "Personid" будет присваивается уникальное значение. Столбец "FirstName" будет иметь значение "Lars", а столбец "LastName"- "Monsen".


Синтаксис для 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 Server использует ключевое слово 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 определяет столбец "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 на AUTOINCREMENT(10,5).

Чтобы вставить новую запись в таблицу "Persons", нам не нужно будет указывать значение для столбца "Personid" (уникальное значение будет добавлено автоматически):

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

Приведенная выше инструкция SQL вставит новую запись в таблицу "Persons". Столбцу "Personid" будет присвоено уникальное значение. Столбец "FirstName" будет иметь значение "Lars", а столбец "LastName" - "Monsen".


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

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

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

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

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

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

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

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

Приведенная выше инструкция SQL вставит новую запись в таблицу "Persons". Столбецу "Personid" будет присвоен следующий номер из последовательности "seq_person". Столбец "FirstName" будет иметь значение "Lars", а столбец "LastName"- "Monsen".