> 데이터 베이스 > MySQL 튜토리얼 > MySQL5.7 데이터베이스에는 테이블 연결, 하위 쿼리 및 외래 키가 도입되었습니다.

MySQL5.7 데이터베이스에는 테이블 연결, 하위 쿼리 및 외래 키가 도입되었습니다.

coldplay.xixi
풀어 주다: 2021-01-26 09:27:09
앞으로
2417명이 탐색했습니다.

MySQL5.7 데이터베이스에는 테이블 연결, 하위 쿼리 및 외래 키가 도입되었습니다.

무료 학습 권장 사항: mysql 비디오 튜토리얼

Article Directory

      • Table Join
        • Inner Join
        • Left Join
        • 오른쪽 조인
        • Subquery
      • 자체 연관
      • 외래 키
        • 외래 키 소개
        • 테이블 생성 시 외래 키 제약 조건 설정

테이블 연결

  • 쿼리 결과의 열이 여러 테이블에서 오는 경우 여러 테이블을 하나의 대규모 데이터 세트로 연결한 후 적절한 컬럼을 선택하여 mysql로 ​​돌아가야 합니다
  • 이때 테이블을 연결해야 합니다

Inner Join

  • Inner Join은 레코드만 선택합니다
select * from 表1 inner join 表2 on 表1.列 = 表2.列-- 显示学生的所有信息,但只显示班级名称select s.*, c.name from students s inner join classes c on s.id=c.id;-- 将班级名称显示在第一列select c.name, s.* from students s inner join classes c on s.id=c.id;-- 查询 有能够对应班级的学生以及班级信息,按照班级进行排序select c.name, s.* from students s inner join classes c on s.cls_id = c.id order by c.name asc;-- 当同一个班级时,按照学生的id进行从小到大排序select c.name, s.* from students s inner join classes c on s.cls_id = c.id order by c.name asc, s.id asc;
로그인 후 복사

MySQL5.7 데이터베이스에는 테이블 연결, 하위 쿼리 및 외래 키가 도입되었습니다.
MySQL5.7 데이터베이스에는 테이블 연결, 하위 쿼리 및 외래 키가 도입되었습니다.
여기에 그림 설명 삽입

Left Join

쿼리 결과는 두 테이블이 일치하는 데이터입니다. 왼쪽 테이블에 있는 데이터가 채워집니다. with null for the right table

select * from 表1 left join 表2 on 表1.列=表2.列-- students表左连接classes表 并查看班级为null的数据select * from students s left join classes c on s.cls_id=c.id having s.cls_id is null;-- 左连接 并且 查询 s.cls_id=1 并且 s.name="small-j" 的数据select * from students s left join classes c on s.cls_id=c.id having s.cls_id=1 and s.name="small-j";
로그인 후 복사

MySQL5.7 데이터베이스에는 테이블 연결, 하위 쿼리 및 외래 키가 도입되었습니다.

Right Join

쿼리 결과는 두 테이블이 일치하는 데이터입니다. 오른쪽 테이블에 있는 데이터는 null로 채워집니다. 왼쪽 테이블에 존재하지 않는 데이터입니다.

select * from 表1 right join 表2 on 表1.列 = 表2.列;
로그인 후 복사

Subquery

어떤 경우에는 쿼리를 할 때 필수 조건이 다른 select 문의 결과입니다. 이 경우에는 하위 쿼리가 사용됩니다

select * from 表 where 表(子查询语句)-- 查询出students中身高最高的男生。显示名字和身高select s.name, s.high from students s where high=(select max(high) from students) and gender="男";-- 查询出高于平均身高的学生信息select * from students where high>(select avg(high) from students);-- 查询学生班级号cls_id能够对应的学生信息select * from students where cls_id in (select id from students);-- 查询最大年龄的女生的idselect * from students where id=(select max(id) from students where gender="女") and  gender="女";
로그인 후 복사

여기에 그림 설명을 삽입하세요

자기 연관

는 단순히 자신과 자신 사이의 연결 쿼리로 이해됩니다.

-- 查询广东省下的所有广东市select * from cities c inner join provinces p on c.provinceid=p.provinceid having p.province="广东省";-- 查询广东省下的所有广东市-- 自关联select * from areas a inner join areas b on a.id=b.pid having a.name="广东";
로그인 후 복사

MySQL5.7 데이터베이스에는 테이블 연결, 하위 쿼리 및 외래 키가 도입되었습니다.
MySQL5.7 데이터베이스에는 테이블 연결, 하위 쿼리 및 외래 키가 도입되었습니다.

외래 키

외래 키 소개

  • MySQL의 외래 키(foreing key)는 테이블의 특수 필드입니다. 연결된 관계가 있는 두 테이블의 경우, 연결된 필드의 기본 키가 있는 테이블이 메인 테이블(부모 테이블)이고, 외래 키가 있는 테이블이 보조 테이블(자식 테이블)입니다.
  • 참고: 기본 키는 null 값을 포함할 수 없지만 외래 키에는 null 값이 허용됩니다. 즉, 외래 키의 null이 아닌 각 값이 지정된 기본 키에 나타나는 한, 이 외래 키의 내용이 정확합니다.

테이블 생성 시 외래 키 제약 조건 설정

  • 외래 키 생성 시 먼저 슬레이브 테이블을 삭제해야 마스터 테이블을 삭제할 수 있습니다.
  • 마스터 테이블이 필요할 때 슬레이브 테이블을 생성하세요.
  • 보조 테이블의 외래 키 연결은 기본 테이블의 기본 키여야 하며, 기본 키와 외래 키의 유형이 일치해야 합니다.
[constraint 外键名] foreign key (字段名 [,字段名2, ...]) references  主键列1 [, 主键列2, ...]
로그인 후 복사
-- 创建班级表create table classes(
    id int(4) not null primary key,
    name varchar(36));-- 创建学生表create table student(
    sid int(4) not null primary key,
    sname varchar(30),
    cid int(4) not null);-- 创建直接含有外键关系的学生表create table student(
  	sid int(4) not null primary key,
  	sname varchar(30),
  	cid int(4) not null,
  	constraint pk_id foreign key (cid) references classes(id));-- 通过alter来添加外键关系alter table student add constraint pk_id foreign key (cid) references classes(id);-- 删除外键约束alter table student drop foreign key pk_id;
로그인 후 복사

MySQL5.7 데이터베이스에는 테이블 연결, 하위 쿼리 및 외래 키가 도입되었습니다.

MySQL5.7 데이터베이스에는 테이블 연결, 하위 쿼리 및 외래 키가 도입되었습니다.

관련 무료 학습 권장 사항: mysql 데이터베이스(동영상)

위 내용은 MySQL5.7 데이터베이스에는 테이블 연결, 하위 쿼리 및 외래 키가 도입되었습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