rueki

2. SQL 기본 정의 및 실습 본문

SQL

2. SQL 기본 정의 및 실습

륵기 2020. 4. 1. 17:20
728x90
반응형

SQL - Structure Query Language (구조적 질의 언어)

: 데이터를 검색하고 조작하는 언어이며 데이터 분석에 있어 필수적으로 요구되는 기술이다.

 

SQL의 종류로는 아래와 같다.

- Query : select 문의 6가지 절, Join , sub query

 

- DML (Data Manipulation Language) : 데이터 조작 언어

데이터베이스의 테이블에 들어있는 데이터에 변형을 가하는 종류의 명령어들을 말한다. (삽입, 수정,삭제 ...)

ex) insert, update, delete, merge

 

- DCL (Data Control Language) : 데이터 베이스에 접근하고 객체들을 사용하도록 권한을 주거나 회수하는 명령어

ex) grant, revoke

 

- DDL (Data Definition Language) : 데이터 정의어

테이블과 같은 데이터 구조를 정의하는 데 사용되는 명령어들(생성, 변경, 삭제, 이름 변경)

ex) create, alter, drop, rename, truncate

 

- TCL (Transaction Control Language) : 논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 트랜잭션 별로

                                                   제어하는 명령어들을 말한다.

 


유저 생성 및 select 문 알아보기

  • DB 접속 USER 생성

     -> create user 'name' identified by 'password';

     name => 유저 이름 설정

     password => 비밀번호 설정

 

  • select 문 기본 구조

     -> select (컬럼 명) from (테이블 명) where (조건);

 

      데이터 합칠 때 + 를 통해서 출력 가능

     -> 아래의 문제 5번 참조, 컬럼 명1 + 컬럼 명 2 -> 출력 : '컬럼 명1 + 컬럼 명 2'

 

 

* Null : 데이터가 비어있는 상태, 알 수 없는 상태

  데이터 값이 존재하는 것과 null 데이터를 갖고있는 것을 합하면 결과 값은 null로 나온다.

  => null 값을 채울 수 있는 함수 : nvl

  ex ) nvl(컬럼 명, 0) -> 해당 컬럼의 null 값을 0으로 바꾼다.

 

 

  • 컬럼 명 별칭 부여하기 (column alias) : select ename (as) 이름, sal (as) 월급 emp;

      As를 사용해서 다른 컬럼명으로 출력이 가능, as 생략도 가능하다.

 

 

  • SQL에서 " " (더블 쿼테이션 마크를 사용해야하는 경우)

    1. 공백 문자

    2. 특수 문자 : $, _

    3. 대소문자 구분하고자 할 때, 이를 컬럼 별칭으로 출력하고자 할 때

 

      ex) select ename as "사원 이름", sal as "월급" from emp; -> 공백 문자

      ex) select ename as "Employee", sal as "Salary" from emp; -> 대소문자 구분

 

  • 중복 데이터 제거 - Distinict

 

  • 연결 연산자 || : 두 개의 컬럼의 데이터를 서로 연결해서 출력할 때 사용하는 키워드

연습 문제

아래의 메모장 파일 내부의 코드를 sql에 붙여넣어서 테이블을 생성 후, 실습 진행

실습위한 테이블 생성코드.txt
0.00MB

  • 테이블 설명

Empno - 사원 번호

Ename - 사원 이름

Job - 직업

Mgr - 관리자 사원번호

hiredate- 입사일

Sal - 월급

comm - 커미션

deptno - 부서번호

 

문제 1 : emp 테이블에 컬럼이 무엇이 있는지?
-> Describe emp;

문제2. 이름, 월급, 직업, 부서번호 출력
-> select ename, sal, job, deptno from emp;

문제3. 사원번호, 이름, 월급, 커미션 출력
-> select empno, ename, sal, comm from emp;

문제4. 커미션 받는 사원들의 직업
-> select empno, ename, sal, comm, job from emp;

문제5. 이름, 월급, 커미션, 월급 + 커미션 출력
-> select ename, sal, comm, sal+comm from emp;

문제6. 이름,월급, 커미션, 커미션이 null인 사원들은 0으로 출력
-> select ename,eval, comm, nvl(comm, 0) from emp;

문제 7. 이름, 월급 + 커미션 출력
-> Select ename, sal + nvl(comm,0) from emp;

문제 8. 이름과 직업과 입사일 출력, 컬럼명을 전부 한글로 출력
-> Select ename 이름, job 직업, hiredate 입사일 from emp;

문제9,10 . 직업을 출력하고 직업 데이터에서 중복 제거를 출력해보고 비교하기
-> select distinct job from emp;

문제 11.부서번호 출력(중복 제거해서)
-> select distinct deptno from emp;

문제 12. 이름과 월급을 서로 연결해서 출력
-> Select ename || sal from emp;

문제 13. 이름과 월급을 아래와 같이 문자열로 출력
사원 이름의 월급은 월급 액수
-> select ename || '의 월급은' || sal from emp;

 

728x90
반응형
Comments