SQL의 집계 함수 및 그룹화

프로그래밍 공부 일기



2020년 6월 16일 Progate Lv.111
SQLⅢ

하위 쿼리



질의 안에 다른 질의를 넣을 수 있다. 이 다른 쿼리를 하위 쿼리라고합니다. 두 개 이상의 쿼리 중 하나로 결합 할 수 있으므로 더 복잡한 데이터를 검색하는 데 사용됩니다. 서브 쿼리는 () (괄호)를 둘러싸는 것으로 만들 수 있다. () 안에 세미콜론이 필요하지 않습니다 (세미콜론은 쿼리의 끝에서만 좋음)

하위 쿼리를 사용하지 않는 방법
-- 1.Makeの得点を取得する 
SELECT goals FROM players WHERE name="Make";
-- 2.取得した結果を自分で入力する
 SELECT name FROM players WHERE goals > 15;

하위 쿼리를 사용하는 방법
-- 2.サブクエリが実行されたあとに外側にあるクエリが実行される
SELECT name 
FROM players
-- 1.サブクエリでMakeの得点を取得している
WHERE goals > (
  SELECT goals
  FROM players
  WHERE name="Make"
);

아 S



컬럼명 등에 다른 이름을 정의할 수 있다. カラム名 AS "名前" 에서 열 이름에 정의할 이름을 지정합니다.

실행 결과 표시의 goal 변경
SELECT goals AS "Makeの得点" FROM players WHERE name="Make";

테이블을 끈다



테이블을 연결하려면 외래 키와 기본 키를 사용합니다. 외래 키로 다른 테이블에 있는 기본 키를 지정함으로써 테이블끼리를 묶을 수 있다.
메리트:데이터 관리가 쉽다


JOIN



복수의 테이블을 1개에 결합하고 싶을 때에 사용한다. ON에서 조건을 지정하여 테이블 A에 테이블 B를 조인합니다. 결합한 테이블은 1개의 테이블로 데이터를 취득할 수 있다. 외래 키가 널인 레코드는 실행 결과에 표시되지 않습니다.
복수의 테이블을 JOIN하는 것도 가능하고, JOIN을 1개의 쿼리로 복수회 사용할 수 있다. 다만, 그 경우에서도 FROM은 한 번만 하면 된다.
 

JOIN 사용법
SELECT *
FROM テーブルA
JOIN テーブルB
ON 結合条件(テーブル名.カラム名 = テーブル名.カラム名);


-- 2. 結合された後にSELECTの実行
SELECT *
-- 1. テーブルを結合する
FROM players
JOIN countries
--county_id:外部キー countries.id:主キー
ON players.country_id=countries.id; 

여러 테이블에서 열 지정



복수의 테이블에 같은 컬럼명이 존재하는 경우는, テーブル名.カラム名 로 지정한다.
SELECT players.name, countries.name
FROM players
JOIN countries
ON players.country_id=countries.id
WHERE players.name="タクヤ";

LEFT JOIN



FROM으로 지정한 테이블의 코드를 모두 취득한다. 외래 키가 NULL인 코드도 NULL인 채 실행 결과에 표시된다.
SELECT * 
FROM players
LEFT JOIN teams  --もととなるテーブルのレコードを全て取得。
ON players.team_id=team.id;

전체 실행 순서



SQL은 취득하는 테이블을 형성하고 나서 검색을 하기 때문에, FROM이나 JOIN이 먼저 온다.

좋은 웹페이지 즐겨찾기