MySQL 기초2(use DB; table활용)

JoQuri(조규리)·2023년 12월 31일
0

MySQL

목록 보기
2/5

"데이터를 쿼리한다": 데이터베이스에서 원하는 정보를 요청하거나 검색하는 것

Tip! 방향키를 이용하여 이전 쿼리문 불러옴
쿼리 명령문은 공식적으로 영어 대문자를 써야되지만 소문자 사용가능!

select(컬럼1,2,*) from테이블 where조건;

Comparison Operators (비교 연산자)

  • 파이썬과 다른점 -> = : 같다 / <> :같지않다(!=)

- 컬럼명이나 내용이 대문자로 적혀있어도 소문자 불러올 수 있음
예) SEX컬럼에 'F' -> sex='f'로 조회가능!!
- 문자열에서 비교연산자 사용 가능(알파벳순으로 비교(한글)))
예) sex<"M" -> 알파벳순 적은 "F"를 불러옴 // order by도 마찬가지
- date타입의 정렬 확인

Logical Operators (논리연산자)

  • 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개 확보 + % (이상)


두 개(이상)의 테이블 합치기

Union

: 여러 개의 SQL문을 합쳐서 하나의 SQL문으로 만들어주는 방법
(주의!!! 컬럼의 갯수가 같아야함 BUT 같은 컬럼명일 필요X)
: 가져오는 값들 중 중복된 값 제외 -> union all로 보완 (중복값 포함)

select 컬럼명(*가능)1,2,3,.. from 테이블명
union ( all )
select 컬럼명(*가능)1,2,3,.. from 테이블명

Join

: 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 조건)

self join 多用 ('inner join'과 같은결과(교집합))

: on 기준대신 where 조건사용

select 컬럼명1,2,..(*가능) from 테이블A,테이블B,...
where(기준) 테이블A.컬럼 = 테이블B.컬럼
(필요시 and 조건) ( ) 괄호를 잘 사용하여 오류 방지!!

Concat / Alias(as) / Distinct / Limit

  • 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 정수;

0개의 댓글