НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ

SQL Підручник

SQL СТАРТ SQL Інтро SQL Синтаксис SQL SELECT SQL SELECT DISTINCT SQL WHERE SQL ORDER BY SQL AND SQL OR SQL NOT SQL INSERT INTO SQL NULL SQL UPDATE SQL DELETE SQL SELECT TOP SQL MIN() and MAX() SQL COUNT() SQL SUM() SQL AVG() SQL LIKE SQL Підстановочні символи SQL IN SQL BETWEEN SQL Псевдоніми SQL JOIN SQL INNER JOIN SQL LEFT JOIN SQL RIGHT JOIN SQL FULL OUTER JOIN SQL Self 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 Create DB SQL Drop DB SQL Backup DB SQL Create Table SQL Drop Table SQL Alter Table SQL Constraints SQL Not Null SQL Unique SQL Primary Key SQL Foreign Key SQL Check SQL Default SQL Index SQL Auto Increment SQL Dates SQL Views SQL Injection SQL Hosting SQL Типи даних

SQL Довідники

SQL Ключові слова MySQL Функції SQL Серверні функції MS Access Функції SQL Швидкий довідник

SQL Приклади

SQL Приклади SQL Редактор SQL Вікторина SQL Вправи SQL Bootcamp SQL Сертифікат

SQL. W3Schools українською. Уроки для початківців

En

SQL AUTO INCREMENT Поле


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

The following SQL statement defines the "Personid" column to be 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
);

The MS SQL Server uses the IDENTITY keyword to perform an auto-increment feature.

In the example above, the starting value for IDENTITY is 1, and it will increment by 1 for each new record.

Tip: To specify that the "Personid" column should start at value 10 and increment by 5, change it to IDENTITY(10,5).

To insert a new record into the "Persons" table, we will NOT have to specify a value for the "Personid" column (a unique value will be added automatically):

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

The SQL statement above would insert a new record into the "Persons" table. The "Personid" column would be assigned a unique value. The "FirstName" column would be set to "Lars" and the "LastName" column would be set to "Monsen".


Syntax for Access

The following SQL statement defines the "Personid" column to be 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
);

The MS Access uses the AUTOINCREMENT keyword to perform an auto-increment feature.

By default, the starting value for AUTOINCREMENT is 1, and it will increment by 1 for each new record.

Tip: To specify that the "Personid" column should start at value 10 and increment by 5, change the autoincrement to AUTOINCREMENT(10,5).

To insert a new record into the "Persons" table, we will NOT have to specify a value for the "Personid" column (a unique value will be added automatically):

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

The SQL statement above would insert a new record into the "Persons" table. The "Personid" column would be assigned a unique value. The "FirstName" column would be set to "Lars" and the "LastName" column would be set to "Monsen".


Syntax for Oracle

In Oracle the code is a little bit more tricky.

You will have to create an auto-increment field with the sequence object (this object generates a number sequence).

Use the following CREATE SEQUENCE syntax:

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

The code above creates a sequence object called seq_person, that starts with 1 and will increment by 1. It will also cache up to 10 values for performance. The cache option specifies how many sequence values will be stored in memory for faster access.

To insert a new record into the "Persons" table, we will have to use the nextval function (this function retrieves the next value from a seq_person sequence):

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

The SQL a statement above would insert a new record into the "Persons" table. The "Personid" column would be assigned the next number from the seq_person sequence. The "FirstName" column would be set to "Lars" and the "LastName" column would be set to "Monsen".