Samouczek SQL

SQL HOME Wprowadzenie do SQL Składnia SQL Wybór SQL SQL Wybierz Wyraźne SQL Gdzie SQL i lub nie Kolejność SQL według SQL Wstaw do Puste wartości SQL Aktualizacja SQL Usuń SQL SQL Wybierz Góra Minimalna i maksymalna wartość SQL Liczba SQL, średnia, suma Polubienie SQL Symbole wieloznaczne SQL SQL In SQL między Aliasy SQL Połączenia SQL Wewnętrzne złącze SQL Połączenie lewe SQL Prawe połączenie SQL Pełne dołączenie do SQL Samoprzyłączanie SQL SQL Union Grupa SQL według Posiadanie SQL SQL istnieje SQL Dowolne, Wszystkie SQL Wybierz do Wstaw SQL do Wybierz Sprawa SQL Funkcje zerowe SQL Procedury składowane w SQL Komentarze SQL Operatory SQL

Baza danych SQL

Tworzenie bazy danych SQL Porzucona baza danych SQL Kopia zapasowa bazy danych SQL Utwórz tabelę SQL Tabela upuszczania SQL Zmień tabelę SQL Ograniczenia SQL SQL nie jest pusty Unikalny SQL Klucz podstawowy SQL Klucz obcy SQL Sprawdzanie SQL Domyślny SQL Indeks SQL Automatyczny przyrost SQL Daty SQL Widoki SQL Wstrzyknięcie SQL Hosting SQL Typy danych SQL

Referencje SQL

Słowa kluczowe SQL Funkcje MySQL Funkcje serwera SQL Funkcje dostępu MS Szybkie odwołanie do SQL

Przykłady SQL

Przykłady SQL Quiz SQL Ćwiczenia SQL Certyfikat SQL

Pole AUTO INCREMENT SQL


Pole AUTO PRZYROST

Auto-inkrementacja umożliwia automatyczne generowanie unikalnego numeru po wstawieniu nowego rekordu do tabeli.

Często jest to pole klucza podstawowego, które chcielibyśmy, aby było tworzone automatycznie za każdym razem, gdy wstawiamy nowy rekord.


Składnia MySQL

Poniższa instrukcja SQL definiuje kolumnę „Personid” jako automatyczne pole klucza podstawowego w tabeli „Osoby”:

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

MySQL używa AUTO_INCREMENTsłowa kluczowego do wykonania funkcji autoinkrementacji.

Domyślnie wartość początkowa dla AUTO_INCREMENTwynosi 1 i będzie zwiększana o 1 dla każdego nowego rekordu.

Aby AUTO_INCREMENTsekwencja zaczynała się od innej wartości, użyj następującej instrukcji SQL:

ALTER TABLE Persons AUTO_INCREMENT=100;

Aby wstawić nowy rekord do tabeli „Osoby”, NIE będziemy musieli podawać wartości dla kolumny „Personid” (unikalna wartość zostanie dodana automatycznie):

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

Powyższa instrukcja SQL wstawia nowy rekord do tabeli „Osoby”. Kolumnie „Personid” zostanie przypisana unikalna wartość. Kolumna „FirstName” zostanie ustawiona na „Lars”, a kolumna „LastName” na „Monsen”.


Składnia dla SQL Server

Poniższa instrukcja SQL definiuje kolumnę „Personid” jako automatyczne pole klucza podstawowego w tabeli „Osoby”:

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

MS SQL Server używa IDENTITYsłowa kluczowego do wykonania funkcji autoinkrementacji.

W powyższym przykładzie wartość początkowa dla IDENTITYwynosi 1 i będzie zwiększana o 1 dla każdego nowego rekordu.

Wskazówka: aby określić, że kolumna „Personid” powinna zaczynać się od wartości 10 i zwiększać się o 5, zmień ją na IDENTITY(10,5).

Aby wstawić nowy rekord do tabeli „Osoby”, NIE będziemy musieli podawać wartości dla kolumny „Personid” (unikalna wartość zostanie dodana automatycznie):

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

Powyższa instrukcja SQL wstawia nowy rekord do tabeli „Osoby”. Kolumnie „Personid” zostanie przypisana unikalna wartość. Kolumna „FirstName” zostanie ustawiona na „Lars”, a kolumna „LastName” na „Monsen”.



Składnia programu Access

Poniższa instrukcja SQL definiuje kolumnę „Personid” jako automatyczne pole klucza podstawowego w tabeli „Osoby”:

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

MS Access używa AUTOINCREMENTsłowa kluczowego do wykonania funkcji automatycznego zwiększania.

Domyślnie wartość początkowa dla AUTOINCREMENTwynosi 1 i będzie zwiększana o 1 dla każdego nowego rekordu.

Wskazówka: aby określić, że kolumna „Personid” powinna zaczynać się od wartości 10 i zwiększać się o 5, zmień wartość autoinkrementacji na AUTOINCREMENT(10,5).

Aby wstawić nowy rekord do tabeli „Osoby”, NIE będziemy musieli podawać wartości dla kolumny „Personid” (unikalna wartość zostanie dodana automatycznie):

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

Powyższa instrukcja SQL wstawia nowy rekord do tabeli „Osoby”. Kolumnie „Personid” zostanie przypisana unikalna wartość. Kolumna „FirstName” zostanie ustawiona na „Lars”, a kolumna „LastName” na „Monsen”.


Składnia Oracle

W Oracle kod jest nieco bardziej skomplikowany.

Będziesz musiał utworzyć pole auto-inkrementacji z obiektem sekwencji (ten obiekt generuje sekwencję numerów).

Użyj następującej CREATE SEQUENCEskładni:

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

Powyższy kod tworzy obiekt sekwencji o nazwie seq_person, który zaczyna się od 1 i będzie zwiększany o 1. Będzie również buforować do 10 wartości wydajności. Opcja pamięci podręcznej określa, ile wartości sekwencji będzie przechowywanych w pamięci w celu szybszego dostępu.

Aby wstawić nowy rekord do tabeli „Osoby”, będziemy musieli użyć funkcji nextval (ta funkcja pobiera następną wartość z sekwencji seq_person):

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

Powyższa instrukcja SQL wstawia nowy rekord do tabeli „Osoby”. Kolumnie „Personid” zostanie przypisana następna liczba z sekwencji sekw_osoba. Kolumna „FirstName” zostanie ustawiona na „Lars”, a kolumna „LastName” na „Monsen”.