Membuat Database dan Tabel di SQL

Apakah Anda siap untuk mulai membuat database dan tabel dengan Bahasa Kueri Terstruktur? Pada artikel ini, kami mengeksplorasi proses pembuatan tabel secara manual dengan perintah CREATE DATABASE dan CREATE TABLE. Jika Anda baru mengenal SQL, Anda mungkin ingin meninjau beberapa Dasar-dasar SQL pertama.

Persyaratan Bisnis

Sebelum kita duduk di depan keyboard, kita perlu memastikan bahwa kita memiliki pemahaman yang kuat tentang kebutuhan pelanggan. Apa cara terbaik untuk mendapatkan wawasan ini? Berbicara dengan pelanggan, tentu saja! Setelah duduk bersama Direktur Sumber Daya Manusia XYZ, kami mengetahui bahwa mereka adalah perusahaan penjualan widget dan terutama tertarik untuk melacak informasi tentang personel penjualan mereka.

XYZ Corporation membagi tenaga penjualannya menjadi wilayah timur dan barat, yang masing-masing dibagi menjadi banyak wilayah yang dicakup oleh perwakilan penjualan individu. Departemen SDM ingin melacak wilayah yang dicakup oleh setiap karyawan serta informasi gaji dan struktur pengawasan setiap karyawan. Untuk memenuhi persyaratan ini, kami telah merancang database yang terdiri dari tiga tabel, yang ditunjukkan pada:

instagram viewer
Diagram Entitas-Hubungan di halaman ini.

Memilih Platform Basis Data

Kami telah memutuskan untuk menggunakan sistem manajemen basis data (atau DBMS) yang dibangun di atas Structured Query Language (SQL). Oleh karena itu, semua perintah pembuatan database dan tabel kami harus ditulis dengan standar ANSI SQL.

Sebagai manfaat tambahan, menggunakan SQL yang sesuai dengan ANSI akan memastikan bahwa perintah ini akan bekerja pada DBMS apa pun yang mendukung standar SQL, termasuk Oracle dan Microsoft SQL Server. Jika Anda belum memilih platform untuk basis data Anda, Opsi Perangkat Lunak Basis Data memandu Anda melalui proses pemilihan.

Membuat Basis Data

Langkah pertama kita adalah membuat database itu sendiri. Banyak sistem manajemen basis data menawarkan serangkaian opsi untuk menyesuaikan parameter basis data pada langkah ini, tetapi basis data kami hanya mengizinkan pembuatan basis data secara sederhana. Seperti semua perintah kami, Anda mungkin ingin melihat dokumentasi DBMS Anda untuk menentukan apakah ada parameter lanjutan yang didukung oleh sistem spesifik Anda yang memenuhi kebutuhan Anda. Mari kita gunakan perintah CREATE DATABASE untuk mengatur database kita:

BUAT personel DATABASE

Perhatikan secara khusus penggunaan huruf besar pada contoh di atas. Ini adalah praktik umum di antara programmer SQL untuk menggunakan semua huruf kapital untuk kata kunci SQL seperti "CREATE" dan "DATABASE" saat menggunakan semua huruf kecil untuk nama yang ditentukan pengguna seperti database "personil" nama. Konvensi ini menyediakan keterbacaan yang mudah.

Sekarang setelah kita mendesain dan membuat database, kita siap untuk mulai membuat tiga tabel yang digunakan untuk menyimpan data personalia XYZ Corporation.

Membuat Tabel Pertama Kami

Tabel pertama kami terdiri dari data pribadi untuk setiap karyawan perusahaan kami. Kita perlu memasukkan nama setiap karyawan, gaji, ID, dan manajer. Ini adalah praktik desain yang baik untuk memisahkan nama belakang dan nama depan ke dalam bidang terpisah untuk menyederhanakan pencarian dan pengurutan data di masa mendatang. Selain itu, kami akan melacak setiap manajer karyawan dengan memasukkan referensi ke ID karyawan manajer di setiap catatan karyawan. Pertama-tama mari kita lihat tabel karyawan yang diinginkan.

Atribut ReportsTo menyimpan ID manajer untuk setiap karyawan. Dari catatan sampel yang ditampilkan, kita dapat menentukan bahwa Sue Scampi adalah manajer Tom Kendall dan John Smith. Namun, tidak ada informasi dalam database tentang manajer Sue, seperti yang ditunjukkan oleh entri NULL di barisnya.

Sekarang kita dapat menggunakan SQL untuk membuat tabel di database personalia kita. Sebelum kita melakukannya, mari kita pastikan bahwa kita berada di database yang benar dengan mengeluarkan perintah USE:

GUNAKAN personel;

Atau, "personel DATABASE;" perintah akan melakukan fungsi yang sama. Sekarang kita dapat melihat perintah SQL yang digunakan untuk membuat tabel karyawan kita:

BUAT karyawan TABEL
(employeeid INTEGER BUKAN NULL,
nama belakang VARCHAR(25) BUKAN NULL,
nama depan VARCHAR(25) BUKAN NULL,
melaporkan ke INTEGER NULL);

