-
[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월에 개설했구나
아련하게 쩜쩜쩜 쓰지 말고 게으름 멈춰 🤚
'DataBase > RDBMS' 카테고리의 다른 글
[MySQL] 스파르타 코딩클럽 "엑셀보다 쉬운 SQL" 3주차 (0) 2022.09.18 [MySQL] 스파르타 코딩클럽 "엑셀보다 쉬운 SQL" 2주차 (0) 2022.09.04