ABOUT ME

-

오늘
-
어제
-
-
  • KOSTA 교육 21일차(Database, SELECT, FROM, WHERE, ORDER BY, GROUP BY)
    Review 2020. 6. 21. 17:48

    18.11.26(월)

     

    배운 내용

     

    1. Database
    2. SELECT
    3. FROM
    4. WHERE
    5. ORDER BY
    6. GROUP BY

    1. Database(데이터 베이스)

    Database는?

    서로 연관성을 가지며, 중복 없이 지속성으로 유지 관리해야 할 유용한 데이터들을 Database라고 한다.

    데이터 베이스가 등장한 이유

    • 데이터 파일 사용 시 중복된 데이터 저장이 빈번히 발생하였음
    • 대용량의 데이터를 관리하기에는 역부족이었음
    • 다중 사용자 환경의 데이터 공유가 어려웠음
    • 보안에 취약함

     

    DBMS는?

    데이터베이스 관리 시스템으로 대용량의 데이터를 쉽게 저장하고 효율적으로 검색, 수정, 삭제 할 수 있게 환경을 제공해주는 소프트웨어를 말한다.

    대표적인 시스템으로는 MySQL, ORACLE 등이 있다.

     

    관계형 DBMS
    • 데이터를 단순한 표 형식으로 표현하여 데이터를 관리
    • 데이터베이스의 기본 데이터 저장 단위로 테이블을 사용하며, 테이블 간의 관계를 활용한다.
    • 테이블은 행과 열의 2차월 행렬구조를 가진다.
    • 행은 데이터 파일의 레코드에 해당된다.
    • 하나의 행은 서로 구분되는 속성으로 구성된다.

    2. SELECT

    SELECT는?

    가장 기본적인 절로 테이블이나 뷰에 있는 데이터를 조회할 때 사용한다.

    • SELECT * 혹은 컬럼 FROM 테이블 명;
    • * 은 모든 컬럼을 조회하겠다는 뜻

     

    예제를 통해 학습해보자.

     

    • SELECT절을 사용할 때 * 혹은 컬럼을 사용하여 데이터를 조회해야한다.
    • 지금은 *를 사용하였는데 이유는 FROM student에 있는 모든 정보를 조회하고싶기 때문이다.
    • 여기서 *이 아닌 name, major 등을 조회하고 싶다면 * 대신 입력하여 조회할 수 있다.

    3. FROM

    FROM은?

    조회할 SELECT의 칼럼에 대해서 테이블 명을 정의해 주는 것을 말한다.

    • SELECT * 혹은 컬럼 FROM 테이블 명;

    4. WHERE

    WHERE은?

    조건 내용에 대해서 정의해 주는 것을 말한다.

    • WHERE 조건내용

     

    예제를 통해 학습해보자.

     

    • FROM employees에 있는 SELECT절에 세 가지의 칼럼을 선언한다.
    • WHERE절으로 last_name이 ‘King’ 인 값만 출력할 수 있게 정의해준다. 또한 hire_date가 ‘03/01/01’ 보다 더 큰 날짜만 출력할 수 있게 정의한다.

     

    여기서 WHERE절에 자주 쓰이는 문법들을 살펴보도록 하자

     

    • BETWEEN AND 연산자는 어디부터 ~ 어디까지를 나타낼 때 사용한다.
      employees에 있는 세 가지의 칼럼들을 조회하며 salary가 5000과 10000 사이에 있는 값을 출력하겠다는 의미이다.
    • OR 연산자는 둘 중에 하나를 포함할 시 출력한다는 의미이다.
    • IN 연산자는 ( )에 들어간 값들을 추려내어 출력한다는 의미이다.

     

    • NOT 연산자는 해당 칼럼의 선언한 값을 제외하고 출력한다. 위의 예제에선 department_id에 10이 들어간 값을 제외하고 출력된다.
    • IS NOT NULL 연산자는 NULL을 제외하고 출력시킨다. commission_pct에 NULL값이 제외되고 출력된다.
    • LIKE 연산자는 위의 예시를 보고 활용하면 되는데 활용도가 아주 깊으니 꼭 숙지하고 활용할 수 있도록 한다.
      예시를 예로 들면 07로 시작하는 모든 문자열을 출력하게 되고, a가 포함되지 않는 값을 출력된다.

    5. ORDER BY

    ORDER BY는?

    출력되는 값을 순서대로 출력할 때 사용된다.

    • ORDER BY 칼럼명 (DESC)

     

    예제로 살펴보자

     

    • 화학, 물리과와 1, 2학년을 출력하려는데 ORDER BY를 사용하여 정렬시킨다.
    • 여기서 DESC는 내림차순으로 정렬되게 해준다. 사용을 하지 않아도 무방하다.

    5. GROUP BY

    GROUP BY는?

    그룹으로 묶어 원하는 값을 출력하기 위해 사용한다.

    • SELECT 내에 그룹함수만 사용한다.
    • 굳이 다르게 사용하고 싶다면 SELECT절고 동일하게 GROUP BY절에 선언한다.
    • sum() : 더하기 함수, avg() : 평균 함수, max() : 최대값 함수, count() : 카운트 함수

     

    예제로 살펴보자

     

    • 부서별 평균 급여를 계산할 시 avg()함수를 사용해야한다.
      SELECT절에 avg(급여(salary))를 선언하고 GROUP BY에 동일칼럼을 선언해주면 해당 칼럼에 대한 평균 급여가 출력된다.
    • 화학과만 출력하고싶기 때문에 WHERE절을 이용하여 major = ‘화학'을 선언하고 SELECT절에는 avg(평균(avr))를 선언한다.
      GROUP BY에는 동일하게 칼럼을 선언하여 출력한다.
    • 학생 수는 count()함수를 이용하는데 수를 판단하기엔 뭐든 사용해도 되니 *을 이용하여 선언한다.
    • 4.0의 학점을 4.5로 환산하기 위해서 평균을 4로 나눈 후 4.5를 곱하여 치환한다.
      여기서 화학과 생물과만 출력되기 위해서 IN(‘화학', ‘생물')을 선언하고 GROUP BY 를 선언한다.

    오늘 교육 간 느낀점

    처음으로 데이터베이스를 입문하여 SQL을 처음 다루어보았다.
    자바를 먼저 경험해서 그런지 모르겠지만 확실히 자바를 처음 할 때보다 부담감이 덜 했고 익숙해져서 그런지 확실히 받아들이는 속도가 빨랐다.

     

    하지만 아직 기초 중의 기초를 배우고 있고 처음이기 때문이라고 생각한다.
    강사님도 말씀하셨듯이 join과 여러가지 함수, 서브쿼리 등 배우게 되면 정말 어렵고 머리가 터질 예정이라고 미리 말씀해주셨다.

     

    오늘 배운 이 문법 들은 앞으로도 계속 사용할 중요할 문법 들이기 때문에 꼭 외워야한다.
    이걸 외우지 않고 넘어가면 문제풀이 시 계속 지체되고 이해가 안가는 부분이 많아지기 때문에 뒤쳐질 수 있기 때문이다.

     

    오늘 복습할 뿐만 아니라 계속 활용하고 복습해서 꼭 내 것으로 만들어야겠다!!!

    댓글