"데이터를 쿼리한다": 데이터베이스에서 원하는 정보를 요청하거나 검색하는 것
Tip! 방향키를 이용하여 이전 쿼리문 불러옴
쿼리 명령문은 공식적으로 영어 대문자를 써야되지만 소문자 사용가능!
- 컬럼명이나 내용이 대문자로 적혀있어도 소문자 불러올 수 있음
예) SEX컬럼에 'F' -> sex='f'로 조회가능!!
- 문자열에서 비교연산자 사용 가능(알파벳순으로 비교(한글)))
예) sex<"M" -> 알파벳순 적은 "F"를 불러옴 // order by도 마찬가지
- date타입의 정렬 확인
and 모두 만족해야지 검색 대상에 해당 / or / not (조건에 만족X)
- and, or이 동시에 있을시 'and'가 우선순위가 높음
between 조건값이 범위사이에 있으면 참 ('<=이상, >=이하')
: where (not도 가능) 컬럼명 between 값1 and 값2
in 조건값이 목록에 있으면 참
: where 컬럼명 in (값1, 2 , 3 ,..)
like 조건값이 패턴에 맞으면 참
: where 컬럼명 like 패턴(%, _)
% 충분조건(뭐가 와도 상관X) / _ 필수조건이라고 설명하면 될까?(필수적으로 와야함)
예) 주소 컬럼에 '가나다'로 시작하며, 5글자 이상의 내용만 조회해라!
where 주소 like 가나다__% :__ 글자수 2개 확보 + % (이상)
: 여러 개의 SQL문을 합쳐서 하나의 SQL문으로 만들어주는 방법
(주의!!! 컬럼의 갯수가 같아야함 BUT 같은 컬럼명일 필요X)
: 가져오는 값들 중 중복된 값 제외 -> union all로 보완 (중복값 포함)
select 컬럼명(*가능)1,2,3,.. from 테이블명
union ( all )
select 컬럼명(*가능)1,2,3,.. from 테이블명
: 2개이상의 테이블 결합(on 기준 필요)(같지 않은 부분 Null로 표시)
inner join(공통된 요소들을 통해 결합하여 교집합만 가져옴) /
left join
right join
full outer(합집합) BUT!!! MySQL에서는 지원X 다른 DBMS는 지원하고 있음
-> left join + union(중복제외) + right join
select 테이블명.컬럼명
(유일한 컬럼명일경우 테이블명 생략가능, 그래도 가독성을 위해 명시/*가능)
from 테이블명A
/inner/ join 테이블명B
on(기준) 테이블A.컬럼 = 테이블B.컬럼
(필요시 where 조건)
: on 기준대신 where 조건사용
select 컬럼명1,2,..(*가능) from 테이블A,테이블B,...
where(기준) 테이블A.컬럼 = 테이블B.컬럼
(필요시 and 조건) ( ) 괄호를 잘 사용하여 오류 방지!!
concat : 여러 문자열을 하나로 합치거나 연결
select concat( , , )
select concat(1), cnocat(2),.. 가능
alias(as) : 컬럼이나 테이블에 이름 별칭 생성
(as생략가능 문법에만 잘 맞다면 생략해도 별칭으로 적용됨)
select 컬럼명 as 컬 (-> 조회할때 컬럼명이 바뀜), 컬럼명2 as 컬2, ..
from 테이블명 as 테
distinct : 검색한 결과의 (select뒤 컬럼 집합에서) 중복 제외
(-> pandas에서 unique( )비슷)
select distinct 컬럼명
limit: 검색결과를 정렬된 순으로 주어진 숫자만큼만 조회
(-> pandas에서 head( )비슷)
select from (필요시 where / order by) limit 정수;