Bagaimana cara membuat urutan angka di mysql?

Tutorial MySQL ini menjelaskan cara membuat sequence menggunakan atribut AUTO_INCREMENT di MySQL dengan sintaks dan contoh

Keterangan

Di MySQL, Anda dapat membuat kolom yang berisi urutan angka (1, 2, 3, dan seterusnya) dengan menggunakan atribut AUTO_INCREMENT. Atribut AUTO_INCREMENT digunakan saat Anda perlu membuat nomor unik untuk bertindak sebagai kunci utama dalam sebuah tabel

Sintaksis

Sintaks untuk membuat urutan (atau menggunakan atribut AUTO_INCREMENT) di MySQL adalah

CREATE TABLE table_name
( 
  column1 datatype NOT NULL AUTO_INCREMENT,
  column2 datatype [ NULL | NOT NULL ],
  ...
);
AUTO_INCREMENTAtribut untuk digunakan ketika Anda ingin MySQL menetapkan urutan angka secara otomatis ke suatu bidang (pada intinya, membuat bidang autonumber). NULL atau NOT NULLSetiap kolom harus didefinisikan sebagai NULL atau NOT NULL. Jika parameter ini dihilangkan, database menganggap NULL sebagai default

Catatan

  • Anda dapat menggunakan fungsi LAST_INSERT_ID untuk menemukan nilai terakhir yang diberikan oleh bidang AUTO_INCREMENT

Contoh

Mari kita lihat contoh bagaimana menggunakan sequence atau atribut AUTO_INCREMENT di MySQL

Sebagai contoh

CREATE TABLE contacts
( contact_id INT(11) NOT NULL AUTO_INCREMENT,
  last_name VARCHAR(30) NOT NULL,
  first_name VARCHAR(25),
  birthday DATE,
  CONSTRAINT contacts_pk PRIMARY KEY (contact_id)
);
_

Contoh AUTO_INCREMENT MySQL ini akan mengubah nilai berikutnya di bidang AUTO_INCREMENT (yaitu. nilai berikutnya dalam urutan) hingga 50 untuk bidang contact_id di tabel kontak

Terkadang Anda mungkin perlu membuat urutan di MySQL. Karena MySQL tidak memiliki fungsi bawaan untuk membuat urutan, Anda perlu membuatnya melalui kueri SQL. Berikut cara membuat sequence di MySQL menggunakan query sequence MySQL

 

Cara Membuat Urutan di MySQL

Berikut langkah-langkah membuat sequence di MySQL. Ada berbagai cara untuk menghasilkan urutan di MySQL

 

Buat Urutan Menggunakan AUTO_INCREMENT

Anda cukup menyimpan urutan MySQL Anda dalam kolom menggunakan atribut AUTO_INCREMENT selama pembuatan tabel. Katakanlah Anda ingin membuat pesanan tabel (id, tanggal_pesanan, jumlah) dan menyimpan urutan di kolom id

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 |
+----+------------+--------+

Pada tabel di atas, kami mendefinisikan kolom id sebagai kunci utama kami dan menyertakan opsi AUTO_INCREMENT untuk secara otomatis menambah dan menyimpan nilai kunci utama di dalamnya

Harap dicatat, MySQL memungkinkan Anda untuk memiliki hanya satu kolom AUTO_INCREMENT per tabel dan itu juga, sebagai kunci utama

Dalam kueri INSERT di atas, kami hanya memberikan nilai untuk kolom tanggal_pesanan dan jumlah tetapi bukan kolom id tetapi MySQL secara otomatis menghasilkan urutan untuknya

Bonus Baca. Cara Membandingkan Dua Tabel di MySQL

 

Buat Urutan Tanpa Menggunakan AUTO_INCREMENT

Katakanlah Anda ingin membuat kolom urutan lain tanpa menggunakan AUTO_INCREMENT. Dalam hal ini, Anda perlu menggunakan pernyataan UPDATE untuk menghitung secara matematis dan mengisi kolom urutan ini

