Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

SQL Server 2016:Buat Hubungan

Anda dapat membuat hubungan antar tabel dengan menggunakan skrip GUI atau SQL. Di sini, saya mendemonstrasikan kedua metode tersebut.

Dalam desain basis data relasional, sebuah hubungan adalah tempat dua atau lebih tabel dihubungkan bersama karena mengandung data terkait. Hal ini memungkinkan pengguna untuk menjalankan kueri untuk data terkait di beberapa tabel.

Di sini, kita akan membuat hubungan berikut.

Metode

Inilah cara kami melakukannya:

  • Kami akan menggunakan SQL untuk membuat Album tabel dan satu hubungan.
  • Kami akan menggunakan GUI untuk menciptakan hubungan lain.

Dengan begitu, Anda akan melihat kedua metode menciptakan hubungan.

Kita hanya perlu membuat satu tabel karena kita telah membuat dua tabel ini sebelumnya dalam tutorial ini (artis Artis tabel melalui GUI dan Genre tabel menggunakan SQL).

Buat Hubungan menggunakan SQL

Buka jendela kueri baru di SSMS dan jalankan kode berikut:

CREATE TABLE Albums
 (
  AlbumId int IDENTITY(1,1) NOT NULL PRIMARY KEY,
  AlbumName nvarchar(255) NOT NULL,
  ReleaseDate date NOT NULL,
  ArtistId int NOT NULL,
  GenreId int NOT NULL
  
  CONSTRAINT FK_Albums_Artists FOREIGN KEY (ArtistId)     
    REFERENCES dbo.Artists (ArtistId)     
    ON DELETE NO ACTION    
    ON UPDATE NO ACTION    
);

Bagian pertama dari pernyataan itu membuat tabel.

Bagian terakhir mendefinisikan hubungan. Bagian ini:

CONSTRAINT FK_Albums_Artists FOREIGN KEY (ArtistId)     
    REFERENCES dbo.Artists (ArtistId)     
    ON DELETE NO ACTION    
    ON UPDATE NO ACTION

Dua baris pertama menciptakan hubungan. Mereka membuat batasan kunci asing antara Albums.ArtistId kolom dan Artists.ArtistId kolom.

Dua baris terakhir menentukan apa yang harus dilakukan SQL Server jika seseorang mencoba menghapus atau memperbarui catatan induk yang direferensikan oleh catatan di tabel anak. Dalam hal ini, NO ACTION berarti penghapusan/pembaruan tidak akan dilanjutkan. Pengguna hanya akan mendapatkan kesalahan.

Anda dapat mengubahnya menjadi ON DELETE CASCADE jika Anda ingin dapat menghapus induk dan anak sekaligus (yaitu, penghapusan akan mengalir dari induk ke anak). Logika yang sama berlaku untuk pembaruan, dengan menggunakan ON UPDATE CASADE .

NO ACTION adalah nilai default, jadi kita bisa melakukannya tanpa dua baris kode terakhir. Namun, saya menyertakannya, karena ini merupakan faktor penting untuk dipikirkan saat membuat batasan kunci asing.

Apa yang dimaksud dengan Batasan Kunci Asing?

batasan kunci asing mendefinisikan hubungan antara tabel ini dan tabel lain. Saat Anda membuat batasan kunci asing, Anda membuatnya terhadap kolom tertentu di anak tabel, untuk mereferensikan kolom tertentu di induk tabel.

Ini membuat kolom di tabel anak menjadi kunci asing . Batasan memastikan bahwa nilai apa pun yang masuk ke kolom (kunci asing) ini sesuai dengan nilai di kolom kunci utama tabel induk. Jika seseorang mencoba memasukkan nilai yang tidak sesuai dengan nilai di kolom kunci utama tabel induk, SQL Server akan memunculkan kesalahan.

Ini membantu menegakkan integritas referensial. Ini mencegah kita dari memiliki catatan yatim (catatan anak yang tidak memiliki orang tua). Atau dalam contoh kami, album yang tidak terkait dengan artis mana pun.

Membuat Hubungan melalui GUI

Sekarang kita akan membuat hubungan lain melalui GUI SQL Server Mangement Studio.

Akan lebih mudah untuk memasukkan ini ke dalam skrip di atas, tetapi saya ingin mendemonstrasikan kedua metode menciptakan hubungan.

  1. Buka Tabel Anak di Perancang Tabel

    Klik kanan pada tabel anak (Album kami yang baru dibuat tabel) dan pilih Desain dari menu kontekstual.

    Jika Anda tidak dapat melihat tabel yang baru dibuat di Object Browser, Anda mungkin perlu me-refresh Object Browser.

    Klik kanan pada Tabel simpul dan pilih Segarkan .

  2. Buka Dialog Hubungan Kunci Asing

    Pilih Desainer Tabel> Hubungan... dari menu atas.

  3. Tambahkan Hubungan

    Dialog Hubungan Kunci Asing akan menunjukkan kepada Anda hubungan apa pun yang ada untuk tabel. Kita bisa melihat hubungan yang kita buat sebelumnya, saat kita membuat tabel.

    Klik Tambah untuk menambahkan hubungan lain.

  4. Pilih Tabel Dan Spesifikasi Kolom

    Hubungan baru muncul di atas hubungan lainnya di Hubungan yang Dipilih daftar dengan nama FK_Albums_Albums .

    Memastikan bahwa hubungan baru dipilih, klik Spesifikasi Tabel dan Kolom di panel kanan. Elips muncul di sebelah kanan properti.

    Klik elips (... ) untuk meluncurkan kotak dialog Tabel dan Kolom.

  5. Kotak Dialog Tabel dan Kolom

    Di sini, Anda memilih tabel kunci utama di panel kiri, dan tabel kunci asing di sebelah kanan.

    • Di bawah Tabel kunci utama: pilih Genre sebagai tabel dan GenreId sebagai kolom.
    • Di bawah Tabel kunci asing: pilih Album sebagai tabel dan GenreId sebagai kolom.

    Klik Oke .

    SQL Server akan menyarankan nama untuk hubungan tersebut. Anda dapat mengedit ini jika Anda mau. Jika tidak, biarkan apa adanya.

  6. Hubungan

    Hubungan Anda sekarang akan ditampilkan dengan benar di kotak dialog Hubungan Kunci Asing.

    Klik Tutup .

  7. Menyimpan Hubungan

    Hubungan Anda tidak akan disimpan sampai Anda menyimpan tabel. Saat Anda menyimpan tabel, Anda mungkin akan mendapatkan peringatan bahwa dua tabel akan disimpan. Hal ini diharapkan, karena hubungan mempengaruhi dua tabel.

    Klik Ya untuk menyimpan kedua tabel.

    Jika Anda memilih Desainer Tabel> Hubungan... untuk tabel induk, Anda juga akan melihat hubungannya di sana.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Transaksi Terdistribusi pada Server Tertaut antara sql server dan mysql

  2. SQL ganti semua NULL

  3. EXISTS vs JOIN dan penggunaan klausa EXISTS

  4. Tingkatkan penyetelan kinerja SQL Server dengan 3 tips ini

  5. Permintaan SQL Server untuk menemukan semua izin/akses untuk semua pengguna dalam database