K_Digital_Step1_Oracle SQL_01_2

윤일권·2022년 8월 15일
0

Oracle SQL

목록 보기
2/7

Oracle 설치 이후!!

자! 이제부터 Oracle SQL을 시작해보겠습니다.
포스팅 순서는 k_digital에서 배운 순서대로 진행합니다.

Table 생성

  • 우선 테이블을 생성해줍니다.
    해당 테이블에 관한 자세한 내용은 이후 학습할 것이므로 우선 아래와 같이 입력해봅니다.
    아래 코드는 emp라는 테이블을 생성하여 그 안에 여러 값을 넣어준 것입니다.
    CREATE TABLE EMP ( 
      EMPNO     NUMBER(4, 0), 
      ENAME     VARCHAR2(10), 
      JOB       VARCHAR2(9), 
      MGR       NUMBER(4, 0), 
      HIREDATE  DATE, 
      SAL       NUMBER(7, 2),
      COMM      NUMBER(7, 2), 
      DEPTNO    NUMBER(2, 0));
    insert into emp values (7369,'SMITH','CLERK',7902,'1990-12-17',800,null,20);
    insert into emp values (7499,'ALLEN','SALESMAN',7698,'1991-02-20',1600,300,30);
    insert into emp values (7521,'WARD','SALESMAN',7698,'1992-02-22',1250,500,30);
    insert into emp values (7566,'JONES','MANAGER',7839,'1991-04-02',2975,null,20);
    insert into emp values (7654,'MARTIN','SALESMAN',7698,'1991-09-28',1250,1400,30);
    insert into emp values (7698,'BLAKE','MANAGER',7839,'1991-05-01',2850,null,30);
    insert into emp values (7782,'CLARK','MANAGER',7839,'1991-06-09',2450,null,10);
    insert into emp values (7788,'SCOTT','ANALYST',7566,'1997-04-17',3000,null,20);
    insert into emp values (7839,'KING','PRESIDENT',null,'1991-11-17',5000,null,10);
    insert into emp values (7844,'TURNER','SALESMAN',7698,'1991-09-08',1500,0,30);
    insert into emp values (7876,'ADAMS','CLERK',7788,'1997-05-23',1100,null,20);
    insert into emp values (7900,'JAMES','CLERK',7698,'1991-12-03',950,null,30);
    insert into emp values (7902,'FORD','ANALYST',7566,'1991-12-03',3000,null,20);
    insert into emp values (7934,'MILLER','CLERK',7782,'1992-01-23',1300,null,10);
    )

desc 명령어

  • desc 라는 명령어는 테이블의 구조(스키마) 조회 명령어로 아래와 같이 입력합니다.
    desc emp;

select 명령어

select라는 명령어는 SQL명령어 중에서 제일 많이 사용합니다.
select는 테이블에 저장된 데이터 조회하는 명령문입니다.

emp 테이블의 모든 컬럼과 모든 행을 조회

select * from emp;

위와 같은 코드를 입력하고 실행하면, emp테이블에 모든 컬럼과 행을 조회할 수 있습니다.
desc 명령어와 같이 조회를 하지만 desc는 구조를 조회하고, 위 코드는 데이터를 조회하는 차이가 있습니다.

+) 추가로 from 뒤에는 테이블 명이 따라옵니다~!!

emp 테이블의 모든 행의 이름(ename), 번호(empno) 컬럼만 조회하기

select ename, empno from emp;

위와 같은 코드를 입력하면 select * from emp; 와 다르게 ename과 empno에 대한 값만 출력되는 것을 볼 수 있을 겁니다.
두 코드 차이는 select 다음 입력되는 값으로 별표는 모든 값을 조회하고,
컬럼을 입력하면 해당 컬럼의 모든 행을 조회합니다.

리터널(상수, 문자열)을 컬럼으로 생성하기

select empno, ename, 'very good ~~~' from emp;

위와 같은 코드를 입력하면 기존에 생성된 컬럼이 아닌 새로운 컬럼을 리터널로 생성할 경우~ 작은 따옴표를 이용합니다.

컬럼에 별명(alias)주기

select ename 사원이름, empno 사원번호 from emp;
select ename "사원이름", empno "사원번호" from emp;
select ename as "사원이름", empno as "사원번호" from emp;

위와 같은 코드 3가지로 별명을 지정해 줄 수 있습니다.
별명은 실제 값이 아닌 컬럼의 이름을 잠시 지정해주는 것 입니다.
-> 위 3가지 코드 중 어느것이든 사용해도 상관없습니다. (저는 첫번째줄을 사용합니다)

컬럼에 사용되는 연산자

연결연산자 : ||

select ename || empno from emp;

위와 같은 코드에서 두 컬럼사이에 ||를 입력하면 두 컬럼에 값들이 합쳐져 조회됩니다.

select ename || '의 사원번호는' || empno || '입니다.|| from emp;

응용으로 위와같이 리터널을 연결할 수도 있습니다.

산술연산자 : + - * /

select ename 사원이름, sal 현재급여, sal+100 인상예상급여 from emp;

위와 같은 코드는 emp테이블에서 사원의 급여를 100인상하여 사원이름, 현재급여, 인상예상급여를 조회한 코드입니다.
컬럼에 산술연사자를 사용하여 해당 컬럼의 모든 데이터를 결과값을 조회합니다.
이때 산술연산자는 정수,상수여야 가능합니다~

where 조건문

자! 지금까지는 컬럼의 모든 데이터를 조회했다면 where조건문을 사용하여 컬럼의 모든 데이터가 아닌 일부 데이터만 조회보도록 하겠습니다.

where문을 사용한 조건문1

select ename, empno, job from emp where job = 'MANAGER';

위와 같은 코드는 emp테이블에서 ename, empno, job을 출력해줍니다.
이때 job이 MANAGER인 경우만 출력합니다.
where문은 from 테이블 뒤에 작성하며, 컬럼의 데이터가 숫자가 아닐 경우에는
작은따옴표안에 값을 넣어주고, 숫자일 경우 작음따옴표없이 입력해줍니다.

where문을 사용한 조건문2

select ename, empno, sal from emp where sal > 3500;

위와 같은 코드는 조건문1과 달리 where 조건문에 비교연산자를 사용할 수 있습니다.

문제

이제 위 내용을 복습 및 응용하여 문제를 풀어봅니다.

  1. emp테이블에서 empno, ename, sal 조회하기

  2. 1번 문제에서 컬럼의 사원번호, 사원이름, 급여 라는 alias를 붙여 조회하기

  3. 2번 문제에서 ename 뒤에 사원이라는 리터널 추가해서 조회하기

  4. 2번 문제에서 급여를 10%인상하여 인상예상급여를 추가해 조회하기

  5. 1번 문제에서 급여가 3500만원 이상인 사람만 조회하기

  6. emp테이블에서 사원의 급여를 10%인상하기로하고, 급여에 50%인상하고 300을 더한 값을 보너스로 하기로 하였다. emp 테이블에서 사원번호, 사원이름, 급여, 직업, 인상급여액, 보너스를 조회하고, 직업이 MANAGER인 사람만 조회하기

profile
생각하는 개발자가 되겠습니다!!

0개의 댓글