ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [MySQL] 스파르타 코딩클럽 "엑셀보다 쉬운 SQL" 1주차
    DataBase/RDBMS 2022. 8. 28. 20:14

    업무할 때 SQL 쿼리를 자유롭게 구사하기 위해서 어떻게 공부할지 고민하다가 스파르타 코딩클럽의 SQL 수업을 신청하게 됐다.

    흥미가 붙은 파이썬은 책 한권 잡아서 혼자 공부하는데에 무리가 없지만 SQL은 약간의 강제성이 필요하다고 느꼈다. 

    그나저나 파이썬, 네트워크 관리사 2급 공부한 내용들도 정리해야하는데 역시 과제인 SQL을 먼저 하고있는 나...

    아 맞다.. 채팅프로그램 코드리뷰도 해야지!!!🙄 미루고 미루다 후회하지 말자 유진....😇

     

    1주차는 아래와 같은 기본적인 내용이었다. 

    1) SHOW TABLES로 database에 어떤 테이블들이 있는지 파악
    2) 원하는 정보가 있을 것 같은 테이블에 대해서 "SELECT * FROM 테이블명" 쿼리 실행
    3) 원하는 정보를 찾을 때까지 2)를 반복
    4) 테이블을 찾았으면 조건을 걸 필드 찾기
    5) "SELECT * FROM 테이블명 WHERE 조건" 쿼리 실행!

     

    1. SELECT문

    SELECT 필드명 FROM 테이블명; 

     : 특정 테이블에서 특정 필드의 행 전체를 가져오겠다! 

      💡 필드명 대신 *를 입력하면 해당 테이블의 "모든 필드"를 가져오겠다는 의미

      EX) SELECT * FROM orders;   # orders 테이블의 모든 필드를 읽어옴

             SELECT user_id FROM orders;   # orders 테이블의 user_id 필드만 읽어옴

     

     

    2. WHERE절

    SELECT 필드명 FROM 테이블명 WHERE 조건;

    : 특정 테이블에서 특정 필드의 데이터를 가져오되, 조건을 만족시키는 행만 가져오겠다!

     

     2-1. '일치' 조건

     : '=' 사용

     SELECT 필드명 FROM 테이블명 WHERE 필드명 = 필드값;

     EX) SELECT * FROM orders WHERE payment_method = 'CARD'

            # 'orders' 테이블의 '모든 필드' 아래 'payment_method' 필드의 값이 'CARD'인들만 가져옴

    💡주의! SQL 쿼리에서 필드의 을 명시할 때는 문자열로 인식시키기 위해 따옴표 안에 넣어준다.
      - 따옴표 안에 넣으면 문자열(필드값)로 인식
      - 따옴표 안에 넣지 않으면 필드명(컬럼명)이나 테이블명으로 인식

    속성값을 불러올 때 따옴표 안에 넣어주지 않으면 아래와 같은 구문 에러가 발생한다. 

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where payment_method = "CARD"' at line 1
    Unknown column 'CARD' in 'where clause'

    syntax error: 속성 값을 표현할 때 따옴표를 쓰지 않아 컬럼명으로 인식

     2-2. '불일치' 조건

     : '!=' 사용

     SELECT 필드명 FROM 테이블명 WHERE 필드명 != 필드값;

     EX) SELECT * FROM orders WHERE payment_method != 'kakaopay';

           # 'orders' 테이블의 '모든 필드' 아래 'payment_method' 필드의 값이 'kakaopay'가 아닌 들만 가져옴

     

     2-3. '범위' 조건

     : 'BETWEEN' 사용

     SELECT 필드명 FROM 테이블명 WHERE 필드명 BETWEEN 필드값1 AND 필드값2; (필드값2는 범위에 포함되지 않음!)

     EX) SELECT * FROM orders WHERE point BETWEEN 20000 and 40000;

           # 'orders' 테이블의 '모든 필드' 아래 'point' 필드의 값이 20000이상 40000미만인 들만 가져옴

     

     2-4. '포함' 조건

     : 'IN' 사용

     SELECT 필드명 FROM 테이블명 WHERE 필드명 IN (필드값1, 필드값2, ...);

     EX) SELECT * FROM checkins WHERE week in (1, 3);

           # 'checkins' 테이블의 '모든 필드' 아래 'week' 필드의 값이 1, 3에 해당되는 들만 가져옴

     

     2-5. '패턴' 조건

     : 'LIKE' 사용

     SELECT 필드명 FROM 테이블명 WHERE 필드명 LIKE '문자열규칙';

     EX) SELECT * FROM users WHERE email like '%daum.net';

           # 'users' 테이블의 '모든 필드' 아래 'email' 필드의 값이 'daum.net'으로 끝나는 들만 가져옴

    💡문자열규칙
     - 'a%': 필드값이 a로 시작하는 모든 데이터
     - '%a': 필드값이 a로 끝나는 모든 데이터
     - 'a%b': 필드값이 a로 시작하고 b로 끝나는 모든 데이터
     - '%a%': 필드값에 a를 포함하는 모든 데이터

     

     

    3. LIMIT

     : 일부 데이터만 가져오기 

     SELECT 필드명 FROM 테이블명 LIMIT 행개수;

     EX) SELECT * FROM orders LIMIT 5;

          # 'orders' 테이블의 '모든 필드' 아래 5개 행만 가져옴

     

    4. DISTINCT

     : 중복 데이터를 제외하고 가져오기

     SELECT DISTINCT(필드명) FROM 테이블명;

     EX) SELECT DISTINCT(payment_method) FROM orders;

          # 'orders' 테이블의 'payment_method'필드 아래 고유한 payment_method 값을 가진 행만 가져옴

     

    5. COUNT

     : 행 개수 세기

     SELECT COUNT(*) FROM 테이블명;

     EX) SELECT COUNT(*) FROM orders;

          # 'orders' 테이블의 행 개수를 보여줌

     EX) SELECT COUNT(DISTINCT(payment_method)) FROM orders;

         # 'orders' 테이블의 payment_method의 고유값 개수를 보여줌

     

     

     

    ※ 본 포스팅은 스파르타 코딩클럽 "엑셀보다 쉬운 SQL" 1주차 자료를 참고했습니다.

     

     

    드디어 7월초 이후 다시 포스팅 시작... 1달 1포스팅은 좀 심하잖아..? 1달 1포스팅도 아니구나 1월에 개설했구나

    아련하게 쩜쩜쩜 쓰지 말고 게으름 멈춰 🤚

    댓글

Designed by Tistory.