2019. 4. 15. 17:14ㆍ빅데이터 머신러닝 전문가 양성과정/1.SQL
1. SQL SELECT 문
■ 기본 select 문
SELECT 검색하고 싶은 컬럼 명
FROM 테이블 명;
예제 :
select ename, sal
from emp;
문제1. 우리반 테이블에서 이름, 나이를 출력하시오.
select ename, age
from emp9;
문제2. 우리반 테이블에서 이름, 전공, 통신사를 출력하시오.
select ename, major, telecom
from emp9;
문제3. 우리반 테이블에서 이름과 주소를 출력하시오.
select ename, address
from emp9;
projection column 선택 / select row 선택
■ DESCRIBE/DESC
TABLE을 이루고 있는 열에 대한 검색
describe dept;
desc dept;
문제4. emp 테이블에 컬럼들이 무엇이 있는지 조회하시오.
describe emp;
desc emp;
문제5. 사원이름, 직업과 부서번호를 출력하시오
select ename, job, deptno
from emp;
■ 모든 열 선택
Asterist * : 모든 컬럼
문제 6. EMP테이블의 모든 컬럼들과 모든 데이터를 다 검색하시오
select *
from emp;
□ SQL PLUS 명령어
sqlplus 유저명/패스워드
sqlplus scott/tiger
sql plus는 오라클에서 만든 소프트웨어 이름이다.
Set / Show 명령
EMP 테이블의 행과 열이 많아서 한번에 잘 출력하기 위해
set pages 400
set lines 300
column 명령어
column 열 이름 format 형식
column major format a10
■ 특정 열 선택
문제7. 우리반 테이블에서 이름과 전공과 이메일을 출력하시오
select ename, major, email
from emp9;
문제8. 이름, 통신사, 주소를 출력하시오
select ename, telecom, address
from emp9;
-
SQL 작성시 가이드 라인
-
SQL 문은 대소문자를 구분하지 않습니다.
-
SQL 은 한 줄 또는 여러줄로 입력할 수 있다.
select ename, telecom, address from emp9;
권장 SQL 줄 바꿈과 들여쓰기
select ename, telecom, address
from emp9;
-
키워드나 약어로 표기하거나 여러 줄에 걸쳐 입력할 수 없습니다.
-
절은 대개 별도의 줄에 입력합니다.
select
from
where
group by
having
-
5.가독성을 높이기 위해 들여쓰기를 사용한다.
select ename, sal, job
from empwhere deptno = 10;
6.SQL은 반드시 세미콜론(;) 으로 종료를 해야한다.
-
산술식
문제 9.
이름, 월급, 월급에 300을 더한 값을 출력하시오.select ename, sal, sal+300 from emp;
예.
select 3000 + 2 * 4 from dual;
문제10. 위의 SQL이 + 부터 시행되게 하시오
select (3000 + 2) * 4 from dual;
-
■ null 값의 정의
문제11. 커미션이 할당된 사람들의 직업이 무엇인지 확인하시오.
결론 : 직업이 salesman인 경우만 comm 할당되었다.
문제 12. 이름, 월급, 커미션, 월급 + 커미션을 출력하시오.
select ename, sal, comm, sal+comm
from emp;
※ 알수 없는 값을 더 할 수 없다.
문제 13. 위의 결과에서 커미션이 null로 출력되는 사원들은 null이 아니라
숫자 0으로 출력되게 하시오.
nvl(column이름, null 값을 대체할 값)
select ename, comm, nvl(comm,0)
from emp;
문제14. 이름, 월급, 커미션, 월급+커미션을 출력하는데
월급 + 커미션에 null이 출력되지 않게 하시오.
select ename, sal, comm, sal+nvl(comm,0)
from emp;
-
■ 컬럼 별칭(alias)
예.
select ename as 이름, sal + 300 as 월급 from emp;
※ 컬럼별칭(alias)
- 열 머리글의 이름을 변경한다.
- 계산식에 유용하다.
- as는 생략 가능하다.
- 컬럼별칭이 공백이나 특수문자를 포함하려면 양쪽에 더블쿼테이션마크(")를 사용해야 한다.
- 컬럼별칭이 대소문자를 구분하고자 하면 양쪽에 더블쿼테이션 마크를 사용해야한다.
*이경우를 제외하고 오라클에서는 싱글쿼테이션마크를 사용한다.
예.
select ename as "Employee name", (sal + 300)*12 as "Y_salary" from emp;
문제 15. 우리반 테이블에서 ename, major, age를 출력하는데 컬럼명이 한글로 이름, 전공, 나이로 출력되게 하시오.
select ename as 이름, major as 전공, age as 나이 from emp9;
※ 컬럼별칭을 사용한 이후 별칭의 이름을 사용해야 한다.
column 이름 format a10 column 전공 format a15 column 나이 format 999
■연결 연산자 ( || )
"열이나 문자열을 다른 열에 연결할 때 사용하는 키워드"
예.
select ename || sal
from emp;
예.
select ename || ' 의 월급은 ' || sal || ' 이다.'
from emp;
문제 17. 우리반 테이블을 가지고 아래와 같이 결과가 출력되게 하시오
example 백정아 학생의 전공은 수학과 입니다.
select ename || ' 학생의 전공은 ' || major || '과 입니다.'
from emp9;
■ 대체 인용(q) 연산자
"문자열 안에
싱글 쿼테이션 마크를 넣어서 출력하고자 할때는 대체 인용 연산자를 사용한다"
q'[ 싱글 쿼테이션 마크가 들어가는 문자열 ]'
예제. 아래와 같이 결과를 출력하려면 어떻게 SQL을 작성해야 하는가?
SCOTT's deptno : 10
Select ename|| q'[ 's deptno : ]' || deptno
from emp;
■ 중복행을 제거하는 distinct
문제 18. 우리반의 나이를 중복제거해서 출력하시오.
select distinct age
from emp9;
■ describe 명령어
"테이블의 구조를 표시하는 명령어이다."
예. emp테이블의 구조를 확신하시오.
describe emp;
desc emp;
'빅데이터 머신러닝 전문가 양성과정 > 1.SQL' 카테고리의 다른 글
3) 단일행 함수 _ 1. 문자함수_substr & instr (0) | 2019.04.23 |
---|---|
3) 단일행 함수 _ 1. 문자함수 (0) | 2019.04.19 |
2) 데이터 제한 및 정렬 (0) | 2019.04.15 |