Soms moet u mogelijk een reeks genereren in MySQL. Aangezien MySQL geen ingebouwde functie heeft voor het maken van een reeks, moet u deze genereren via een SQL-query. Hier leest u hoe u een reeks in MySQL kunt maken met behulp van een MySQL-reeksquery.
Hoe maak je een reeks in MySQL
Hier zijn de stappen om een reeks in MySQL te maken. Er zijn verschillende manieren om sequenties te genereren in MySQL.
Creëer een reeks met AUTO_INCREMENT
U kunt uw MySQL-reeks eenvoudig in een kolom opslaan met het AUTO_INCREMENT-kenmerk tijdens het maken van tabellen. Stel dat u tabel orders(id, order_date, hoeveelheid) . wilt maken en sla de volgorde op in id kolom.
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 | +----+------------+--------+
In de bovenstaande tabel definiëren we id kolom als onze primaire sleutel en neem de AUTO_INCREMENT-optie op om de primaire sleutelwaarden automatisch te verhogen en op te slaan.
Houd er rekening mee dat u met MySQL slechts één AUTO_INCREMENT-kolom per tabel kunt hebben en dat ook als primaire sleutel.
In de bovenstaande INSERT-query geven we alleen waarden voor order_date en bedrag kolommen maar niet id kolom, maar MySQL genereert er automatisch een reeks voor.
Bonus lezen:twee tabellen vergelijken in MySQL
Creëer een reeks zonder AUTO_INCREMENT te gebruiken
Stel dat u nog een reekskolom wilt maken zonder AUTO_INCREMENT te gebruiken. In dat geval moet u de UPDATE-instructie gebruiken om deze reekskolom wiskundig te berekenen en te vullen.
Laten we bijvoorbeeld een reeks . toevoegen kolom naar bovenstaande tabel om een nieuwe reeks op te slaan.
mysql> alter table orders add column sequence int;
Bonus lezen:tabel kopiëren in MySQL
Vervolgens gebruiken we de UPDATE-instructie om een reeks in MySQL te maken. We zullen een reeks maken die tweemaal id . is kolomwaarde
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 lezen:hoe u gegevens van de laatste maand in MySQL kunt krijgen
We kunnen ook een niet-lineaire reeks maken door de formule bij te werken die wordt gebruikt in de UPDATE-instructie. Hier is de SQL-query om een reeks vierkante waarden (y x y) van id te genereren kolom
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 maakt het gemakkelijk om gegevens binnen enkele minuten te visualiseren en in realtime dashboards te controleren. Probeer het vandaag nog!