2022. 5. 11. 23:49ㆍWork, 일/SQL
요약
- SQL 작성 참고사항
- 데이터 정리를 위한 SQL 기본 구문
- select 구문
- from 구문
- select와 from 연결해 테이블 구성 확인하기
- where 구문
- where 구문 비교연산자
- where 구문 논리연산자
- where 구문 SQL연산자
SQL 작성 참고사항
1. 각 구문의 순서를 정확하게 지켜서 작성하기
2. 여러 문장이 겹쳐있을 경우 원하는 구문만 드래그하여 실행하기 (단축키 : Ctrl+Enter)
3. ;(세미콜론)으로 문장 마무리하기
4. 각 단어의 사이는 띄어쓰기(공백), 줄바꿈, 탭, 쉼표로 구분 가능 : 적절한 공백, 줄바꿈은 SQL의 가독성을 높임
5. 여러 단어를 연결하여 한 개의 단어로 표현하려면 _(언더바) 사용
6. SQL 구조화 연습 : 한글과 구문을 매칭시키면서 문장을 작성한 후 한글 지우고 실행하기
ㄴ한글 문장 앞에는 '--'을 넣으면 빨간색으로 처리되며 명령어로 인식되지 않음 : 주석처리 한다고 함
7. 같은 결과값이라도 구문은 다를 수 있다. 다양한 구문을 사용해보고 어떤 구문이 효과적인지 판단해보는 습관은 내 SQL을 빠르게 완성시켜준다
8. 오류메세지를 보고 역으로 수정해가는 편이 오히려 효율적일 수 있다
9. 데이터 테이블 파일을 열지 않고도 테이블 구성을 확인하는 방법 : 테이블의 5행까지 불러온다 (select * from 테이블명 limit 5)
데이터 정리를 위한 SQL 기본 구문
- 필수 구문 2가지 : select(무엇을), from(어디서)
- 선택 구문 4가지 : where, group by, having, order by
select 구문
- 데이터를 선택(산출)하는 의미로 화면 상으로 결과 데이터를 불러오는 역할 (~를 선택해라)
- 반드시 입력해야 하는 명령어 (필수구문)
- 이 다음에는 선택할/가지고 올 컬럼명 작성
- (1) 모든 컬럼을 동시에 가져오기는 '*' : select * from 테이블명
- (2) 필요한 컬럼들만 가져오기는 '쉼표' : select col1, col2, col3 from 테이블명
ㄴ각 컬럼을 입력할 때는 쉼표로 구분하고 마지막 컬럼 뒤에는 쉼표 생략
- (3) 컬럼명을 별칭으로 변경해 산출하기는 'as(에일리어스)' : select col1 as AA from 테이블명 -> 결과는 col1 대신 AA로 산출
ㄴ컬럼명이 너무 길거나 복잡한 경우 간소화하기 위해 혹은 중복 컬럼명이 있을 경우 사용 (중복 컬럼명 산출 불가)
from 구문
- 데이터를 검색해오는 데이터베이스와 테이블을 지정하는 구문
- 정확하게 어느 데이터베이스에서 어떤 테이블명을 검색할지, 혹은 어떤 테이블에서 어떤 컬럼명을 검색할지 명확하게 작성해야 함 (중복명이 있을 수 있음)
- 테이블명도 as 활용 가능 (as는 생략하고 한칸 띄어쓰기 후 별칭 입력 가능)
select와 from 연결해 테이블 구성 확인하기
1. 테이블 구성 컬럼을 확인하는 방법 (컬럼명 및 필드형태 확인 시 활용)
- limit로 행 제한하기 : select * from 테이블명 limit N (N줄까지만 제한해서 데이터 뽑기 - 컬럼명 및 필드형태 확인 시 활용)
2. 컬럼 내 필드값 확인하는 방법
- distinct로 중복 필드값 필터링하기 : select distinct 컬럼명 from 테이블명 (어떤 필드로 데이터를 적재하고 있는지 확인 시 활용)
where 구문
- 테이블에 '검색 조건'을 적용하는 구문 : 테이블을 축소하는 개념이라 볼 수 있음
- from 다음에 작성
- 검색 조건은 연산자(비교/SQL/논리 연산자)를 사용해 적용 가능
- '데이터형' 이해가 필요 : 데이터형에 따라 연산자 작성방법이 다를 수 있음(date 데이터형은 날짜형식(2015-07-14)로 작성하는 등)
ㄴ다 외우기 어려우므로 실무에서는 차라리 쿼리 실행 후 오류문구를 보고 고쳐나가는 게 효율적이다
where 구문 비교연산자
1. =, >, <, >=, <= 등 (날짜도 비교연산자를 사용할 수 있다)
2. !=, <> : 같지 않다 (select * from 테이블명 where 컬럼명 <> 테이블값 = 테이블값을 가진 행만 살린 뒤 모든 컬럼을 가져와줘)
where 구문 논리연산자
- 두 가지 조건을 조합하기 위한 연산자
- 쓰기에 앞서서 어떤 연산자를 걸어야 하는지 고민 필요(헷갈리기 쉽다)
1. and : and 앞뒤에 있는 조건을 모두 충족하는 경우에
2. or : 앞뒤 조건 중 한 가지라도 충족하는 경우에
3. not : 뒤의 조건과 반대인 경우에
where 구문 SQL연산자
1. between [a] and [b]
: a 이상 b 이하인 경우
: [a] <= 컬럼 and 컬럼 <= [b]와 같이 비교연산자로 표현 가능
2. [컬럼명] in (리스트)
: 리스트 안에서의 컬럼을 가져오는 경우
: 리스트가 a, b, c라고 할 때 [컬럼명] = 'a' or [컬럼명] = 'b'와 같이 표현 가능
3. [컬럼명] like '비교문자'
: 일치여부를 정확하게 확인 불가해 =(등호연산자)를 사용할 수 없는 경우 사용 (~같은/~처럼으로 해석하여 사용)
: '%', '_' 기호연산자(wild card)와 함께 사용
3-1. '%'
: 검색하고자 하는 문자의 위치만 반영함. 즉, 검색 문자의 위치만 동일하다면 해당 문자 앞 혹은 뒤에 붙는 문자는 형태나 수의 제한 없이 모두 검색됨. 아무것도 붙지 않고 해당 단어만 있는 값 또한 검색됨.
: like '%치킨%' >> 양쪽 어디에 어떠한 문자가 얼마나 붙든 관계없이 '치킨'이 포함된 모든 값을 검색함
ㄴ실무에서 가장 많이 사용함
: 단, 테이블값이 숫자일 때 like로 검색할 경우 cast 함수로 테이블값을 int(숫자)에서 string(문자)로 변환인식시켜야 함. cast ('컬럼명' as string)
3-2. '_'
: 검색하는 문자 수를 반영함.
: like '___치킨' >> '치킨' 단어가 맨 마지막에 위치하며, '치킨' 앞에 3개의 문자만 있어야 하는 경우
4. [컬럼명] is null
: 컬럼에 데이터가 없는 경우 (공백인 경우)
: null과 0(숫자)의 의미는 다름. 0(숫자)는 0이라는 데이터가 있는 것
: '=null'이라고 표기 불가능. null은 데이터가 없기 때문에 비교연산자로 비교가 불가
: 'null 외의 값 불러오는 경우 is not null 사용
'Work, 일 > SQL' 카테고리의 다른 글
마케터의 SQL 학습기 : 일반함수 (0) | 2022.05.13 |
---|---|
마케터의 SQL 학습기 : 데이터 전처리용 기본구문 익히기 (2) (0) | 2022.05.12 |
마케터의 SQL 학습기 : 정의 알기 (0) | 2022.05.10 |
마케터의 SQL 학습기 : 필요성 인지하기 (0) | 2022.05.09 |
콘텐츠 전략에 데이터를 활용하기 위하여 (0) | 2022.05.09 |