Misalnya, mari kita tambahkan kolom urutan ke tabel di atas untuk menyimpan urutan baru

mysql> alter table orders 
add column sequence int;

Bonus Baca. Cara Menyalin Tabel di MySQL

 

Selanjutnya, kami menggunakan pernyataan UPDATE untuk membuat urutan di MySQL. Kami akan membuat urutan yang dua kali nilai kolom id

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 Baca. Cara Mendapatkan Data Satu Bulan Terakhir di MySQL

Kami juga dapat membuat urutan non-linier dengan memperbarui rumus yang digunakan dalam pernyataan UPDATE. Inilah kueri SQL untuk menghasilkan urutan nilai Square (y x y) dari kolom id

Ringkasan. dalam tutorial ini, Anda akan belajar bagaimana menggunakan urutan MySQL untuk secara otomatis menghasilkan nomor unik untuk kolom tabel ID

Membuat urutan MySQL

Di MySQL, urutan adalah daftar bilangan bulat yang dihasilkan dalam urutan naik i. e. , 1,2,3… Banyak aplikasi membutuhkan urutan untuk menghasilkan nomor unik terutama untuk identifikasi e. g. , ID pelanggan di CRM, nomor karyawan di SDM, dan nomor peralatan di sistem manajemen layanan

Untuk membuat urutan di MySQL secara otomatis, Anda mengatur atribut AUTO_INCREMENT untuk kolom, yang biasanya adalah kolom kunci utama

Aturan berikut diterapkan saat Anda menggunakan atribut AUTO_INCREMENT

  • Setiap tabel hanya memiliki satu kolom AUTO_INCREMENT yang tipe datanya biasanya bilangan bulat
  • Kolom  AUTO_INCREMENT harus diindeks, artinya dapat berupa indeks

    INSERT INTO employees(first_name,last_name) VALUES('John','Doe'), ('Mary','Jane');

    Code language: SQL (Structured Query Language) (sql)
    2 atau

    INSERT INTO employees(first_name,last_name) VALUES('John','Doe'), ('Mary','Jane');

    Code language: SQL (Structured Query Language) (sql)
    3
  • Kolom AUTO_INCREMENT harus memiliki batasan 

    INSERT INTO employees(first_name,last_name) VALUES('John','Doe'), ('Mary','Jane');

    Code language: SQL (Structured Query Language) (sql)
    5. Saat Anda menyetel atribut AUTO_INCREMENT ke kolom, MySQL secara otomatis menambahkan batasan 

    INSERT INTO employees(first_name,last_name) VALUES('John','Doe'), ('Mary','Jane');

    Code language: SQL (Structured Query Language) (sql)
    5  ke kolom secara implisit

Membuat contoh urutan MySQL

Pernyataan berikut membuat tabel bernama 

INSERT INTO employees(first_name,last_name) VALUES('John','Doe'), ('Mary','Jane');

Code language: SQL (Structured Query Language) (sql)
_8 yang memiliki kolom 

INSERT INTO employees(first_name,last_name) VALUES('John','Doe'), ('Mary','Jane');

Code language: SQL (Structured Query Language) (sql)
9 adalah kolom AUTO_INCREMENT

CREATE TABLE employees ( emp_no INT AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(50), last_name VARCHAR(50) );

Code language: SQL (Structured Query Language) (sql)

Bagaimana urutan MySQL bekerja

Kolom AUTO_INCREMENT memiliki atribut berikut

  • Nilai awal kolom AUTO_INCREMENT adalah 1 dan bertambah 1 saat Anda memasukkan nilai 

    SELECT * FROM employees;

    Code language: SQL (Structured Query Language) (sql)
    3 ke dalam kolom atau saat Anda menghilangkan nilainya dalam pernyataan

    SELECT * FROM employees;

    Code language: SQL (Structured Query Language) (sql)
    4
  • Untuk mendapatkan nomor urut yang dibuat terakhir, Anda menggunakan fungsi

    SELECT * FROM employees;

    Code language: SQL (Structured Query Language) (sql)
    5 . Kami sering menggunakan ID sisipan terakhir untuk pernyataan selanjutnya e. g. , masukkan data ke dalam tabel. Urutan yang dihasilkan terakhir bersifat unik di seluruh sesi. Dengan kata lain, jika sambungan lain menghasilkan nomor urut, dari sambungan Anda, Anda dapat memperolehnya dengan menggunakan fungsi

    SELECT * FROM employees;

    Code language: SQL (Structured Query Language) (sql)
    6
  • Jika Anda memasukkan baris baru ke dalam tabel dan menentukan nilai untuk kolom urut, MySQL akan memasukkan nomor urut jika nomor urut tidak ada di kolom atau mengeluarkan kesalahan jika sudah ada. Jika Anda memasukkan nilai baru yang lebih besar dari nomor urut berikutnya, MySQL akan menggunakan nilai baru sebagai nomor urut awal dan menghasilkan nomor urut unik yang lebih besar dari yang sekarang untuk penggunaan berikutnya. Ini menciptakan celah dalam urutan
  • Jika Anda menggunakan pernyataan

    SELECT * FROM employees;

    Code language: SQL (Structured Query Language) (sql)
    7 untuk memperbarui nilai di kolom AUTO_INCREMENT ke nilai yang sudah ada, MySQL akan mengeluarkan kesalahan kunci duplikat jika kolom memiliki indeks unik. Jika Anda memperbarui kolom AUTO_INCREMENT_ ke nilai yang lebih besar dari nilai yang ada di kolom, MySQL akan menggunakan nomor berikutnya dari nomor urut penyisipan terakhir untuk baris berikutnya. Misalnya, jika nomor urut yang terakhir dimasukkan adalah 3, Anda memperbaruinya menjadi 10, nomor urut untuk baris baru adalah 4
  • Jika Anda menggunakan pernyataan

    DELETE FROM employees WHERE emp_no = 2;

    Code language: SQL (Structured Query Language) (sql)
    _0 untuk menghapus baris yang dimasukkan terakhir, MySQL mungkin atau mungkin tidak menggunakan kembali nomor urut yang dihapus tergantung pada mesin penyimpanan tabel. Tabel MyISAM tidak menggunakan kembali nomor urut yang dihapus jika Anda menghapus baris e. g. , id sisipan terakhir dalam tabel adalah 10, jika Anda menghapusnya, MySQL masih menghasilkan nomor urut berikutnya yaitu 11 untuk baris baru. Mirip dengan tabel MyISAM, tabel InnoDB tidak menggunakan kembali nomor urut saat baris dihapus

Setelah Anda menetapkan atribut AUTO_INCREMENT untuk kolom, Anda dapat menyetel ulang nilai kenaikan otomatis dengan berbagai cara e. g. , dengan menggunakan pernyataan

DELETE FROM employees WHERE emp_no = 2;

Code language: SQL (Structured Query Language) (sql)
_2

Mari kita lihat beberapa contoh untuk mendapatkan pemahaman yang lebih baik tentang urutan MySQL

Pertama, masukkan dua baris baru ke dalam tabel ________5______8

INSERT INTO employees(first_name,last_name) VALUES('John','Doe'), ('Mary','Jane');

Code language: SQL (Structured Query Language) (sql)

Kedua, pilih data dari tabel

INSERT INTO employees(first_name,last_name) VALUES('John','Doe'), ('Mary','Jane');

Code language: SQL (Structured Query Language) (sql)
_8

SELECT * FROM employees;

Code language: SQL (Structured Query Language) (sql)
_
Bagaimana cara membuat urutan angka di mysql?
Bagaimana cara membuat urutan angka di mysql?

