Data/SQL

    [MySQL] JOIN

    [MySQL] JOIN

    JOIN : DB 내에 여러 테이블에서 가져온 레코드를 조합하여 하나의 테이블로 표현 1. JOIN (INNER JOIN) SELECT 컬럼 FROM 기준테이블명 별칭 JOIN 참조테이블명 별칭 ON 조건 ON 절의 조건을 만족하는 데이터만 가져옴, WHERE 절에서 사용할 수 있는 모든 조건 사용가능 2. LEFT JOIN SELECT * FROM 기준테이블 LEFT JOIN 참조테이블 ON 조건 기준 테이블을 기준으로 참조 테이블을 조합. ON 절의 조건을 만족하지 않은 경우 : 기준테이블의 값은 모두 가져오지만 참조테이블의 필드 값은 NULL로 표시 3. RIGHT JOIN SELECT * FROM 기준테이블 RIGHT JOIN 참조테이블 ON 조건 참조 테이블을 기준으로 기준 테이블을 조합 ON ..

    [MySQL] GROUP BY , HAVING, ROLLUP

    [MySQL] GROUP BY , HAVING, ROLLUP

    1. GROUP BY 그룹으로 묶어줌 집계함수를 함께 사용 AVG(): 평균 MIN(): 최소값 MAX(): 최대값 COUNT(): 행의 개수 등 효율적인 데이터 그룹화 AS를 사용하여 그룹화 된 컬럼명을 변경할 수 있음 2. HAVING WHERE과 비슷한 개념으로 조건 제한 집계 함수에 대해서 조건을 걸 때 반드시 GROUP BY 절 다음에 나와야 함 3. ROLLUP 총합 또는 중간합계가 필요할 경우 각 나라의 도시들의 인구 합을 합쳐서 중간에 보여줌

    [MySQL] ORDER BY, DISTINCT, LIMIT

    1. ORDER BY 결과가 출력되는 순서를 정해준다. 기본값은 오름차순(ASC), 생략가능 내림차순으로 정렬하고 싶을 때 컬럼명 뒤에 DESC 넣어주면 된다. SELECT * FROM city ORDER BY Population DESC 1-1) 혼용 사용가능 SELECT * FROM city ORDER BY CountryCode ASC, Population DESC 이 경우 CountryCode를 오름차순으로 정렬 하면서 값이 같은 경우 Population 값을 내림차순으로 정렬. 2. DISTINCT 중복 된 값일 경우 한 개만 보여준다. SELECT DISTINCT CountryCode FROM city; 3. LIMIT 출력 개수를 제한해준다. 상위 N개만 출력해줌 서버의 전반적인 성능을 안좋게..

    [MySQL] Sub Query , ANY , ALL

    [MySQL] Sub Query , ANY , ALL

    1. 서브쿼리 쿼리문 안에 또 쿼리문이 들어가 있는 것 서브 쿼리의 결과 값이 둘 이상이면 에러가 난다. SELECT * FROM city WHERE CountryCode =( SELECT CountryCode FROM city WHERE Name = 'New York'); 서브쿼리 결과값은 USA가 나오고 다시 이 값을 통해 USA의 city 값을 추출 할 수 있다. 2. ANY (SOME) 서브쿼리의 결과값이 여러개일 경우 한 개만 만족해도 가능하다. SELECT * FROM city WHERE Population > ANY ( SELECT Population FROM city WHERE District = 'New York'); 서브쿼리의 값 결과값 3. ALL 서브쿼리의 여러 개의 결과값을 모두 ..

    [MySQL] BETWEEN, IN, LIKE

    [MySQL] BETWEEN, IN, LIKE

    1. BETWEEN 숫자와 같은 연속적인 데이터에서 사용한다. -> 인구가 50만에서 80만 사이에 있는 도시테이블 안에 있는 데이터를 가져와라 SELECT * FROM 테이블명 WHERE 컬럼명 BETWEEN 숫자 AND 숫자 SELECT * FROM city WHERE Population BETWEEN 500000 AND 800000 2. IN 연속적이지 않은 데이터의 조건에서 사용한다. -> 서울, 뉴욕, 도쿄라는 이름을 가진 도시 데이터를 모두 가져와라 SELECT * FROM 테이블명 WHERE 컬럼명 IN(값,값...) SELECT * FROM city WHERE Name IN('Seoul', 'New York', 'Tokyo') 3. LIKE 문자열의 내용을 검색할 수 있다. % : 검색하려..

    [MySQL] SELECT, FROM, WHERE

    [MySQL] SELECT, FROM, WHERE

    1. SELECT .. FROM 원하는 데이터를 추출하며 일반적으로 가장 많이 사용된다. 다음과 같이 다른 구문과 함께 쓰인다. 예시) SELECT * FROM WHERE; SELECT * FROM WHERE GROUP BY; SELECT 컬럼명,컬럼명.. FROM 테이블명; *는 all을 의미하고 세미콜론(;)은 쿼리문이 끝났다는걸 알려준다. 세미콜론은 없어도 작동에 문제가 없다. 1-1)city 테이블의 모든 정보 가져오기 1-2) city 테이블에서 원하는 컬럼 가져오기 (Name) 2. WHERE 특정 조건으로 원하는 데이터만 추출할 때 사용한다. SELECT 컬럼명 FROM 테이블명 WHERE 조건식 2-1) city 테이블의 인구수가 50만이상 되는 데이터를 모두 가져와라. ◆ 관계연산자를 사..