Artikel ini berisi CREATE TABLE
SQL dasar pernyataan yang dapat digunakan pemula untuk membuat tabel dasar untuk proyek database mereka.
Sintaks Dasar
Sintaks dasar untuk membuat tabel dalam SQL adalah seperti ini:
CREATE TABLE TableName (
Column1 datatype optional_constraints,
Column2 datatype optional_constraints,
Column3 datatype optional_constraints,
...
);
Dimana:
TableName
adalah nama yang ingin Anda berikan ke tabelColumn1
, dll adalah nama yang Anda berikan ke kolom Andadatatype
adalah tipe data yang Anda tetapkan untuk setiap kolom. Sebagian besar RDBMS mengharuskan Anda menetapkan tipe data untuk setiap kolom. Di SQLite, ini opsional.optional_constraints
adalah daftar batasan opsional yang Anda terapkan pada kolom.
Perhatikan bahwa sebagian besar DBMS menggunakan sintaks yang lebih kompleks daripada ini (yaitu mereka menawarkan lebih banyak opsi), tetapi ini umumnya sintaks dasar yang diperlukan untuk membuat tabel. Kebanyakan pemula memulai dengan sintaks ini, kemudian mempelajari opsi lanjutan lainnya saat mereka maju.
Contoh Dasar
Berikut ini contoh dasarnya:
CREATE TABLE Pets
(
PetId int NOT NULL PRIMARY KEY,
PetTypeId int NOT NULL,
OwnerId int NOT NULL,
PetName varchar(60) NOT NULL,
DOB date NULL
);
Berikut beberapa hal yang perlu diperhatikan:
- Nama tabel dan kolom bisa apa saja. Misalnya, alih-alih
PetId
Saya bisa menyebutnyapetid
,PETID
, ataupet_id
. Beberapa DBMS (misalnya Postgres) peka huruf besar/kecil ketika Anda menanyakan tabel dan nama kolomnya, sementara yang lain tidak (misalnya SQL Server). - Beberapa DBMS menggunakan nama yang berbeda untuk tipe datanya.
NOT NULL
adalah batasan tabel yang menetapkan bahwa kolom ini harus berisi nilai (yaitu tidak boleh berisiNULL
nilai).NULL
berarti kolom boleh berisiNULL
nilai-nilai. Beberapa DBMS (seperti DB2) tidak mendukungNULL
kata kunci, sehingga Anda harus menghilangkannya saat bekerja dengan DBMS semacam itu.PRIMARY KEY
menambahkan batasan kunci utama ke tabel. Sebaiknya tentukan kunci utama di semua tabel Anda.- Jika tabel dengan nama yang sama sudah ada di database, Anda akan mendapatkan kesalahan. Anda harus menghapus tabel yang ada atau mengubahnya (atau mengubah nama tabel yang Anda buat).
Membuat Tabel dengan Kunci Asing
Contoh berikut membuat tabel dengan dua kunci asing. Kunci asing digunakan untuk membuat hubungan antara dua tabel.
CREATE TABLE Pets
(
PetId int NOT NULL PRIMARY KEY,
PetTypeId int NOT NULL REFERENCES PetTypes (PetTypeId),
OwnerId int NOT NULL REFERENCES Owners (OwnerId),
PetName varchar(60) NOT NULL,
DOB date NULL
);
REFERENCES
klausa digunakan untuk mendefinisikan kunci asing terhadap dua kolom. Dalam kasus kami, kunci asing memberlakukan hal berikut:
Pets.PetTypeId
kolom mereferensikanPetTypes.PetTypeId
kolom (nilai apa pun yang masuk kePets.PetTypeId
kolom harus memiliki nilai yang cocok diPetTypes.PetTypeId
kolom).Pets.OwnerId
kolom mereferensikanOwners.OwnerId
kolom (nilai apa pun yang masuk kePets.OwnerId
kolom harus memiliki nilai yang cocok diOwners.OwnerId
kolom).
Kunci asing juga dapat ditambahkan nanti, menggunakan ALTER TABLE
pernyataan jika diperlukan.
Buat Tabel dengan Batasan DEFAULT
Contoh berikut membuat tabel dengan DEFAULT
kendala.
CREATE TABLE OrderItems
(
OrderId int NOT NULL PRIMARY KEY,
OrderItem int NOT NULL,
ProductId int NOT NULL,
Quantity int NOT NULL DEFAULT 1,
ItemPrice decimal(8,2) NOT NULL
);
Buat Tabel dengan Kolom Stempel Waktu
Anda dapat menggunakan DEFAULT
kendala untuk secara otomatis memasukkan tanggal dan waktu saat ini ke dalam kolom setiap kali baris baru dimasukkan. Ini sering disebut sebagai memasukkan cap waktu.
DBMS yang berbeda menggunakan fungsi yang berbeda untuk mengembalikan tanggal saat ini.
Berikut ini contoh melakukannya di SQL Server.
CREATE TABLE Users
(
UserId int NOT NULL PRIMARY KEY,
FirstName varchar(60) NOT NULL,
LastName varchar(60) NOT NULL,
DateInserted datetime DEFAULT CURRENT_TIMESTAMP
);
Di SQL Server, CURRENT_TIMESTAMP
adalah ANSI yang setara dengan GETDATE()
fungsi.
Sebagai alternatif, Anda dapat menggunakan SYSDATETIME()
untuk stempel waktu presisi yang lebih tinggi:
CREATE TABLE Users
(
UserId int NOT NULL PRIMARY KEY,
FirstName varchar(60) NOT NULL,
LastName varchar(60) NOT NULL,
DateInserted datetime2 DEFAULT SYSDATETIME()
);
Untuk mendukung presisi yang lebih tinggi, tipe data kolom harus datetime2 .
SQL Server memiliki beberapa tipe data untuk nilai tanggal/waktu. Lihat fungsi tanggal dan waktu SQL Server untuk daftar.
Setiap DBMS memiliki fungsinya masing-masing untuk mengembalikan tanggal dan waktu. Berikut daftar yang utama:
DB2 | CURRENT_DATE |
MySQL | CURRENT_DATE atau NOW() |
Oracle | SYSDATE |
PostgreSQL | CURRENT_DATE |
SQL Server | CURRENT_TIMESTAMP , GETDATE() atau SYSDATETIME() |
SQLite | datetime('now') |
Lihat juga:
- Fungsi Tanggal dan Waktu SQL Server
- Fungsi Tanggal dan Waktu SQLite
Buat Kolom dengan Nilai yang Bertambah Secara Otomatis
Terkadang Anda perlu membuat kolom yang secara otomatis menambah nilai setiap kali baris baru dimasukkan. Ini biasanya disebut sebagai kolom “peningkatan otomatis” atau “identitas”, tergantung pada DBMS yang digunakan.
Di SQL Server, gunakan IDENTITY
argumen:
CREATE TABLE Users
(
UserId int NOT NULL IDENTITY(1,1) PRIMARY KEY,
FirstName varchar(60) NOT NULL,
LastName varchar(60) NOT NULL,
DateInserted datetime2 DEFAULT SYSDATETIME()
);
Dalam hal ini, kami menggunakan IDENTITY(1,1)
.
1
pertama adalah benih. Ini menentukan nilai apa untuk memulai penghitungan (yaitu ini adalah nilai dari baris pertama yang dimasukkan ke dalam tabel).- Yang kedua
1
adalah kenaikan. Ini adalah nilai tambahan yang ditambahkan ke nilai identitas baris sebelumnya yang dimuat.
Setiap DBMS memiliki kata kunci sendiri untuk membuat kolom penambahan otomatis.
- Di MySQL dan MariaDb, gunakan
AUTO_INCREMENT
- Dalam SQLite, Anda memiliki beberapa opsi (termasuk
AUTOINCREMENT
kata kunci) - Di PostgreSQL, gunakan
SERIAL
- Dari Oracle Database 12c , Anda sekarang dapat menggunakan kata kunci IDENTITY untuk membuat kolom yang bertambah secara otomatis. Contohnya mungkin terlihat seperti:
UserId NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY
Opsi Lanjutan
Sebagian besar DBMS memungkinkan Anda untuk menentukan opsi lanjutan saat membuat tabel. Opsi yang tersedia akan sangat bergantung pada DBMS Anda.
Lihat dokumentasi DBMS Anda jika Anda memerlukan opsi yang tidak ditentukan dalam artikel ini.
Banyak opsi lanjutan dapat diatur melalui GUI (tergantung pada alat yang Anda gunakan untuk terhubung ke database Anda). Anda selalu dapat membuat atau memodifikasi tabel melalui GUI, lalu gunakan opsi "Script as Create" (atau serupa) untuk melihat kode SQL yang harus Anda jalankan untuk membuat tabel seperti itu. Anda dapat mengambil kode ini dan mengubah nama tabel, nama kolom, dll untuk membuat tabel baru berdasarkan definisi tabel sebelumnya.