Ketiga, hapus karyawan kedua yang

INSERT INTO employees(first_name,last_name) VALUES('John','Doe'), ('Mary','Jane');

Code language: SQL (Structured Query Language) (sql)
9 adalah 2.

DELETE FROM employees WHERE emp_no = 2;

Code language: SQL (Structured Query Language) (sql)
_
Bagaimana cara membuat urutan angka di mysql?
Bagaimana cara membuat urutan angka di mysql?

Keempat, masukkan karyawan baru.

INSERT INTO employees(first_name,last_name) VALUES('Jack','Lee');

Code language: SQL (Structured Query Language) (sql)
_
Bagaimana cara membuat urutan angka di mysql?
Bagaimana cara membuat urutan angka di mysql?

Karena mesin penyimpanan tabel

INSERT INTO employees(first_name,last_name) VALUES('John','Doe'), ('Mary','Jane');

Code language: SQL (Structured Query Language) (sql)
8 adalah InnoDB, itu tidak menggunakan kembali nomor urut yang dihapus. Baris baru memiliki

INSERT INTO employees(first_name,last_name) VALUES('John','Doe'), ('Mary','Jane');

Code language: SQL (Structured Query Language) (sql)
_9  3.

Kelima, perbarui karyawan yang ada dengan

INSERT INTO employees(first_name,last_name) VALUES('John','Doe'), ('Mary','Jane');

Code language: SQL (Structured Query Language) (sql)
_9 3 ke 1

UPDATE employees SET first_name = 'Joe', emp_no = 1 WHERE emp_no = 3;

Code language: SQL (Structured Query Language) (sql)

MySQL mengeluarkan kesalahan entri duplikat untuk kunci utama. Mari kita perbaiki

UPDATE employees SET first_name = 'Joe', emp_no = 10 WHERE emp_no = 3;

Code language: SQL (Structured Query Language) (sql)
Bagaimana cara membuat urutan angka di mysql?
Bagaimana cara membuat urutan angka di mysql?

Keenam, masukkan pegawai baru setelah memperbarui nomor urut menjadi 10.

INSERT INTO employees(first_name,last_name) VALUES('Wang','Lee');

Code language: SQL (Structured Query Language) (sql)
Bagaimana cara membuat urutan angka di mysql?
Bagaimana cara membuat urutan angka di mysql?

Nomor urut berikutnya dari sisipan terakhir adalah nomor 4, oleh karena itu, MySQL menggunakan nomor 4 untuk baris baru, bukan 11.

Dalam tutorial ini, Anda telah mempelajari cara menggunakan urutan MySQL untuk menghasilkan angka unik untuk kolom kunci utama dengan menetapkan atribut AUTO_INCREMENT ke kolom

Bagaimana cara membuat urutan angka dalam SQL?

Untuk menomori baris dalam rangkaian hasil, Anda harus menggunakan fungsi jendela SQL bernama ROW_NUMBER() . Fungsi ini memberikan nomor integer berurutan untuk setiap baris hasil.

Bagaimana cara menghasilkan 1 hingga 100 angka di MySQL?

Untuk menghasilkan rentang angka di MySQL, Anda dapat menggunakan stored procedure . Pertama, kita perlu membuat tabel. Setelah itu, kita akan membuat stored procedure yang menghasilkan range angka dari 10 sampai 1. Setelah itu kita perlu memanggil stored procedure yang mengisi range angka di tabel.

Bagaimana cara menggunakan generator urutan di MySQL?

Memulai Urutan pada Nilai Tertentu

Bagaimana cara membuat urutan di MySQL tanpa kenaikan otomatis?

3 Jawaban .
BUAT URUTAN JIKA TIDAK ADA org_account_id MINVALUE=10000 MAXVALUE=999999;
BUAT TABEL user_account_id ( sequence_id BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY (`sequence_id`) );