Mysql
 sql >> Database >  >> RDS >> Mysql

Come creare una sequenza in MySQL

A volte potrebbe essere necessario generare una sequenza in MySQL. Poiché MySQL non ha una funzione incorporata per la creazione di sequenze, è necessario generarla tramite query SQL. Ecco come creare una sequenza in MySQL usando la query di sequenza MySQL.

Come creare una sequenza in MySQL

Ecco i passaggi per creare una sequenza in MySQL. Esistono vari modi per generare sequenze in MySQL.

Crea sequenza utilizzando AUTO_INCREMENT

Puoi semplicemente memorizzare la tua sequenza MySQL in una colonna usando l'attributo AUTO_INCREMENT durante la creazione della tabella. Supponiamo che tu voglia creare la tabella ordini(id, data_ordine, importo) e memorizza la sequenza in id colonna.

mysql> create table orders(id int AUTO_INCREMENT PRIMARY KEY, 
        order_date date, amount int);

mysql> insert into orders(order_date,  amount)
      values('2020-08-01', 250),
       ('2020-08-02',125),
       ('2020-08-03',300);

mysql> select * from orders;
+----+------------+--------+
| id | order_date | amount |
+----+------------+--------+
|  1 | 2020-08-01 |    250 |
|  2 | 2020-08-02 |    125 |
|  3 | 2020-08-03 |    300 |
+----+------------+--------+

Nella tabella sopra, definiamo id colonna come chiave primaria e include l'opzione AUTO_INCREMENT per incrementare e memorizzare automaticamente i valori della chiave primaria al suo interno.

Tieni presente che MySQL ti consente di avere solo una colonna AUTO_INCREMENT per tabella e anche quella come chiave primaria.

Nella query INSERT sopra, forniamo solo i valori per data_ordine e importo colonne ma non id colonna ma MySQL genera automaticamente la sequenza per essa.

Bonus Leggi:Come confrontare due tabelle in MySQL

Crea sequenza senza utilizzare AUTO_INCREMENT

Supponiamo di voler creare un'altra colonna di sequenza senza utilizzare AUTO_INCREMENT. In tal caso, dovrai utilizzare l'istruzione UPDATE per calcolare matematicamente e popolare questa colonna della sequenza.

Ad esempio, aggiungiamo una sequenza colonna alla tabella sopra per memorizzare una nuova sequenza.

mysql> alter table orders 
add column sequence int;

Bonus Leggi:Come copiare la tabella in MySQL

Successivamente, utilizziamo l'istruzione UPDATE per creare una sequenza in MySQL. Creeremo una sequenza che è due volte id valore della colonna

mysql> update orders
       set sequence=2*id;

mysql> select * from orders;
+----+------------+--------+----------+
| id | order_date | amount | sequence |
+----+------------+--------+----------+
|  1 | 2020-08-01 |    250 |        2 |
|  2 | 2020-08-02 |    125 |        4 |
|  3 | 2020-08-03 |    300 |        6 |
+----+------------+--------+----------+

Bonus Leggi:Come ottenere i dati dell'ultimo mese in MySQL

Possiamo anche creare una sequenza non lineare aggiornando la formula utilizzata nell'istruzione UPDATE. Ecco la query SQL per generare una sequenza di valori quadrati (y x y) di id colonna

mysql> update orders
      set sequence=id*id;

mysql> select * from orders;
+----+------------+--------+----------+
| id | order_date | amount | sequence |
+----+------------+--------+----------+
|  1 | 2020-08-01 |    250 |        1 |
|  2 | 2020-08-02 |    125 |        4 |
|  3 | 2020-08-03 |    300 |        9 |
+----+------------+--------+----------+

Ubiq semplifica la visualizzazione dei dati in pochi minuti e il monitoraggio in dashboard in tempo reale. Provalo oggi!