rueki
2. SQL 기본 정의 및 실습 본문
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에 붙여넣어서 테이블을 생성 후, 실습 진행
- 테이블 설명
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;
'SQL' 카테고리의 다른 글
SQL pivot, 누적 데이터 출력, 테이블 Join 기초 (0) | 2020.04.08 |
---|---|
4 SQL . Select 의 6가지 절, 분석 전용 함수 (0) | 2020.04.07 |
3. SQL 함수 (0) | 2020.04.03 |
3. SQL 연산자, where, order by, 함수 (0) | 2020.04.02 |
1. Oracle Database 설치 (0) | 2020.04.01 |