Seperti contoh di atas, perhatikan bahwa konvensi pemrograman menentukan bahwa kita menggunakan semua huruf kapital untuk kata kunci SQL dan huruf kecil untuk kolom dan tabel yang diberi nama pengguna. Perintah di atas mungkin tampak membingungkan pada awalnya, tetapi sebenarnya ada struktur sederhana di baliknya. Berikut adalah tampilan umum yang mungkin sedikit memperjelas:

BUAT TABEL nama_tabel
(opsi tipe data nama_atribut,
...,
opsi tipe data atribut_name);

Atribut dan Tipe Data

Pada contoh sebelumnya, nama tabel adalah karyawan dan kami menyertakan empat atribut: employeeid, lastname, firstname, dan reportto. Tipe data menunjukkan jenis informasi yang ingin kita simpan di setiap bidang. ID karyawan adalah bilangan bulat sederhana, jadi kita akan menggunakan tipe data INTEGER untuk field employeeid dan field reportto. Nama karyawan akan berupa string karakter dengan panjang variabel dan kami tidak mengharapkan karyawan mana pun memiliki nama depan atau belakang yang lebih panjang dari 25 karakter. Oleh karena itu, kami akan menggunakan tipe VARCHAR(25) untuk bidang ini.

Nilai NULL

Kami juga dapat menentukan NULL atau TIDAK NULL di bidang opsi pernyataan CREATE. Ini hanya memberi tahu database apakah nilai NULL (atau kosong) diperbolehkan untuk atribut tersebut saat menambahkan baris ke database. Dalam contoh kami, departemen SDM mengharuskan ID karyawan dan nama lengkap disimpan untuk setiap karyawan. Namun, tidak setiap karyawan memiliki manajer (CEO melapor kepada siapa pun!), jadi kami mengizinkan entri NULL di bidang itu. Perhatikan bahwa NULL adalah nilai default dan menghilangkan opsi ini secara implisit akan memungkinkan nilai NULL untuk atribut.

Membangun Meja yang Tersisa

Sekarang mari kita lihat tabel wilayah. Dari sekilas data ini, tampaknya kita perlu menyimpan sebuah integer dan dua string dengan panjang variabel. Seperti contoh sebelumnya, kami tidak mengharapkan ID Wilayah menggunakan lebih dari 25 karakter. Namun, beberapa wilayah kami memiliki nama yang lebih panjang, jadi kami akan memperluas panjang atribut yang diizinkan menjadi 40 karakter.

Mari kita lihat SQL yang sesuai:

BUAT TABEL wilayah
(territoryid INTEGER BUKAN NULL,
wilayah Deskripsi VARCHAR(40) NOT NULL,
regionid VARCHAR(25) BUKAN NULL);

Terakhir, kita akan menggunakan tabel EmployeeTerritories untuk menyimpan hubungan antara karyawan dan wilayah. Informasi terperinci tentang setiap karyawan dan wilayah disimpan di dua tabel kami sebelumnya. Oleh karena itu, kita hanya perlu menyimpan dua nomor identifikasi bilangan bulat dalam tabel ini. Jika kita perlu memperluas informasi ini, kita dapat menggunakan JOIN dalam perintah pemilihan data untuk mendapatkan informasi dari beberapa tabel.

Metode penyimpanan data ini mengurangi redundansi dalam database kami dan memastikan penggunaan ruang yang optimal pada drive penyimpanan kami. Kami akan membahas perintah JOIN secara mendalam di tutorial mendatang. Berikut kode SQL untuk mengimplementasikan tabel terakhir kami:

BUAT TABEL wilayah karyawan
(employeeid INTEGER BUKAN NULL,
teritoriid INTEGER BUKAN NULL);

Mekanisme yang Disediakan SQL untuk Mengubah Struktur Database Setelah Pembuatan

Jika Anda sangat cerdik hari ini, Anda mungkin telah memperhatikan bahwa kami "secara tidak sengaja" menghilangkan salah satu persyaratan desain saat menerapkan tabel database kami. Direktur SDM XYZ Corporation meminta agar database melacak informasi gaji karyawan dan kami mengabaikan untuk menyediakannya di tabel database yang kami buat.

Namun, semua tidak hilang. Kita dapat menggunakan perintah ALTER TABLE untuk menambahkan atribut ini ke database yang ada. Kami ingin menyimpan gaji sebagai nilai integer. Sintaksnya sangat mirip dengan perintah CREATE TABLE, ini dia:

ALTER TABLE karyawan
TAMBAHKAN gaji INTEGER NULL;

Perhatikan bahwa kami menetapkan bahwa nilai NULL diizinkan untuk atribut ini. Dalam kebanyakan kasus, tidak ada opsi saat menambahkan kolom ke tabel yang ada. Ini karena fakta bahwa tabel sudah berisi baris tanpa entri untuk atribut ini. Oleh karena itu, DBMS secara otomatis memasukkan nilai NULL untuk mengisi kekosongan.