Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk menanyakan kekangan kunci asing dalam mysql

Bagaimana untuk menanyakan kekangan kunci asing dalam mysql

WBOY
WBOYasal
2022-05-16 17:07:407824semak imbas

Dalam mysql, anda boleh menggunakan pernyataan show untuk menanyakan kekangan kunci asing paparkan maklumat dalam jadual Maklumat tentang semua kekangan kunci utama, kekangan kunci asing, kekangan bukan nol dan kekangan lain.

Bagaimana untuk menanyakan kekangan kunci asing dalam mysql

Persekitaran pengendalian tutorial ini: sistem Windows 10, versi mysql8.0.22, komputer Dell G3.

Cara untuk menanyakan kekangan kunci asing dalam mysql

Arahan mysqlshow digunakan untuk memaparkan maklumat pangkalan data, jadual dan lajur dalam pelayan MySQL.

Dalam MySQL, anda boleh menggunakan pernyataan SHOW CREATE TABLE untuk melihat kekangan dalam jadual dan kemudian menanyakan kekangan kunci asing.

Lihat format sintaks kekangan dalam jadual data seperti berikut:

SHOW CREATE TABLE <数据表名>;

Contohnya adalah seperti berikut:

mysql> CREATE TABLE tb_emp8
    -> (
    -> id INT(11) PRIMARY KEY,
    -> name VARCHAR(22) UNIQUE,
    -> deptId INT(11) NOT NULL,
    -> salary FLOAT DEFAULT 0,
    -> CHECK(salary>0),
    -> FOREIGN KEY(deptId) REFERENCES tb_dept1(id)
    -> );
Query OK, 0 rows affected (0.37 sec)
mysql> SHOW CREATE TABLE tb_emp8 \G
*************************** 1. row ***************************
       Table: tb_emp8
Create Table: CREATE TABLE `tb_emp8` (
  `id` int(11) NOT NULL,
  `name` varchar(22) DEFAULT NULL,
  `deptId` int(11) NOT NULL,
  `salary` float DEFAULT &#39;0&#39;,
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`),
  KEY `deptId` (`deptId`),
  CONSTRAINT `tb_emp8_ibfk_1` FOREIGN KEY (`deptId`) REFERENCES `tb_dept1` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312
1 row in set (0.19 sec)

Pengetahuan lanjutan:

Out Definition of key constraints

Mysql foreign key constraint (FOREIGN KEY) ialah medan khas jadual, selalunya digunakan bersama-sama dengan primary key constraints. Untuk dua jadual dengan perhubungan yang berkaitan, jadual tempat kunci utama dalam medan berkaitan terletak ialah jadual utama (jadual induk), dan jadual tempat kunci asing terletak ialah jadual hamba (jadual anak)

Andaikan kita mempunyai 2 Jadual ialah Jadual A dan Jadual B masing-masing Ia berkaitan melalui medan biasa "id". Jika "id" ialah kunci utama dalam jadual A, maka jadual A ialah jadual utama dalam perhubungan R ini. Sejajar dengan itu, jadual B ialah jadual hamba dalam hubungan ini, dan "id" dalam jadual B ialah apa yang digunakan oleh jadual B untuk merujuk data dalam jadual A, yang dipanggil kunci asing. Oleh itu, kunci asing ialah medan awam yang digunakan untuk merujuk data dalam jadual utama daripada jadual

Peranan kekangan kunci asing

Kekangan kunci asing boleh membantu kita tentukan Hubungan rujukan antara medan kunci asing dalam jadual hamba dan medan kunci utama dalam jadual induk juga boleh memastikan bahawa data jadual induk yang dirujuk oleh data dalam jadual hamba tidak akan dipadamkan, memastikan ketekalan data dalam dua jadual

Apabila rekod dipadamkan daripada jadual utama, rekod yang sepadan daripada jadual hamba juga mesti ditukar sewajarnya. Jadual boleh mempunyai satu atau lebih kunci asing, dan kunci asing boleh menjadi nilai nol Jika ia bukan nilai nol, nilai setiap kunci asing mestilah sama dengan nilai tertentu kunci utama dalam jadual utama <.>

Walau bagaimanapun, kunci asing Kekangan utama adalah mahal dan memerlukan sumber sistem untuk digunakan, dan mungkin tidak sesuai untuk operasi SQL serentak yang besar. Oleh itu, MySQL membolehkan anda melengkapkan logik menyemak ketekalan data pada peringkat aplikasi tanpa menggunakan kekangan kunci asing yang disertakan dengan sistem. Ini juga sebab mengapa kami boleh melakukan pertanyaan berkaitan walaupun kami tidak menetapkan kunci asing

Pembelajaran yang disyorkan:

tutorial video mysql

Atas ialah kandungan terperinci Bagaimana untuk menanyakan kekangan kunci asing dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn