코테용 sql

강의 영상 요약

  • SHOW DATABASES; : 현재 서버에 어떤 DB가 있는지 보기
  • USE DB_NAME;
    • 사용할 DB지정
    • 다시 USE문사용 OR 다른 DB사용하겠다고 명시하지않으면 모든 SQL문은 지정DB에서 수행
    • Workbench에서 직접 선택해 사용가능
  • DESCRIBE(DESC) TABLE_NAME;
    • TABLE_NAME 테이블에 무슨 열이 있는지 확인
  • SELECT …
    • 가장많이 사용
    • 요구하는 데이터 가져옴
    • 데이터 베이스 내 테이블에서 원하는 정보 추출
    • FROM table_references
    • WHERE where_condition
    • GROUP BY {..}
    • HAVING …
    • ORDER BY …
    • EX
      • SELECT * FROM city;
      • SELECT Name, Population FROM city;
    • WHERE 절
      • SELECT * FROM city WHERE Population >= 8000000 AND Population > 7000000;
      • SELECT * FROM city BETWEEN 7000000 AND 8000000;
      • 관계 연산자 사용 가능
      • NOT OR AND = < > <= >= !=
      • IN 이산적인값
        • SELET * FROM city WHERE Name IN(‘Seoul’, ‘New York’, ‘Tokyo’);
  • * : 모든
  • LIKE
    • 문자열의 내용 검색
    • 문자 뒤에 % - 무엇이든 허용
    • 한글자와 매치하기위해서는 ‘_‘사용
    • SELET * FROM city WHERE CountryCode LIKE ‘KO_’;
    • SELET * FROM city WHERE Name LIKE ‘Tel %’;
  • sub query
    • 서브 쿼리의 결과가 둘 이상이 되면 에러
      1
      2
      3
      4
      5
      
      SELET * 
      FROM city 
      WHERE CountryCode = ( SELECT CountryCode 
                          FROM city 
                          WHERE Name = 'Seoul');
      
  • ANY
    • 서브쿼리의 여러 개의 결과 중 한 가지만 만족해도 가능
    • SOME은 ANY와 동일한 의미로 ㅏ용
    • =ANY 구문은 IN과 동일한 의미
      1
      2
      3
      4
      5
      
      SELET * 
      FROM city 
      WHERE Population > ANY ( SELECT CountryCode 
                          FROM city 
                          WHERE District = 'New York');
      
  • ALL
    • 서브쿼리의 여러 개의 결과를 모두 만족 시켜야 함
1
2
3
4
5
SELET * 
FROM city 
WHERE Population > ALL ( SELECT CountryCode 
                        FROM city 
                        WHERE District = 'New York');
  • ORDER BY
    • 결과가 출력되는 순서를 조절하는 구문
    • 기본 오름차순 정렬
    • 열 이름 뒤에 DESC 내림차순
    • SELECT * FROM city ORDER BY Population DESC
  • DISTINCT
    • 중복된것은 1개씩만 보여주면서 출력
    • SELECT DISTINCT …
  • LIMIT
    • 출력개수 제한
    • 상위의 N개만 출력 LIMIT N
  • GROUP BY
    • 그룹으로 묶어주는 역할
    • 집계함수 함께 사용(Aggregate Function) AVG(), MIN,MAX, COUNT 행의개수, COUNT(DISTINCT) 중복 제외된 행의 갯수 , STDEV 표준편차, VARIANCE 분산
    • 별칭(Alias) 사용
      1
      2
      3
      
      SELET CountryCode AVG(Population) AS 'Average'
      FROM city 
      GROUP BY CountryCode
      
  • HAVING
    • WHERE과 비슷한 개념으로 조건 제한
    • 집계함수에 대해서 조건 제한하는 편리한 개념
    • GOURP BY절 다음에 나와야함.
      1
      2
      3
      4
      
      SELET CountryCode AVG(Population) AS 'Average'
      FROM city 
      GROUP BY CountryCode
      HAVING MAX(Population) > 8000000
      
  • ROLLUP
    • 총합 또는 중간합계가 필요할 경우 사용
    • GROUP BY절과 함께 WITH ROLLUP문 사용
      1
      2
      3
      
      SELET CountryCode, Name SUM(Population) 
      FROM city 
      GROUP BY CountryCode, Name WITH ROLLUP
      
  • JOIN
    • DB내의 여러 테이블에서 가져온 레코드를 조합하여 하나의 테이블이나 결과 집합으로 표현
      1
      2
      3
      
      SELET CountryCode, Name SUM(Population) 
      FROM city 
      JOIN country ON city.CountryCode = country.Code
      
Posted 2021-02-18