where(조건문)절 / order by(정렬)절 / 역모델링

gummy·2022년 11월 16일
0

국비일지

목록 보기
10/30

221115 화요일

[SQL문법]

2. WHERE절(조건절)

  • 테이블의 특정 행을 출력할때 사용한다.
select * | 컬럼명1, 컬럼명 2, 컬럼명3
from 테이블명
[where 좌변 = 우변 ];
[ ] → 생략가능
(컬럼명) (**비교연산자**) () 
                        값 : 숫자, '문자', '날짜(YYYY-MM--DD)'

📚 비교연산자③ in

  • 다중행비교연산자, 우변에 값리스트가 올 수 있음.

  • (=, OR)의 성격을 내포하고 있음.

  • 우변의 값리스트와 비교해서 하나이상 동일하면 ture를 반환하는 비교연산자

select 컬럼명
from 테이블명
where 컬럼명 in (비교값);
  • in = or 일 때
select employee_id, last_name, salary, manager_id
from employees
where manager_id in (100,101,201);
-- (==)
select employee_id, last_name, salary, manager_id
from employees
where manager_id = 100 or manager_id = 101 or manager_id = 201;

📚 비교연산자④ like

  • 패턴일치 여부를 비교하는 연산자
select 컬럼명
from 테이블명
where 컬럼명 like '기호';
  • 기호 :

① % : 0 또는 여러개의 문자

② _ : 반드시 1개의 문자

a로 시작되는 문자열 : 'a%'

a가 포함된 문자열 : '%a%'

a로 끝나는 문자열 :'%a'

a로 시작해서 b로 끝나는 문자열 : 'a%b'

두번째 문자가 a인 문자열: '_a%'

끝에서 세번째 문자가 a인 문자열 : '%a__'

  • 9월에 입사한 사람 출력하기
select last_name
from employees
where LAST_NAME like '_o%';
select employee_id, last_name, salary,hire_date
from employees
where HIRE_DATE like '%09%'; 

    👉 1809-00-00,1909-00-00,0000-09-00,0000-00-09 다 나올수 있다.

    👌 9월만 나오게 하려면

select employee_id, last_name, salary,hire_date
from employees
where HIRE_DATE like '_____09%'; 
                (==)  '%-09-%'

📚 비교연산자⑤ is null

  • 값이 null인지를 비교해주는 연산자
select 컬럼명
from 테이블명
where 컬럼명 is null;
  • 수당을 받지 않는 사원 출력!
select employee_id, last_name, salary,commission_pct
from employees
where COMMISSION_PCT is null;

📚 where절에 여러개의 조건문 작성 시

  • and, or 논리연산자로 연결
  • 우선순위 : and > or
    우선순위 지정을 원하는 경우 괄호 사용해야함.
select employee_id, last_name, salary, job_id, department_id
from employees
where (job_id = 'SA_REP'
or job_id = 'IT_PROG')
and salary >= 10000;
-- (==)
select employee_id, last_name, salary, job_id, department_id
from employees
where JOB_ID in ('SA_REP','IT_PROG')
and SALARY >= 10000;

📚 [비교연산자 정리]

비교연산자반대비교연산자
=<>, !=
>,>=<, <=
between A and Bnot between A and B : A미만 B초과
in => (=,or)not in => (<>, and)
likenot like
is nullis not null

3. order by절(정렬)

  • 특정 컬럼을 기준으로 정렬된 결과를 출력해준다.
select * | 컬럼명1, 컬럼명2, 컬럼명3
from 테이블명
[where 조건문]
[order by 컬럼명 | 표현식 | 컬럼alias | 위치표기법 [asc | desc]];
  • 정렬방법 :
    1. asc : 오름차순, default(기본값)
    (asc는 기본값이므로 생략가능)

    2. desc : 내림차순

  • 위치표기법 : 컬럼명의 순서 숫자로도 가능
            1           2         3       4         5
select employee_id, last_name, salary, job_id, department_id
from employees
where DEPARTMENT_ID < 80
order by 5;

4. 역모델링

  • 데이터모델링 단계
  1. 요구사항 수집 및 분석

  2. 개념 모델링
    → 피터첸의 ERD(뼈대)
    테이블, 컬럼, 관계 등이 결정된다.

  3. 논리 모델링
    → 구체화된 ERD(IE표기법, 테이블 차트)
    데이터타입,컬럼사이즈,제약조건 등이 결정됨.

  4. 물리 모델링
    → DB에 테이블 구현(create table ----;)

  • 역모델링이란?
    현재 DB에 존재하는 테이블을 기준으로 ERD를 그려주는 기능

0개의 댓글