SQL kurz

SQL HOME Úvod do SQL Syntaxe SQL SQL Select SQL Select Distinct SQL Kde SQL A nebo ne Pořadí SQL podle SQL Vložit do Hodnoty SQL Null Aktualizace SQL SQL Odstranit SQL Select Top SQL Min a Max Počet SQL, průměr, součet SQL Like Zástupné znaky SQL SQL In SQL mezi Aliasy SQL SQL se připojí SQL Vnitřní spojení SQL Levé připojení SQL Right Join Plné připojení k SQL SQL Self Join SQL Union SQL Group By SQL mít SQL existuje SQL Any, All SQL Select Into SQL Vložit do výběru Případ SQL Funkce SQL Null SQL uložené procedury Komentáře SQL Operátoři SQL

SQL databáze

SQL Vytvořit DB SQL Drop DB SQL Backup DB Vytvořit tabulku SQL SQL Drop Table SQL Alter Table Omezení SQL SQL Not Null Jedinečný SQL Primární klíč SQL cizí klíč SQL Kontrola SQL Výchozí SQL SQL index Automatické zvýšení SQL SQL data SQL pohledy SQL Injection SQL Hosting SQL datové typy

SQL reference

Klíčová slova SQL Funkce MySQL Funkce serveru SQL Funkce MS Access SQL Quick Ref

Příklady SQL

Příklady SQL SQL kvíz SQL cvičení SQL certifikát

SQL AUTO INCREMENT pole


Pole AUTO INCREMENT

Automatické zvýšení umožňuje automatické generování jedinečného čísla při vložení nového záznamu do tabulky.

Často se jedná o pole primárního klíče, které bychom rádi vytvořili automaticky při každém vložení nového záznamu.


Syntaxe pro MySQL

Následující příkaz SQL definuje sloupec "Personid" jako pole primárního klíče s automatickým přírůstkem v tabulce "Osoby":

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

MySQL používá AUTO_INCREMENTklíčové slovo k provedení funkce automatického přírůstku.

Ve výchozím nastavení je počáteční hodnota pro AUTO_INCREMENT1 a pro každý nový záznam se zvýší o 1.

Chcete-li, aby AUTO_INCREMENTsekvence začínala jinou hodnotou, použijte následující příkaz SQL:

ALTER TABLE Persons AUTO_INCREMENT=100;

Pro vložení nového záznamu do tabulky "Osoby" NEBUDEME muset zadat hodnotu pro sloupec "Osoba" (automaticky bude přidána jedinečná hodnota):

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

Výše uvedený příkaz SQL by vložil nový záznam do tabulky "Osoby". Sloupec "Personid" by měl přiřazenou jedinečnou hodnotu. Sloupec "Jméno" by byl nastaven na "Lars" a sloupec "Příjmení" by byl nastaven na "Monsen".


Syntaxe pro SQL Server

Následující příkaz SQL definuje sloupec "Personid" jako pole primárního klíče s automatickým přírůstkem v tabulce "Osoby":

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

MS SQL Server používá IDENTITYklíčové slovo k provedení funkce automatického přírůstku.

Ve výše uvedeném příkladu je počáteční hodnota pro IDENTITY1 a pro každý nový záznam se zvýší o 1.

Tip: Chcete-li určit, že sloupec „Osoba“ má začínat hodnotou 10 a zvyšovat se o 5, změňte jej na IDENTITY(10,5).

Pro vložení nového záznamu do tabulky "Osoby" NEBUDEME muset zadat hodnotu pro sloupec "Osoba" (automaticky bude přidána jedinečná hodnota):

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

Výše uvedený příkaz SQL by vložil nový záznam do tabulky "Osoby". Sloupec "Personid" by měl přiřazenou jedinečnou hodnotu. Sloupec "Jméno" by byl nastaven na "Lars" a sloupec "Příjmení" by byl nastaven na "Monsen".



Syntaxe pro Access

Následující příkaz SQL definuje sloupec "Personid" jako pole primárního klíče s automatickým přírůstkem v tabulce "Osoby":

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

MS Access používá AUTOINCREMENTklíčové slovo k provedení funkce automatického zvýšení.

Ve výchozím nastavení je počáteční hodnota pro AUTOINCREMENT1 a pro každý nový záznam se zvýší o 1.

Tip: Chcete-li určit, že sloupec „Osoba“ má začínat hodnotou 10 a zvyšovat se o 5, změňte automatické zvýšení na AUTOINCREMENT(10,5).

Pro vložení nového záznamu do tabulky "Osoby" NEBUDEME muset zadat hodnotu pro sloupec "Osoba" (automaticky bude přidána jedinečná hodnota):

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

Výše uvedený příkaz SQL by vložil nový záznam do tabulky "Osoby". Sloupec "Personid" by měl přiřazenou jedinečnou hodnotu. Sloupec "Jméno" by byl nastaven na "Lars" a sloupec "Příjmení" by byl nastaven na "Monsen".


Syntaxe pro Oracle

V Oracle je kód trochu složitější.

Budete muset vytvořit pole automatického přírůstku s objektem sekvence (tento objekt generuje číselnou řadu).

Použijte následující CREATE SEQUENCEsyntaxi:

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

Výše uvedený kód vytvoří sekvenční objekt s názvem seq_person, který začíná 1 a bude se zvyšovat o 1. Uloží také do mezipaměti až 10 hodnot pro výkon. Volba mezipaměti určuje, kolik hodnot sekvence bude uloženo v paměti pro rychlejší přístup.

Pro vložení nového záznamu do tabulky "Osoby" budeme muset použít funkci nextval (tato funkce získá další hodnotu ze sekvence seq_person):

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

Výše uvedený příkaz SQL by vložil nový záznam do tabulky "Osoby". Sloupec "Personid" by měl přiřazeno další číslo ze sekvence seq_person. Sloupec "Jméno" bude nastaven na "Lars" a sloupec "Příjmení" bude nastaven na "Monsen".