>데이터 베이스 >MySQL 튜토리얼 >MySQL의 JOIN 함수를 사용하여 테이블 조인

MySQL의 JOIN 함수를 사용하여 테이블 조인

WBOY
WBOY원래의
2023-07-26 08:37:181367검색

MySQL의 JOIN 함수를 사용하여 테이블 조인

MySQL에서 JOIN은 매우 일반적인 작업으로, 두 개 이상의 테이블 사이에 연결된 필드를 기반으로 두 개 이상의 테이블을 조인할 수 있습니다. 이를 통해 여러 테이블에서 관련 데이터를 쉽게 쿼리하고 얻을 수 있으므로 쿼리 효율성과 유연성이 향상됩니다. 이 기사에서는 코드 예제를 사용하여 MySQL의 JOIN 함수를 사용하여 테이블을 조인하는 방법을 보여줍니다.

먼저 studentsscores라는 두 개의 샘플 테이블을 만듭니다. 학생 테이블에는 id, nameage와 같은 필드를 포함하여 학생에 대한 기본 정보가 포함되어 있습니다. 점수 테이블에는 id, subjectscore와 같은 필드를 포함한 학생 성적 정보가 포함되어 있습니다. 두 테이블은 학생의 id 필드를 통해 관련됩니다. studentsscoresstudents表包含学生的基本信息,包括idnameage等字段;scores表包含学生的成绩信息,包括idsubjectscore等字段。两个表之间通过学生的id字段关联。

-- 创建students表
CREATE TABLE students (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    age INT
);

-- 插入示例数据
INSERT INTO students (id, name, age) VALUES
(1, 'Alice', 18),
(2, 'Bob', 20),
(3, 'Charlie', 19);

-- 创建scores表
CREATE TABLE scores (
    id INT,
    subject VARCHAR(50),
    score INT
);

-- 插入示例数据
INSERT INTO scores (id, subject, score) VALUES
(1, 'Math', 90),
(1, 'English', 85),
(2, 'Math', 95),
(2, 'English', 80),
(3, 'Math', 85),
(3, 'English', 90);
  1. 内连接(INNER JOIN)

内连接是最常用的连接方式,它返回两个表中满足连接条件的记录。

SELECT students.name, scores.subject, scores.score
FROM students
INNER JOIN scores ON students.id = scores.id;

以上代码会返回一个结果集,包含学生姓名、科目和成绩。

  1. 左连接(LEFT JOIN)

左连接返回左表中所有记录以及右表中满足连接条件的记录,如果右表中没有匹配的记录,那么结果中右表相关字段的值为NULL。

SELECT students.name, scores.score
FROM students
LEFT JOIN scores ON students.id = scores.id;

以上代码会返回一个结果集,包含学生姓名和成绩。如果某个学生在scores表中没有对应的成绩记录,那么该学生的成绩字段值为NULL。

  1. 右连接(RIGHT JOIN)

右连接返回右表中所有记录以及左表中满足连接条件的记录,如果左表中没有匹配的记录,那么结果中左表相关字段的值为NULL。

SELECT students.name, scores.subject, scores.score
FROM students
RIGHT JOIN scores ON students.id = scores.id;

以上代码会返回一个结果集,包含学生姓名、科目和成绩。如果某个科目在students表中没有对应的学生记录,那么该科目字段值为NULL。

  1. 全连接(FULL JOIN)

全连接返回左表和右表中所有记录,如果某个表中没有匹配的记录,那么结果中相关字段的值为NULL。

SELECT students.name, scores.subject, scores.score
FROM students
FULL JOIN scores ON students.id = scores.id;

以上代码会返回一个结果集,包含学生姓名、科目和成绩。如果某个学生在scores表中没有对应的成绩记录,或者某个科目在studentsrrreee

  1. INNER JOIN (INNER JOIN)
내부 조인은 가장 일반적으로 사용되는 연결 방법으로 조인 조건을 만족하는 두 테이블의 레코드를 반환합니다.

rrreee

위 코드는 학생 이름, 과목, 성적이 포함된 결과 집합을 반환합니다.

  1. LEFT JOIN
Left Join은 조인 조건에 맞는 왼쪽 테이블의 모든 레코드와 오른쪽 테이블의 레코드를 반환합니다. 오른쪽 테이블이 레코드와 일치하면 결과에서 오른쪽 테이블의 해당 필드 값이 NULL입니다. 🎜rrreee🎜위 코드는 학생 이름과 성적이 포함된 결과 집합을 반환합니다. 학생의 점수 테이블에 해당 점수 기록이 없는 경우 학생의 점수 필드 값은 NULL입니다. 🎜
  1. RIGHT JOIN
🎜Right JOIN은 조인 조건을 만족하는 오른쪽 테이블의 모든 레코드와 왼쪽 테이블의 레코드를 반환합니다. 왼쪽 테이블이 레코드와 일치하는 경우 결과의 왼쪽 테이블에 있는 해당 필드의 값은 NULL입니다. 🎜rrreee🎜위 코드는 학생 이름, 과목, 성적이 포함된 결과 집합을 반환합니다. 과목에 students 테이블에 해당 학생 기록이 없는 경우 과목 필드 값은 NULL입니다. 🎜
  1. Full JOIN(FULL JOIN)
🎜Full Join은 테이블에 일치하는 레코드가 없으면 왼쪽 테이블과 오른쪽 테이블의 모든 레코드를 반환합니다. then 결과의 해당 필드 값은 NULL입니다. 🎜rrreee🎜위 코드는 학생 이름, 과목, 성적이 포함된 결과 집합을 반환합니다. 학생의 scores 테이블에 해당 점수 기록이 없거나 특정 과목의 students 테이블에 해당 학생 기록이 없는 경우 해당 필드 값은 NULL입니다. 🎜🎜위의 예를 통해 MySQL의 JOIN 기능을 사용하면 테이블을 유연하게 조인하여 관련 데이터를 편리하게 쿼리하고 얻을 수 있음을 알 수 있습니다. 이러한 종류의 작업은 실제 데이터베이스 애플리케이션에서 매우 일반적이며, 특히 데이터 관계가 복잡한 경우 쿼리의 효율성과 유연성을 크게 향상시킬 수 있습니다. 🎜🎜JOIN 작업은 데이터베이스 성능에 특정 영향을 미칠 수 있다는 점에 유의해야 합니다. 따라서 JOIN을 사용할 경우에는 실제 상황에 맞게 최적화를 진행해야 하며, 테이블 간의 연관관계도 최대한 잘 설계해야 한다. 🎜

위 내용은 MySQL의 JOIN 함수를 사용하여 테이블 조인의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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