Esercitazione SQL

SQL HOME Introduzione SQL Sintassi SQL Seleziona SQL SQL Seleziona distinto SQL dove SQL e, o, no Ordina SQL per Inserisci SQL in Valori nulli SQL Aggiornamento SQL Elimina SQL SQL Seleziona in alto SQL Min e Max Conteggio SQL, media, somma Mi piace SQL Caratteri jolly SQL SQL In SQL tra Alias ​​SQL Join SQL Join interno SQL Join sinistro SQL SQL Right Join SQL Full Join SQL Self Join Unione SQL Raggruppamento SQL per SQL Avere SQL esiste SQL Qualsiasi, Tutti SQL Seleziona in Inserisci SQL in Seleziona Caso SQL Funzioni SQL Null Stored procedure SQL Commenti SQL Operatori SQL

Database SQL

SQL Crea DB SQL Drop DB DB di backup SQL SQL Crea tabella Tabella di rilascio SQL SQL Alter tabella Vincoli SQL SQL non nullo SQL unico Chiave primaria SQL Chiave esterna SQL Controllo SQL SQL predefinito Indice SQL Incremento automatico SQL Date SQL Viste SQL SQL Injection Hosting SQL Tipi di dati SQL

Riferimenti SQL

Parole chiave SQL Funzioni MySQL Funzioni di SQL Server Funzioni di accesso MS Riferimento rapido SQL

Esempi SQL

Esempi SQL Quiz SQL Esercizi SQL Certificato SQL

Campo SQL AUTO INCREMENT


AUTO INCREMENTO Campo

L'incremento automatico consente di generare automaticamente un numero univoco quando un nuovo record viene inserito in una tabella.

Spesso questo è il campo della chiave primaria che vorremmo venga creato automaticamente ogni volta che viene inserito un nuovo record.


Sintassi per MySQL

La seguente istruzione SQL definisce la colonna "Personid" come un campo di chiave primaria a incremento automatico nella tabella "Persone":

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

MySQL utilizza la AUTO_INCREMENTparola chiave per eseguire una funzione di incremento automatico.

Per impostazione predefinita, il valore iniziale per AUTO_INCREMENTè 1 e verrà incrementato di 1 per ogni nuovo record.

Per far AUTO_INCREMENTiniziare la sequenza con un altro valore, utilizzare la seguente istruzione SQL:

ALTER TABLE Persons AUTO_INCREMENT=100;

Per inserire un nuovo record nella tabella "Persone", NON dovremo specificare un valore per la colonna "Personid" (verrà aggiunto automaticamente un valore univoco):

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

L'istruzione SQL precedente inserirebbe un nuovo record nella tabella "Persone". Alla colonna "Personid" verrà assegnato un valore univoco. La colonna "Nome" verrebbe impostata su "Lars" e la colonna "Cognome" verrebbe impostata su "Monsen".


Sintassi per SQL Server

La seguente istruzione SQL definisce la colonna "Personid" come un campo di chiave primaria a incremento automatico nella tabella "Persone":

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

MS SQL Server utilizza la IDENTITYparola chiave per eseguire una funzione di incremento automatico.

Nell'esempio precedente, il valore iniziale per IDENTITYè 1 e verrà incrementato di 1 per ogni nuovo record.

Suggerimento: per specificare che la colonna "Personid" deve iniziare dal valore 10 e aumentare di 5, cambiala in IDENTITY(10,5).

Per inserire un nuovo record nella tabella "Persone", NON dovremo specificare un valore per la colonna "Personid" (verrà aggiunto automaticamente un valore univoco):

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

L'istruzione SQL precedente inserirebbe un nuovo record nella tabella "Persone". Alla colonna "Personid" verrà assegnato un valore univoco. La colonna "Nome" verrebbe impostata su "Lars" e la colonna "Cognome" verrebbe impostata su "Monsen".



Sintassi per l'accesso

La seguente istruzione SQL definisce la colonna "Personid" come un campo di chiave primaria a incremento automatico nella tabella "Persone":

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

MS Access utilizza la AUTOINCREMENTparola chiave per eseguire una funzione di incremento automatico.

Per impostazione predefinita, il valore iniziale per AUTOINCREMENTè 1 e verrà incrementato di 1 per ogni nuovo record.

Suggerimento: per specificare che la colonna "Personid" deve iniziare dal valore 10 e aumentare di 5, modificare l'incremento automatico in AUTOINCREMENT(10,5).

Per inserire un nuovo record nella tabella "Persone", NON dovremo specificare un valore per la colonna "Personid" (verrà aggiunto automaticamente un valore univoco):

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

L'istruzione SQL precedente inserirebbe un nuovo record nella tabella "Persone". Alla colonna "Personid" verrà assegnato un valore univoco. La colonna "Nome" verrebbe impostata su "Lars" e la colonna "Cognome" verrebbe impostata su "Monsen".


Sintassi per Oracle

In Oracle il codice è un po' più complicato.

Dovrai creare un campo di autoincremento con l'oggetto sequenza (questo oggetto genera una sequenza numerica).

Usa la seguente CREATE SEQUENCEsintassi:

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

Il codice sopra crea un oggetto sequenza chiamato seq_person, che inizia con 1 e aumenterà di 1. Metterà anche nella cache fino a 10 valori per le prestazioni. L'opzione cache specifica quanti valori di sequenza verranno archiviati in memoria per un accesso più rapido.

Per inserire un nuovo record nella tabella "Persone", dovremo utilizzare la funzione nextval (questa funzione recupera il valore successivo dalla sequenza seq_person):

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

L'istruzione SQL precedente inserirebbe un nuovo record nella tabella "Persone". Alla colonna "Personid" verrebbe assegnato il numero successivo dalla sequenza seq_person. La colonna "Nome" verrebbe impostata su "Lars" e la colonna "Cognome" verrebbe impostata su "Monsen".