chap03 SQL 기본 문법

2023. 1. 18. 00:03혼자 공부하는 sql

반응형

Chapter 03 SQL 기본 문법


03 - 1 기본 중에 기본 SELECT ~ FROM ~ WHERE



  • SELECT 문은 구축이 완료된 테이블에서 데이터를 추출하는 기능. 따라서 사용해도 기존 데이터가 바뀌지 않는다.
  • DROP
    • DROP DATABASE 는 데이터베이스를 삭제하는 명령어.
    • IF EXISTS 가 drop database 뒤에 있는 경우, 이미 해당 이름의 db가 존재한다면 그를 삭제 후 새로 만들라는 뜻이다.

  • USE
    • 데이터베이스를 선택하겠다는 문장 . USE market_db 라 하면, market_db 라는 데이터 베이스를 선택하고, 이 후 모든 SQL 문은 market_db 에서 수행되게 된다.
    • 만약 USE SOMEDB 로 SOMEDB 를 지정한 후 SOMEDB에 없는 테이블을 select 문에서 접근하고자 한다면 에러가 발생한다.

  • SELECT 기본 형식
SELECT select_expr
    FROM
    WHERE
    GROUP BY
    HAVING
    ORDER BY
    LIMIT

이 순서대로 써야 에러가 발생하지 않음.

  • SELECT

    • SELECT 와 FROM 사이에는 보고싶은 열들을 , 로 구분지어 쭉 적는다.
    • 열 이름 뒤에 " " 로 지정하고 싶은 별칭을 입력하면 열 이름이 아닌 내가 적은 별칭으로 확인 가능 하다.
  • WHERE

    • 특정 행만 출력하고 싶을 때 사용
    • WHERE 이후에 오는 조건식을 만족하는 행만 출력이 된다.
      • 관계 연산자, 논리 연산자 사용
        • '>' , '<' , '<=' , '>='
        • AND , OR
      • BETWEEN ~ AND
        • 범위에 있는 값을 구함.
      • IN
        • 숫자의 경우 범위 내에 있다고 표현이 가능하지만 그렇지 않은 경우는 in 을 사용.
        • IN ('A', 'B', 'C'); 이렇게 쓰면 A,B,C 라면 포함이 된다!
      • LIKE
        • 문자열의 일부 글자 검색
        • '%'
          • % 는 무엇이든 허용한다
          • ex) '우%' -> 우주소녀, 우테코 등등 모두
          • ex) '%핑크' -> 에이핑크, 블랙핑크 등 모두
        • '_'
          • 한 글자와 매치하기 위함
          • ex) '우_' -> 우주소녀 X, 우테코 X, 우왕 O
          • ex) '_핑크' -> 에이핑크 X, 블랙핑크 X, 핫핑크 O
        • 사용 : WHERE mem_name LIKE '%핑크'
  • 서브쿼리

    • SELECT 안에 또다른 SELECT 가 들어가는 경우.
    • 뭐라고 쓰지?

03 -2 좀 더 깊게 알아보는 SELECT 문


  • ORDER BY, LIMIT, GROUP BY, DISTINCT 등을 더 알아보자.

  • ORDER BY

    • 결과의 출력 순서를 조절함.
    • 기본이 ASC (오름 차순). DESC 는 내림차순으로 기입 해주어야 함.
    • ORDER BY 열이름 ASC/DESC
  • LIMIT

    • 출력의 개수를 제한한다.
      • LIMIT 의 형식은 LIMIT 시작, 개수
      • LIMIT 3 만 쓰면 LIMIT 0,3 과 동일하다.
  • DISTINCT

    • 조회된 결고에서 중복된 것 1개만 남김.
  • GROUP BY

    • 집계 함수를 이용해 데이터를 그룹화 하여 볼 수 있게 한다.
    • 집계 함수
      • SUM()
      • AVG()
      • MIN()
      • MAX()
      • COUNT()
      • COUNT(DISTINCT) -> 행의 개수를 세되, 중복은 1개만 인정한다.
  • HAVING

    • WHERE 과 비슷하게 조건을 제한하는 것이지만, 집계 함수에 대해서만 조건을 제한한다.
    • 그렇게 때문에 GROUP BY 절 이후에 나와야 한다.

03 -3 데이터 변경을 위한 SQL 문

이 장에선 SELECT 를 제외한 INSERT, UPDATE, DELETE 를 공부한다.

  • 데이터 입력 : INSERT
    • 테이블에 데이터를 삽입하는 명령
    • INSERT INTO 테이블 [(열1, 열2 ...)] VALUES (값1, 값2, ...)
    • 만약 값을 입력하고 싶지 않은 열이 있다면 그냥 열을 안적어주면 된다.
    • AUTO_INCREMENT : 1부터 증가하는 값을 입력해줌. AUTO_INCREMENT로 지정한 열은 반드시 PRIMARY_KEY 로 지정해 주어야 한다.
      • INSERT문에선 NULL로 채워주면 된다.
      • 처음에 1000부터 시작하도록 하고싶다면??
        • @@auto_increment_increment 값을 변경한다. -> 이는 시스템 변수이다.
          • 시스템 변수 : MySQL 에서 자체적으로 갖고 있는 설정값이 저장된 변수. 앞에 @@이 붙는다.
    • 다른 테이블의 데이터를 한 번에 입력하는 INSERT INTO ~ SELECT
  • 데이터 수정 : UPDATE

    UPDATE 테이블이름

    SET 열1=값1, 열2=값2, ...

    WHERE 조건;

    • WHERE가 없는 UPDATE문
      • update에서 where 은 생략이 가능하지만 생략되면 테이블의 모든 행이 변경된다.
      • 이걸 이용해서, 인구 수 등 자료를 10000명 단위로 변경해 보는 것 등을 where 문 없는 update문을 활용해 쉽게 바꿀 수 있다.
        • ex) UPDATE city_popul SET population = population / 1000;
  • 데이터 삭제 : DELETE

    • 테이블의 행 데이터를 삭제해야 하는 경우
    • DELETE FROM 테이블이름 WHERE 조건;
    • 대용량 테이블의 삭제
      • DELETe의 경우 삭제가 오래걸린다.
      • DROP의 경우 테이블 자체를 삭제하기 때문에 시간이 훨씬 짧다.
      • TRUNCATE 문 은 DELETE와 같은 효과를 내는데 속도가 훨씬 빠르다.

'혼자 공부하는 sql' 카테고리의 다른 글

Chap06 인덱스  (0) 2023.01.24
chap05 테이블과 뷰  (0) 2023.01.20
chap04 SQL 고급 문법  (1) 2023.01.18