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:
TableNameadalah nama yang ingin Anda berikan ke tabelColumn1, dll adalah nama yang Anda berikan ke kolom Andadatatypeadalah tipe data yang Anda tetapkan untuk setiap kolom. Sebagian besar RDBMS mengharuskan Anda menetapkan tipe data untuk setiap kolom. Di SQLite, ini opsional.optional_constraintsadalah 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
PetIdSaya 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 NULLadalah batasan tabel yang menetapkan bahwa kolom ini harus berisi nilai (yaitu tidak boleh berisiNULLnilai).NULLberarti kolom boleh berisiNULLnilai-nilai. Beberapa DBMS (seperti DB2) tidak mendukungNULLkata kunci, sehingga Anda harus menghilangkannya saat bekerja dengan DBMS semacam itu.PRIMARY KEYmenambahkan 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.PetTypeIdkolom mereferensikanPetTypes.PetTypeIdkolom (nilai apa pun yang masuk kePets.PetTypeIdkolom harus memiliki nilai yang cocok diPetTypes.PetTypeIdkolom).Pets.OwnerIdkolom mereferensikanOwners.OwnerIdkolom (nilai apa pun yang masuk kePets.OwnerIdkolom harus memiliki nilai yang cocok diOwners.OwnerIdkolom).
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) .
1pertama adalah benih. Ini menentukan nilai apa untuk memulai penghitungan (yaitu ini adalah nilai dari baris pertama yang dimasukkan ke dalam tabel).- Yang kedua
1adalah 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
AUTOINCREMENTkata 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.