Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara Membuat Tabel di SQL – Postgres dan Contoh Query MySQL

Mengetahui cara membuat tabel di SQL merupakan konsep yang penting dan mendasar.

Dalam tutorial ini, saya akan memandu Anda melalui SQL sintaks untuk CREATE TABLE pernyataan menggunakan contoh kode untuk PostgreSQL dan MySQL.

Dasar CREATE TABLE Sintaks

Berikut adalah sintaks dasar untuk CREATE TABLE pernyataan:

CREATE TABLE table_name(
	column1 data_type column_constraint,
    column2 data_type column_constraint,
    column3 data_type column_constraint,
    column4 data_type column_constraint,
    ... etc
);

Untuk bagian pertama, Anda harus memulai dengan CREATE TABLE pernyataan diikuti dengan nama tabel yang ingin Anda buat.

Jika saya ingin membuat tabel informasi guru, maka saya akan menulis sesuatu seperti ini:

CREATE TABLE teachers();

Di dalam kurung, Anda akan menambahkan informasi untuk membuat kolom untuk tabel. Jika Anda lupa tanda kurung, maka Anda akan mendapatkan pesan kesalahan.

CREATE TABLE teachers;

Titik koma di akhir tanda kurung memberi tahu komputer bahwa itu adalah akhir dari SQL penyataan. Anda kadang-kadang akan mendengar ini disebut sebagai terminator pernyataan.

Apa itu MySQL mesin penyimpanan?

Menurut MySQL dokumentasi:

Mesin penyimpanan adalah komponen MySQL yang menangani operasi SQL untuk tipe tabel yang berbeda.

MySQL menggunakan mesin penyimpanan ini untuk melakukan operasi CRUD (membuat, membaca, memperbarui, dan menghapus) pada database.

Di MySQL , Anda memiliki opsi untuk menentukan jenis mesin penyimpanan yang ingin Anda gunakan untuk tabel Anda. Jika Anda menghilangkan ENGINE klausa maka defaultnya adalah InnoDB.

CREATE TABLE table_name(
	column1 data_type column_constraint,
    column2 data_type column_constraint,
    column3 data_type column_constraint,
    column4 data_type column_constraint,
    ... etc
)ENGINE=storage_engine;

Apa IF NOT EXISTS klausa?

Ada klausa opsional yang disebut IF NOT EXISTS yang akan memeriksa apakah tabel yang ingin Anda buat sudah ada di database. Anda dapat menempatkan klausa itu tepat sebelum nama tabel.

CREATE TABLE IF NOT EXISTS teachers();

Jika tabel sudah ada, maka komputer tidak akan membuat tabel baru.

Jika Anda menghilangkan IF NOT EXISTS klausa dan coba buat tabel yang sudah ada di database, maka Anda akan mendapatkan pesan error.

Dalam contoh ini, saya pertama kali membuat tabel yang disebut guru. Tetapi jika saya mencoba membuat tabel yang sama di perintah berikutnya, saya akan mengalami kesalahan.

CREATE TABLE IF NOT EXISTS teachers();
CREATE TABLE teachers();

Cara membuat kolom dalam tabel

Di dalam tanda kurung untuk CREATE TABLE pernyataan, Anda akan membuat daftar nama kolom yang ingin Anda buat bersama dengan tipe data dan batasannya.

Ini adalah contoh bagaimana kita dapat menambahkan empat kolom school_id , name , email dan age ke meja guru kami. Setiap nama kolom harus dipisahkan dengan koma.

CREATE TABLE teachers(
	school_id data_type column_constraint, 
	name data_type column_constraint,
    email data_type column_constraint, 
	age data_type column_constraint
);

Menurut MySQL dokumentasi:

MySQL memiliki batas keras 4096 kolom per tabel, tetapi maksimum efektif mungkin kurang untuk tabel tertentu. Batas kolom yang tepat tergantung pada beberapa faktor.

Jika Anda mengerjakan MySQL yang lebih kecil proyek pribadi, maka Anda mungkin tidak perlu khawatir melebihi jumlah kolom untuk tabel Anda.

Menurut dokumentasi PostgreSQL, ada batas 1600 kolom per tabel. Mirip dengan MySQL , batas pasti dapat bervariasi tergantung pada ruang disk atau batasan kinerja.

Tipe data dalam SQL

Saat Anda membuat kolom dalam tabel, Anda harus menetapkannya sebagai tipe data. Tipe data menjelaskan tipe nilai di dalam kolom.

Berikut adalah enam kategori populer dari tipe data di SQL :

  1. Numerik (int, float, serial, desimal, dll)
  2. Data dan waktu (stempel waktu, data, waktu, dll)
  3. Karakter dan string (char, varchar, teks, dll)
  4. Unicode (ntext, nvarchar, dll.)
  5. Biner (biner, dll.)
  6. Lain-lain (xml, tabel, dll.)

Artikel ini tidak akan membahas setiap tipe data tunggal tetapi akan mencakup beberapa yang populer.

Berikut daftar lengkap PostgreSQL tipe data dan MySQL tipe data.

Apa itu SERIAL dan AUTO_INCREMENT ?

Di PostgreSQL , sebuah SERIAL tipe data adalah bilangan bulat yang secara otomatis akan bertambah satu untuk setiap baris baru yang dibuat.

