MySQL - ORDER BY, Operators

김혜령·2024년 2월 5일
0

MySQL

목록 보기
4/14
post-thumbnail

ORDER BY (정렬)

SELECT 문에서 데이터를 특정 컬럼을 기준으로 오름차순 혹은 내림차순 정렬

  • ASC(Ascending): 오름차순 (default값)
  • DESC(Descending): 내림차순

    select column1, column2, ...
    from table_name
    order by column1, column2, ... asc | desc;

Comparision Operators (비교 연산자)

Logical Operators (논리 연산자)

  • AND : 두 조건을 모두 만족하는 경우 TRUE

    select column1, column2, ...
    from table_name
    where condition1 and condition2 and condition3 ...;

    ex) celeb 테이블에서 성별이 남자이고 나이가 40보다 큰 데이터를 이름의 역순으로 정렬하여 검색
    select * from celeb where sex='M' and age>40 order by name;

  • OR : 하나의 조건이라도 만족하는 경우 TRUE

    select column1, column2, ...
    from table_name
    where condition1 or condition2 or condition3 ...;

    ex) celeb 테이블에서 YG엔터테이먼트 소속이거나 나무엑터스 소속인 연예인 중, 나이가 30세보다 작은 데이터를 검색
    select * from celeb where (agnecy='YG엔터테이먼트' or agency='나무엑터스') and age<30;
    *괄호로 먼저 처리할 or문을 묶어주지 않으면 우선순위 연산자인 and문이 먼저 실행 되므로 에러발생

  • NOT : 조건을 만족하지 않는 경우 TRUE

    select column1, column2, ...
    from table_name
    where not condition;

    ex) celeb 테이블에서 생일이 1990년 이후이면서 여자가 아니거나, 생일이 1979년 이전이면서 소속사가 안테나가 아닌 데이터를 검색
    select * from celeb where (birtyday > 19891231 and not sex='F') or (birthday < 19800101 and not agency='안테나');

  • BETWEEN : 조건값이 범위 사이에 있으면 TRUE

    select column1, column2, ...
    from table_name
    where column1 between value1 and value2;

    ex) celeb 테이블에서 나이가 20세에서 40세 사이인 데이터를 검색
    select * from celeb where age between 20 and 40;
    = select * from celeb where age >= 20 and age <= 40;

  • IN : 목록 안에 조건값이 존재하는 경우 TRUE

    select column1, column2, ...
    from table_name
    where column in (value1, value2,...);

    ex) celeb 테이블에서 나이가 28세, 48세 중 하나인 데이터를 검색
    select * from celeb where age in (28, 48);
    = select * from celeb where age=28 or age=48;

  • LIKE : 조건값이 패턴에 맞으면 TRUE

    select column1, column2, ...
    from table_name
    where column like pettern;

    ex) celeb 테이블에서 'YG'로 시작하는 소속사 이름을 가진 데이터를 검색
    select * from celeb where agency like 'YG%';
    ex) celeb 테이블에서 '엔터테이먼트'로 끝나는 소속사 이름을 가진 데이터를 검색
    select * from celeb where agency like '%엔터테이먼트';
    ex) celeb 테이블에서 직업명에 '가수'가 포함된 데이터를 검색
    select * from celeb where job_title like '%가수%';
    ex) celeb 테이블에서 직업명이 '가'로 시작하고 최소 5글자 이상인 데이터를 검색
    select * from celeb where job_title like '가____%';
    ex) celeb 테이블에서 직업이 두개 이상인 연예인 중 영화배우 혹은 탤런트가 아닌 데이터를 검색
    select * from celeb where job_title like '%,%' and not (job_title like '%영화배우%' or job_title like '%탤런트%');

0개의 댓글