SQL 강의 1주차 ~ 4주차까지의 용어 정리
- DB : 데이터를 저장하고 사용하는 큰 저장 장치, CRUD 기능 지원
- SQL : DataBase 내의 데이터를 내가 원하는 형태로 가져오기 위한 언어, 방대한 양의 데이터를 저장 가능하고 그 중 내가 원하는 정보 신속하게 가져올 수 있음 (SQL문 실행 : Ctrl + Enter)
- Select쿼리문 : DB에서 데이터를 선택해 가져오겠다(어떤 테이블에서 가져올지, 어떤 필드의 데이터를 가져올지)
- Table : 데이터가 담긴 전체 표 / Field : 데이터의 속성(Attribute)
- 별칭 : SQL 작성 도중 자동 완성 시 뒤에 붙는 알파벳
- 기본 검색 : select 필드명 from 테이블명 where 조건
- show table로 테이블 종류 확인 - 원하는 정보가 있을 것 같은 테이블에 select 날려보기(limit 10으로) - 없으면 반복 - 찾으면 범주를 나눌 필드를 찾기 - 범주 별 통계를 보고 싶은 필드 찾기 - sql쿼리 작성
- where절 : 조건문, 문자/문자열은 ' '/" "사용(숫자는 사용x) - 사용 하지 않는 다면 컴퓨터가 테이블이나 필드명을 지칭하는 것이라 인식, and/or 응용 가능
- LIKE : 뒤에 조건에 해당하는 결과 반환(ex) '박%' -> 박으로 시작하는 컬럼)
- show table : 전체 테이블 검색(여기서 원하는 테이블도 전체 검색 후 필요한 필드명 확인 해 검색)
- between : 두 범위 내에 있는 자료 검색(ex) 5월 8~9일 정보 검색 시, between '2023-05-08' and '2023-05-10'(05-09로 하면 컴퓨터는 05-09 00시로 인식하므로 원하는 결과가 나오질 않음 따라서 05-10으로 해야 05-10 00시 전인 05-09를 검색) // 2000~3000 보유한 유저 추출 시, between 2000 and 3000)
- in() : 범위 내의 정보 검색(ex) in(1,3) : 1이거나 3을 가진 자료 검색)
- limit : 일부 데이터만 호출(크기가 큰 테이블 조회 시 오래 걸려 전부 로딩하지 않고 지정 수 만큼만 오름차순으로 가져옴)
- distinct : 중복 제거(종류 확인 할때) / count() : 검색 된 자료 개수 출력 / count(distinct) 등 이중 사용 가능
- sql에서의 ;(세미콜론)은 여러 쿼리문 사용 시, 한 쿼리 문장의 끝 표시(생략 가능)
- group by 필드명 : 필드의 공통부분을 묶기 (count개수 세기, 동일 개수 파악 등)
- order by 필드명 : 필드를 정렬하기 위해서 사용, defalut값은 asc(오름차순), desc사용 시 내림차순 정렬, group by 와 따로 사용 가능
- AS : Alias(알리아스), 즉 별칭으로 From users u의 u가 users의 alias가 됨(round로 감쌀 때는 round 밖에 작성)
- SELECT week, min(likes) FROM checkins c // 주차별로 좋아요 최소값 구하기
group by week - min 대신 max(최대), avg(평균), sum(합계), count(개수) 등 사용 가능
- round(값, 소수점 자리수) : 값의 소수점 자리수까지 표시되는 함수
- 쿼리 작성 순서 : select * from 테이블명 -> where절 추가 -> group by field명 -> select절 수정 -> order by 절 사용
- SELECT payment_method , count(*) FROM orders o
WHERE email LIKE '%naver.com' and course_title = '앱개발 종합반'
group by payment_method //주문테이블에서 네이버이메일인 앱개발 종합반인 사람들의 결제 수단별로 묶어 출력 - Join : 테이블과 테이블을 연결해 한 테이블처럼 보는 것(두 테이블의 공통된 정보(키 값)을 기준으로 연결 -> 엑셀의 vlookup)
- 테이블을 나누는 이유 : 테이블은 한 목적에 맞는 것만 모아두는 것이 가장 좋음(웹 서비스 동작에 있어 간편하고 수정 시 문제가 없음)
- Join 종류 : Left Join, Inner Join, Outer Join(거의 사용x)
- Left Join : 왼쪽의 테이블을 기준으로 연결(왼쪽에 테이블에 오른쪽 테이블을 붙이기 -> 없으면 NULL로 보여주기), 순서가 중요!!, 주로 한 쪽에는 있고 한 쪽에는 없는 것의 통계를 집계하고 싶을 때 사용(ex) 강의를 신청했지만 시작하지 않은 사람들 보고 싶을 때 -> NULL인것만 취합해서 쿼리작성)
- Inner Join : 두 테이블의 서로 교집합(필드에서 정보를 가지고 있는 것들만) 형태로 연결(테이블 순서 상관x)
- Union : 필드가 전부 동일 할 때 가능(ex) 8월의 결과만 보여주는 쿼리문에서 7월의 결과도 합쳐서 전체적으로 보고 싶다 할 때 사용)
- SubQuery : 쿼리 안에 들어가는 모든 쿼리문(select, from, where 절 모두 가능) / subquery 안에 subquery 삽입 가능 - 한 눈에 보기 좋게 잘 짜는게 핵심
- 문자열 나누기(SUBSTRING_INDEX) : 실제 업무에서 문자열 데이터를 원하는 형태로 정리해야 하는 경우가 많은데 그 때 사용, SUBSTRING_INDEX(필드명, '문자', 1/-1) -> '문자'를 기준으로 나누고 1이면 '문자'앞의 문자열 보여주고 -1이면 '문자'뒤의 문자열을 보여달라는 뜻
- 문자열 일부만 출력(SUBSTRING) : 일부 문자열만 출력하고 싶을 때 사용, SUBSTRING(필드명, 시작숫자, 문자길이) -> 해당 필드의 문자열을 시작숫자부터 길이 만큼 출력(이 때, 문자열의 첫 번째 문자 시작숫자는 1임, 시작숫자에 0 대입시 아무 문자도 출력x)
- CASE : 조건을 설정 해 해당 조건에 충족이 되면 실행하는 문장, CASE WHEN 조건식 THEN 출력문장 ELSE 출력문장 END(이 때 when을 여러 개로 설정 해 여러 조건 설정이 가능함)
- WITH : subquery를 보기 편하고 쉽게 사용하기 위해 쿼리 문 제일 처음 부분에 쿼리문을 테이블로 설정하는 것, 형식 = WITH 테이블명 as( 쿼리문 ) 이후 쿼리 문(쿼리 문을 시작할 때, 오류가 발생할 수 도 있으니 전체 선택 후 시작하기)
'SQL' 카테고리의 다른 글
| 부트캠프 개발일지(SQL 4주차) (2) | 2023.05.12 |
|---|---|
| 부트캠프 개발일지(SQL 1, 2, 3주차) (0) | 2023.05.12 |