Kita dapat menambahkan SERIAL tepat setelah school_id kolom di tabel guru kami.

school_id SERIAL

Di MySQL , Anda akan menggunakan AUTO_INCREMENT bukannya SERIAL . Dalam contoh ini, INT tipe data yang digunakan yang mewakili bilangan bulat.

school_id INT AUTO_INCREMENT

Jika kita menambahkan lima baris ke tabel guru, output akan menunjukkan angka 1, 2, 3, 4, 5 untuk school_id kolom karena bilangan bulat secara otomatis bertambah satu untuk setiap baris baru.

Apa itu VARCHAR tipe data?

Sebuah VARCHAR tipe data adalah panjang string variabel di mana Anda dapat mengatur panjang karakter maksimum.

Ini adalah contoh penggunaan VARCHAR tipe data untuk name dan email kolom di tabel guru kami. Angka 30 adalah panjang karakter maksimum.

name VARCHAR(30) column_constraint,
email VARCHAR(30) column_constraint,

Kendala Kolom dalam SQL

Ini adalah aturan yang diterapkan pada data di dalam kolom tabel.

Berikut adalah daftar beberapa batasan kolom yang lebih umum:

  • KUNCI UTAMA - kunci ini berfungsi sebagai pengenal unik untuk tabel
  • KUNCI ASING - kunci ini memastikan bahwa nilai dalam kolom juga ada di tabel lain. Ini berfungsi sebagai penghubung antar tabel.
  • UNIK - semua nilai di kolom harus unik
  • NOT NULL - nilainya tidak boleh NULL. NULL adalah tidak adanya nilai
  • CHECK - menguji nilai terhadap ekspresi boolean

Contoh PRIMARY dan FOREIGN kunci

Di tabel pengajar, kita dapat menambahkan PRIMARY KEY ke school_id kolom.

Seperti inilah tampilan kode di PostgreSQL:

 school_id SERIAL PRIMARY KEY

Seperti inilah tampilan kode di MySQL:

school_id INT AUTO_INCREMENT PRIMARY KEY

Jika Anda ingin memiliki lebih dari satu kolom untuk PRIMARY KEY , lalu Anda akan menambahkannya tepat setelah pembuatan kolom.

CREATE TABLE table_name(
	column1 data_type column_constraint,
    column2 data_type column_constraint,
    column3 data_type column_constraint,
    column4 data_type column_constraint,
    ... etc
    PRIMARY KEY (column1, column2)
);

Jika Anda ingin menautkan satu tabel ke tabel lainnya, Anda dapat menggunakan FOREIGN KEY .

Katakanlah kita memiliki tabel bernama district_employees dengan kunci utama district_id . Berikut adalah tampilan kode di PostgreSQL:

CREATE TABLE district_employees(
   district_id SERIAL PRIMARY KEY,
   employee_name VARCHAR(30) NOT NULL,
   PRIMARY KEY(district_id)
);

Di tabel pengajar, kita dapat menggunakan kunci asing dan mereferensikan tabel district_employees.

district_id INT REFERENCES district_employees(district_id),
CREATE TABLE teachers(
    school_id SERIAL PRIMARY KEY,
    district_id INT REFERENCES district_employees(district_id),
    column1 data_type column_constraint,
    column2 data_type column_constraint,
    column3 data_type column_constraint,
    column4 data_type column_constraint,
    ... etc 
);

Contoh NOT NULL , CHECK dan UNIQUE

Jika kita ingin memastikan bahwa kita tidak memiliki nilai yang null, kita dapat menggunakan NOT NULL paksaan.

name VARCHAR(30) NOT NULL

Kita bisa menggunakan CHECK kendala untuk memastikan bahwa semua guru kami berusia 18 tahun ke atas. CHECK kendala menguji nilai terhadap ekspresi boolean.

age INT CHECK(age >= 18)

Jika salah satu nilai kita tidak memenuhi syarat tersebut, maka kita akan mendapatkan pesan error.

Kita bisa menggunakan UNIQUE batasan untuk memastikan bahwa semua email unik.

email VARCHAR(30) UNIQUE

Ini adalah hasil akhir untuk tabel guru:

Seperti inilah tampilan kode di PostgreSQL:

CREATE TABLE teachers(
	school_id SERIAL PRIMARY KEY,
	name VARCHAR(30) NOT NULL,
    email VARCHAR(30) UNIQUE,
	age INT CHECK(age >= 18)      
);

Seperti inilah tampilan kode di MySQL:

CREATE TABLE teachers(
	school_id INT AUTO_INCREMENT PRIMARY KEY,
	name VARCHAR(30) NOT NULL,
    email VARCHAR(30) UNIQUE,
	age INT CHECK(age >= 18)      
);

Saya harap Anda menikmati artikel ini dan semoga sukses dalam perjalanan SQL Anda.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara mengkonfigurasi Tomcat untuk terhubung dengan MySQL

  2. Cara Menyebarkan MySQL di Ubuntu dan Dikelola Sepenuhnya

  3. Diperlukan untuk menggabungkan 2 tabel dengan FK mereka di tabel ke-3

  4. Lembar contekan format tanggal MySQL

  5. JSON_LENGTH() – Mengembalikan Panjang Dokumen JSON di MySQL