>데이터 베이스 >MySQL 튜토리얼 >mysql 쿼리 외래 키

mysql 쿼리 외래 키

WBOY
WBOY원래의
2023-05-14 10:09:072695검색

MySQL은 관계형 데이터베이스 관리 시스템이며, 외래 키는 관계형 데이터베이스의 중요한 개념 중 하나입니다. 외래 키는 테이블 간의 관계를 설명하는 데 사용되는 제약 조건으로, 데이터의 무결성과 일관성을 보장할 수 있습니다. MySQL에서 외래 키를 쿼리하는 것도 매우 중요한 작업입니다. 이 기사에서는 MySQL을 사용하여 외래 키를 쿼리하는 방법을 소개합니다.

1. 외래 키는 테이블에 있는 하나 이상의 열입니다. 이 열 또는 여러 열의 값이 다른 테이블의 데이터 또는 기본 키와 관련되어야 함을 지정하는 데 사용됩니다. 다른 테이블. 이 일치하는 테이블을 참조 테이블이라고 합니다. 관계형 데이터베이스에서는 두 개 이상의 테이블을 연결하려고 할 때 외래 키를 사용할 수 있습니다.

외래 키의 목적은 데이터 무결성과 일관성을 보장하는 것입니다. 테이블에 데이터 행을 추가할 때 데이터가 다른 테이블의 일부 데이터와 일치해야 하고 외래 키를 통해 일치 관계가 설정된 경우 MySQL은 새로 추가된 데이터의 외래 키를 확인합니다. 참조된 테이블에 데이터가 있는지 확인합니다. 데이터가 없으면 테이블에 데이터 삽입을 거부합니다.

2. 외래 키를 생성하는 방법

MySQL에서 외래 키를 생성하는 방법에는 여러 가지가 있습니다. 다음은 두 가지 일반적인 방법입니다.

1. ALTER TABLE 문을 사용하세요.

ALTER TABLE 문을 통해 외래 키를 추가하는 구문 형식은 다음과 같습니다.

ALTER TABLE 테이블 이름 ADD CONSTRAINT 외래 키 이름 FOREIGN KEY(열 이름) REFERENCES 테이블 이름(열 이름) ) of another table ;

그 중 외래키 이름은 외래키에 부여된 이름으로, 이 이름은 다른 테이블의 컬럼명을 참조한다. table은 각각 참조된 테이블의 이름과 열 이름입니다.

예를 들어 직원 테이블(employees)과 부서 테이블(departments)이 외래 키를 통해 연결되어 있습니다. 이 외래 키를 생성하려면 다음 SQL 문을 사용하세요.

ALTER TABLE employees ADD CONSTRAINT dept_fk FOREIGN KEY (dept_id) REFERENCES departments (dept_id);

이 문은 직원 테이블(employees)에 dept_fk라는 외래 키를 추가한다는 의미입니다. dept_fk는 부서 테이블의 dept_id 열을 참조하는 직원 테이블의 dept_id 열을 가리킵니다.

2. 테이블 생성 시 외래 키 정의

테이블 생성 시 외래 키를 정의하는 것도 일반적인 방법입니다. 구문 형식은 다음과 같습니다.

CREATE TABLE 表名 (
列名 数据类型,
外键名称 FOREIGN KEY (列名) REFERENCES 另一个表格的表名 (列名)
);

예를 들어 직원 테이블(employees)과 부서 테이블(departments)을 생성하고 dept_id 열을 직원 테이블의 외래 키로 사용하여 부서의 dept_id 열을 연결하는 경우입니다. 테이블에서는 다음 SQL 문을 사용할 수 있습니다.

CREATE TABLE employees (
id INT NOT NULL,
name VARCHAR(50) NOT NULL,
dept_id INT,
PRIMARY KEY (id),
FOREIGN KEY (dept_id) REFERENCES departments (dept_id)
)

3. 외래 키를 쿼리하는 방법

MySQL에 외래 키가 설정된 후에는 MySQL 쿼리 문을 사용하여 외래 키를 쿼리할 수 있습니다. 외래 키를 쿼리하는 구문 형식은 다음과 같습니다.

SELECT * FROM 表名 WHERE 列名 IS NULL;

이 문은 테이블에 빈 열 이름이 있는 데이터를 반환합니다. 이 열이 외래 키로 정의된 경우 쿼리 결과는 테이블에 일치하는 행이 없다는 것입니다. 외래 키 데이터로. 이 쿼리 결과는 매우 유용하며, 수동으로 해결해야 하고 올바르게 일치하지 않는 레코드를 찾는 데 도움이 될 수 있습니다.

예를 들어, Departments 테이블이 있고 해당 dept_id 열이 외래 키로 정의되어 있습니다. Departments 테이블과 일치하지 않는 레코드를 쿼리하려면 다음 SQL 문을 사용할 수 있습니다.

SELECT * FROM departments WHERE dept_id NOT IN (SELECT dept_id FROM employees);

의미 예, 직원 테이블에 포함되지 않은 부서 테이블의 dept_id 데이터를 쿼리합니다.

4. 요약

외래 키를 쿼리하는 MySQL은 매우 중요한 작업입니다. 외래 키의 정의와 쿼리를 통해 데이터베이스 내 데이터의 무결성과 일관성을 보장하고, 불필요한 오류를 방지하며, 데이터의 정확성과 신뢰성을 높일 수 있습니다. MySQL을 사용할 때 외래 키 제약 조건으로 인한 불필요한 오류를 방지하려면 외래 키 정의 및 쿼리에 주의하세요.

위 내용은 mysql 쿼리 외래 키의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.