Applies ToAccess untuk Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Anda bisa membuat dan mengubah tabel, batasan, indeks dan hubungan di Access dengan menulis kueri definisi data dalam tampilan SQL. Artikel ini menjelaskan kueri definisi data dan cara menggunakannya untuk membuat tabel, batasan, indeks, dan hubungan. Artikel ini juga bisa membantu Anda memutuskan kapan menggunakan kueri definisi data.

Dalam artikel ini

Gambaran Umum

Tidak seperti kueri Access lainnya, kueri definisi data tidak mengambil data. Sebagai gantinya, kueri definisi data menggunakan Bahasa Definisi Data untuk membuat, mengubah, atau menghapus objek database.

Catatan: Data Definition Language (DDL) adalah bagian dari Structured Query Language (SQL).

Kueri definisi data bisa sangat nyaman. Anda bisa secara teratur menghapus dan membuat kembali bagian dari skema database Anda hanya dengan menjalankan beberapa kueri. Pertimbangkan untuk menggunakan kueri definisi data jika Anda terbiasa dengan pernyataan SQL dan berencana untuk menghapus dan membuat kembali tabel, batasan, indeks, atau hubungan tertentu.

Peringatan: Menggunakan kueri definisi data untuk mengubah objek database bisa berisiko, karena tindakan tidak disertai dengan kotak dialog konfirmasi. Jika Anda membuat kesalahan, Anda bisa kehilangan data atau secara tidak sengaja mengubah desain tabel. Berhati-hatilah saat Anda menggunakan kueri definisi data untuk mengubah objek dalam database Anda. Jika Anda tidak bertanggung jawab untuk mengelola database yang Anda gunakan, Anda harus berkonsultasi dengan administrator database sebelum menjalankan kueri definisi data.

Penting: Buat salinan cadangan tabel apa pun yang terlibat sebelum Anda menjalankan kueri definisi data.

Kata kunci DDL

Kata kunci

Penggunaan

CREATE

Buat indeks atau tabel yang belum ada.

ALTER

Mengubah tabel atau kolom yang sudah ada.

DROP

Menghapus tabel, kolom, atau batasan yang sudah ada.

ADD

Menambahkan kolom atau batasan ke tabel.

COLUMN

Gunakan dengan ADD, ALTER, atau DROP

CONSTRAINT

Gunakan dengan ADD, ALTER, atau DROP

INDEX

Gunakan dengan CREATE

TABLE

Gunakan dengan ALTER, CREATE, atau DROP

Atas Halaman

Membuat atau mengubah tabel

Untuk membuat tabel, gunakan perintah BUAT TABEL. Perintah CREATE TABLE memiliki sintaks berikut:

CREATE TABLE table_name  (field1 type [(size)] [NOT NULL] [index1] [, field2 type [(size)] [NOT NULL] [index2] [, ...][, CONSTRAINT constraint1 [, ...]])

Satu-satunya elemen yang diperlukan dari perintah CREATE TABLE adalah perintah CREATE TABLE itu sendiri dan nama tabel, tetapi biasanya Anda ingin menentukan beberapa bidang atau aspek tabel lainnya. Pertimbangkan contoh sederhana ini.

Anggaplah Anda ingin membuat tabel untuk menyimpan nama, tahun, dan harga mobil bekas yang Anda pertimbangkan untuk dibeli. Anda ingin mengizinkan hingga 30 karakter untuk nama tersebut, dan 4 karakter untuk tahun tersebut. Untuk menggunakan kueri definisi data untuk membuat tabel, lakukan hal berikut:

Catatan: Anda mungkin perlu mengaktifkan konten database terlebih dahulu agar kueri definisi data dapat dijalankan:

  • Pada Bilah Pesan, klik Aktifkan Konten.

Membuat tabel

  1. Pada tab Buat , dalam grup Makro & Kode , klik Desain Kueri.

  2. Pada tab Desain , dalam grup Tipe Kueri , klik Definisi Data.

    Kisi desain disembunyikan, dan tab objek tampilan SQL ditampilkan.

  3. Ketikkan pernyataan SQL berikut:

    BUAT Mobil TABLE (Name TEXT(30), Year TEXT(4), Price CURRENCY)

  4. Pada tab Desain, dalam grup Hasil, klik Jalankan.

Mengubah tabel

Untuk mengubah tabel, gunakan perintah ALTER TABLE. Anda dapat menggunakan perintah ALTER TABLE untuk menambahkan, mengubah, atau menjatuhkan (menghapus) kolom atau batasan. Perintah ALTER TABLE memiliki sintaks berikut:

ALTER TABLE table_name predicate

di mana predikat bisa salah satu dari yang berikut ini:

ADD COLUMN field type[(size)] [NOT NULL] [CONSTRAINT constraint]

ADD CONSTRAINT multifield_constraint

ALTER COLUMN field type[(size)]

DROP COLUMN field

DROP CONSTRAINT constraint

Anggaplah Anda ingin menambahkan bidang teks 10 karakter untuk menyimpan informasi tentang kondisi setiap mobil. Anda dapat melakukan hal berikut:

  1. Pada tab Buat , dalam grup Makro & Kode , klik Desain Kueri.

  2. Pada tab Desain , dalam grup Tipe Kueri , klik Definisi Data.

    Kisi desain disembunyikan, dan tab objek tampilan SQL ditampilkan.

  3. Ketikkan pernyataan SQL berikut:

    ALTER TABLE Cars ADD COLUMN Condition TEXT(10)

  4. Pada tab Desain, dalam grup Hasil, klik Jalankan.

Atas Halaman

Membuat indeks

Untuk membuat indeks pada tabel yang sudah ada, gunakan perintah BUAT INDEKS. Perintah CREATE INDEX memiliki sintaks berikut:

CREATE [UNIQUE] INDEX index_name ON table (field1 [DESC][, field2 [DESC], ...]) [WITH {PRIMARY | DISALLOW NULL | IGNORE NULL}]

Elemen yang diperlukan hanyalah perintah CREATE INDEX, nama indeks, argumen ON, nama tabel yang berisi bidang yang ingin Anda indeks, dan daftar bidang yang akan disertakan dalam indeks.

  • Argumen DESC menyebabkan indeks dibuat dalam urutan menurun, yang bisa berguna jika Anda sering menjalankan kueri yang mencari nilai teratas untuk bidang terindeks, atau yang mengurutkan bidang terindeks dalam urutan menurun. Secara default, indeks dibuat dalam urutan naik.

  • Argumen WITH PRIMARY menetapkan bidang atau bidang terindeks sebagai kunci utama tabel.

  • Argumen WITH DISALLOW NULL menyebabkan indeks mengharuskan nilai dimasukkan untuk bidang terindeks — yaitu, nilai null tidak diperbolehkan.

Misalkan Anda memiliki tabel bernama Mobil dengan bidang yang menyimpan nama, tahun, harga, dan kondisi mobil bekas yang Anda pertimbangkan untuk dibeli. Anggap juga bahwa tabel telah menjadi besar dan Anda sering menyertakan bidang tahun dalam kueri. Anda dapat membuat indeks pada bidang Tahun untuk membantu kueri mengembalikan hasil dengan lebih cepat menggunakan prosedur berikut:

  1. Pada tab Buat , dalam grup Makro & Kode , klik Desain Kueri.

  2. Pada tab Desain , dalam grup Tipe Kueri , klik Definisi Data.

    Kisi desain disembunyikan, dan tab objek tampilan SQL ditampilkan.

  3. Ketikkan pernyataan SQL berikut:

    CREATE INDEX YearIndex ON Cars (Tahun)

  4. Pada tab Desain, dalam grup Hasil, klik Jalankan.

Atas Halaman

Membuat batasan atau hubungan

Batasan menetapkan kondisi logika yang harus dipenuhi bidang atau kombinasi ketika nilai disisipkan. Misalnya, batasan UNIQUE mencegah bidang yang dibatasi menerima nilai yang akan menduplikasi nilai yang sudah ada untuk bidang tersebut.

Hubungan adalah tipe batasan yang merujuk ke nilai bidang atau kombinasi bidang dalam tabel lain untuk menentukan apakah nilai bisa disisipkan dalam bidang yang dibatasi atau kombinasi bidang. Anda tidak menggunakan kata kunci khusus untuk menunjukkan bahwa batasan adalah hubungan.

Untuk membuat batasan, gunakan klausul CONSTRAINT dalam perintah BUAT TABEL atau ALTER TABLE. Ada dua jenis klausul CONSTRAINT: satu untuk membuat batasan pada satu bidang, dan satu lagi untuk membuat batasan pada beberapa bidang.

Batasan bidang tunggal

Klausul CONSTRAINT bidang tunggal segera mengikuti definisi bidang yang dibatasinya, dan memiliki sintaks berikut:

CONSTRAINT constraint_name {PRIMARY KEY | UNIQUE | NOT NULL | REFERENCES foreign_table [(foreign_field)] [ON UPDATE {CASCADE | SET NULL}] [ON DELETE {CASCADE | SET NULL}]}

Misalkan Anda memiliki tabel bernama Mobil dengan bidang yang menyimpan nama, tahun, harga, dan kondisi mobil bekas yang Anda pertimbangkan untuk dibeli. Anggap juga Bahwa Anda sering lupa untuk memasukkan nilai untuk kondisi mobil, dan bahwa Anda selalu ingin merekam informasi ini. Anda bisa membuat batasan pada bidang Kondisi yang mencegah Anda membiarkan bidang kosong, dengan menggunakan prosedur berikut ini:

  1. Pada tab Buat , dalam grup Makro & Kode , klik Desain Kueri.

  2. Pada tab Desain , dalam grup Tipe Kueri , klik Definisi Data.

    Kisi desain disembunyikan, dan tab objek tampilan SQL ditampilkan.

  3. Ketikkan pernyataan SQL berikut:

    ALTER TABLE Cars ALTER COLUMN Condition TEXT CONSTRAINT ConditionRequired NOT NULL

  4. Pada tab Desain, dalam grup Hasil, klik Jalankan.

Sekarang anggaplah bahwa, setelah beberapa saat, Anda melihat bahwa ada banyak nilai yang sama dalam bidang Kondisi yang harus sama. Misalnya, beberapa mobil memiliki nilai Kondisi buruk dan yang lain memiliki nilai buruk.

Catatan: Jika Anda ingin mengikuti prosedur yang tersisa, tambahkan beberapa data palsu ke tabel Mobil yang Anda buat dalam langkah sebelumnya.

Setelah Anda membersihkan nilai agar lebih konsisten, Anda bisa membuat tabel, bernama CarCondition, dengan satu bidang, bernama Condition, yang berisi semua nilai yang ingin Anda gunakan untuk kondisi mobil:

  1. Pada tab Buat , dalam grup Makro & Kode , klik Desain Kueri.

  2. Pada tab Desain , dalam grup Tipe Kueri , klik Definisi Data.

    Kisi desain disembunyikan, dan tab objek tampilan SQL ditampilkan.

  3. Ketikkan pernyataan SQL berikut:

    CREATE TABLE CarCondition (Condition TEXT(10))

  4. Pada tab Desain, dalam grup Hasil, klik Jalankan.

  5. Buat kunci utama untuk tabel menggunakan pernyataan ALTER TABLE:

    ALTER TABLE CarCondition ALTER COLUMN Condition TEXT CONSTRAINT CarConditionPK PRIMARY KEY

  6. Untuk menyisipkan nilai dari bidang Kondisi tabel Mobil ke tabel CarCondition baru, ketikkan SQL berikut ini ke dalam tab objek tampilan SQL:

    INSERT INTO CarCondition SELECT DISTINCT Condition FROM Cars;

    Catatan: Pernyataan SQL dalam langkah ini adalah permintaan tambahan. Tidak seperti kueri definisi data, kueri penambahan diakhiri dengan titik koma.

  7. Pada tab Desain, dalam grup Hasil, klik Jalankan.

Membuat hubungan dengan menggunakan batasan

Untuk mengharuskan nilai baru yang disisipkan dalam bidang Kondisi tabel Mobil cocok dengan nilai bidang Kondisi dalam tabel CarCondition, Anda kemudian dapat membuat hubungan antara CarCondition dan Mobil pada bidang bernama Kondisi, dengan menggunakan prosedur berikut:

  1. Pada tab Buat , dalam grup Makro & Kode , klik Desain Kueri.

  2. Pada tab Desain , dalam grup Tipe Kueri , klik Definisi Data.

    Kisi desain disembunyikan, dan tab objek tampilan SQL ditampilkan.

  3. Ketikkan pernyataan SQL berikut:

    ALTER TABLE Cars ALTER COLUMN Condition TEXT CONSTRAINT FKeyCondition REFERENCES CarCondition (Condition)

  4. Pada tab Desain, dalam grup Hasil, klik Jalankan.

Batasan beberapa bidang

Klausul CONSTRAINT beberapa bidang hanya dapat digunakan di luar klausul definisi bidang, dan memiliki sintaks berikut:

CONSTRAINT constraint_name {PRIMARY KEY (pk_field1[, pk_field2[, ...]]) | UNIQUE (unique1[, unique2[, ...]]) | NOT NULL (notnull1[, notnull2[, ...]]) | FOREIGN KEY [NO INDEX] (ref_field1[, ref_field2[, ...]])   REFERENCES foreign_table   [(fk_field1[, fk_field2[, ...]])] | [ON UPDATE {CASCADE | SET NULL}] [ON DELETE {CASCADE | SET NULL}]}

Pertimbangkan contoh lain yang menggunakan tabel Mobil. Misalnya, Anda ingin memastikan bahwa tidak ada dua rekaman dalam tabel Mobil yang memiliki sekumpulan nilai yang sama untuk Nama, Tahun, Kondisi, dan Harga. Anda bisa membuat batasan UNIQUE yang berlaku untuk bidang ini, dengan menggunakan prosedur berikut:

  1. Pada tab Buat , dalam grup Makro & Kode , klik Desain Kueri.

  2. Pada tab Desain , dalam grup Tipe Kueri , klik Definisi Data.

    Kisi desain disembunyikan, dan tab objek tampilan SQL ditampilkan.

  3. Ketikkan pernyataan SQL berikut:

    ALTER TABLE Cars ADD CONSTRAINT NoDupes UNIQUE (name, year, condition, price)

  4. Pada tab Desain, dalam grup Hasil, klik Jalankan.

Atas Halaman

Perlu bantuan lainnya?

Ingin opsi lainnya?

Jelajahi manfaat langganan, telusuri kursus pelatihan, pelajari cara mengamankan perangkat Anda, dan banyak lagi.

Komunitas membantu Anda bertanya dan menjawab pertanyaan, memberikan umpan balik, dan mendengar dari para ahli yang memiliki pengetahuan yang luas.