Adakah anda bersedia untuk membuat pangkalan data dan jadual dengan Bahasa Kuasa Struktur? Dalam artikel ini, kami meneroka proses membuat jadual secara manual dengan perintah CREATE DATABASE dan CREATE TABLE. Jika anda baru kepada SQL, anda mungkin ingin mengkaji beberapa asas SQL terlebih dahulu.
Keperluan Perniagaan
Sebelum kita duduk di papan kekunci, kita perlu memastikan bahawa kita mempunyai pemahaman yang kukuh tentang keperluan pelanggan. Apa cara terbaik untuk mendapatkan wawasan ini? Bercakap dengan pelanggan, tentu saja! Selepas duduk bersama Pengarah Sumber Manusia XYZ, kami telah mengetahui bahawa mereka adalah syarikat jualan widget dan berminat untuk menjejaki maklumat mengenai kakitangan jualan mereka.
XYZ Corporation membahagikan pasukan jualan mereka ke wilayah timur dan barat, masing-masing dibahagikan kepada banyak wilayah yang diliputi oleh wakil jualan individu. Jabatan Sumber Manusia ingin mengesan wilayah yang dilindungi oleh setiap pekerja serta maklumat gaji dan struktur penyeliaan setiap pekerja. Untuk memenuhi keperluan ini, kami telah merangka pangkalan data yang terdiri daripada tiga jadual, ditunjukkan dalam rajah Entity-Relationship pada halaman ini.
Memilih Platform Pangkalan Data
Kami telah memutuskan untuk menggunakan sistem pengurusan pangkalan data (atau DBMS) yang dibina di atas Bahasa Kuasa Struktur (SQL). Oleh itu, semua pangkalan data kami dan perintah penciptaan jadual harus ditulis dengan standard ANSI SQL dalam fikiran.
Sebagai manfaat tambahan, menggunakan SQL yang mematuhi ANSI akan memastikan bahawa arahan ini akan berfungsi pada mana-mana DBMS yang menyokong standard SQL, termasuk Oracle dan Microsoft SQL Server. Sekiranya anda belum memilih platform untuk pangkalan data anda, Pilihan Perisian Pangkalan Data membolehkan anda melalui proses pemilihan.
Mewujudkan Pangkalan Data
Langkah pertama kami adalah untuk membuat pangkalan data itu sendiri. Banyak sistem pengurusan pangkalan data menawarkan satu siri pilihan untuk menyesuaikan parameter pangkalan data pada langkah ini, tetapi pangkalan data kami hanya membenarkan penciptaan pangkalan data mudah. Seperti semua arahan kami, anda mungkin ingin merujuk kepada dokumentasi untuk DBMS anda untuk menentukan sama ada parameter lanjutan yang disokong oleh sistem khusus anda memenuhi keperluan anda. Mari kita gunakan arahan CREATE DATABASE untuk menyediakan pangkalan data kami:
CREATE DATABASE personnel
Ambil nota khas mengenai permodalan yang digunakan dalam contoh di atas. Amalan biasa di kalangan pengaturcara SQL menggunakan semua huruf besar untuk kata kunci SQL seperti "CREATE" dan "DATABASE" sambil menggunakan semua huruf kecil untuk nama yang ditentukan pengguna seperti nama pangkalan "kakitangan". Konvensyen-konvensyen ini menyediakan mudah dibaca. Sekarang bahawa kami telah merancang dan mencipta pangkalan data kami, kami bersedia untuk membuat tiga jadual yang digunakan untuk menyimpan data kakitangan XYZ Corporation. Jadual pertama kami terdiri daripada data peribadi untuk setiap pekerja syarikat kami. Kita perlu memasukkan nama, gaji, ID, dan pengurus setiap pekerja. Amalan reka bentuk yang baik untuk memisahkan nama terakhir dan pertama ke dalam bidang yang berasingan untuk memudahkan pencarian data dan menyusunnya pada masa akan datang. Juga, kami akan menjejaki pengurus setiap pekerja dengan memasukkan rujukan kepada ID pekerja pengurus dalam setiap rekod pekerja. Pertama kita lihat meja pekerja yang diingini. Atribut ReportsTo menyimpan ID pengurus untuk setiap pekerja. Dari rekod sampel yang ditunjukkan, kita dapat menentukan bahawa Sue Scampi adalah pengurus kedua-dua Tom Kendall dan John Smith. Walau bagaimanapun, tidak ada maklumat dalam pangkalan data mengenai pengurus Sue, seperti yang ditunjukkan oleh entri NULL di barisnya. Sekarang kita boleh menggunakan SQL untuk membuat jadual dalam pangkalan data kakitangan kami. Sebelum kita berbuat demikian, mari pastikan kita berada dalam pangkalan data yang betul dengan mengeluarkan arahan USE: Kakitangan GUNAKAN;
Secara alternatifnya, "personil DATABASE;" arahan akan melaksanakan fungsi yang sama. Kini kita dapat melihat arahan SQL yang digunakan untuk membuat jadual pekerja kami: CREATE TABLE employees (employeeid INTEGER TIDAK NULL, lastname VARCHAR (25) TIDAK NULL, firstname VARCHAR (25) TIDAK NULL, reportsto INTEGER NULL);
Seperti contoh di atas, ambil perhatian bahawa konvensyen pengaturcaraan menentukan bahawa kita menggunakan semua huruf kapital untuk kata kunci SQL dan huruf kecil untuk lajur dan jadual yang diberi nama pengguna. Perintah di atas mungkin kelihatan mengelirukan pada mulanya, tetapi sebenarnya ada struktur mudah di belakangnya. Berikut adalah pandangan yang umum yang mungkin menampakkan sedikit perkara: BUAT jadual_name (pilihan sifat data attribute_name, …, pilihan datatype attribute_name); Dalam contoh terdahulu, nama jadual adalah pekerja dan kami memasukkan empat atribut: employeeid, nama akhir, nama depan, dan laporan. Data jenis ini menunjukkan jenis maklumat yang ingin kami simpan dalam setiap bidang. ID pekerja adalah nombor integer mudah, jadi kami akan menggunakan datatype INTEGER untuk kedua-dua bidang pekerja dan field laporan. Nama pekerja akan menjadi rentetan aksara panjang berubah dan kami tidak mengharapkan mana-mana pekerja mempunyai nama pertama atau nama lebih lama daripada 25 aksara. Oleh itu, kami akan menggunakan jenis VARCHAR (25) untuk medan ini. Kita juga boleh menentukan sama ada NULL atau TIDAK NULL dalam medan pilihan penyataan CREATE. Ini hanya memberitahu pangkalan data sama ada nilai NULL (atau kosong) dibenarkan untuk atribut tersebut apabila menambah baris kepada pangkalan data. Dalam contoh kami, jabatan HR memerlukan ID pekerja dan nama lengkap disimpan untuk setiap pekerja. Bagaimanapun, bukan setiap pekerja mempunyai pengurus (laporan Ketua Pegawai Eksekutif melaporkan kepada sesiapa!) Jadi kami membenarkan penyertaan NULL dalam bidang itu.Ambil perhatian bahawa NULL adalah nilai lalai dan meninggalkan pilihan ini secara tersirat membolehkan nilai NULL untuk atribut. Sekarang mari kita lihat di jadual wilayah. Dari pandangan yang cepat pada data ini, nampaknya kita perlu menyimpan integer dan dua rentetan panjang berubah. Seperti contoh sebelumnya, kami tidak mengharapkan ID Kawasan mengambil lebih daripada 25 aksara. Walau bagaimanapun, beberapa wilayah kami mempunyai nama yang lebih panjang, jadi kami akan memperluaskan panjang atribut yang dibenarkan untuk 40 aksara. Mari lihat pada SQL sepadan: JAWAPAN wilayah TABLE (terrain INTEGER TIDAK NULL, wilayah Penerangan VARCHAR (40) TIDAK NULL, regionid VARCHAR (25) TIDAK NULL);
Akhirnya, kami akan menggunakan jadual PekerjaTerritori untuk menyimpan hubungan antara pekerja dan wilayah. Maklumat terperinci mengenai setiap pekerja dan wilayah disimpan dalam dua jadual sebelumnya. Oleh itu, kita hanya perlu menyimpan dua nombor pengenalan integer dalam jadual ini. Jika kita perlu memperluaskan maklumat ini, kita boleh menggunakan JOIN dalam perintah pemilihan data kami untuk mendapatkan maklumat dari pelbagai jadual. Kaedah menyimpan data ini mengurangkan redundansi dalam pangkalan data kami dan memastikan penggunaan ruang yang optimum pada pemacu storan kami. Kami akan menutup arahan JOIN dengan mendalam dalam tutorial masa depan. Berikut adalah kod SQL untuk melaksanakan jadual akhir kami: CREATE employeeterritories (employeeid INTEGER TIDAK NULL, wilayah INTEGER TIDAK NULL); Sekiranya anda sangat pandai hari ini, anda mungkin menyedari bahawa kami "secara tidak sengaja" mengabaikan salah satu keperluan reka bentuk apabila melaksanakan jadual pangkalan data kami. Pengarah Sumber Manusia XYZ Corporation meminta agar maklumat gaji kakitangan mengejar pangkalan data dan kami mengabaikan untuk menyediakan ini dalam jadual pangkalan data yang kami buat. Walau bagaimanapun, semuanya tidak hilang. Kita boleh menggunakan arahan ALTER TABLE untuk menambah atribut ini ke pangkalan data yang sedia ada. Kami mahu menyimpan gaji sebagai nilai integer. Sintaks ini agak serupa dengan perintah CREATE TABLE, di sini adalah: Pekerja ALTER TABLE TUKAR gaji INTEGER NULL;
Perhatikan bahawa kami menyatakan bahawa nilai NULL dibenarkan untuk atribut ini. Dalam kebanyakan kes, tiada pilihan apabila menambah lajur ke jadual sedia ada. Ini disebabkan oleh fakta bahawa jadual itu mengandungi baris tanpa kemasukan atribut ini. Oleh itu, DBMS secara automatik memasukkan nilai NULL untuk mengisi kekosongan. Mencipta Jadual Pertama Kami
Atribut dan Jenis Data
Nilai NULL
Membina Jadual yang Sisa
Mekanisme SQL Menyediakan Mengubah Struktur Pangkalan Data Selepas Penciptaan