- otn.oracle.com 으로 접속해서 18c express edition 을 다운로드
위 안됨 여기- databass express edition -> prior release 아카이브로 설치
- cmd 실행
- sqlplus " /as sysdba"
SQL수업:sqldeveloper(무료), SQLgate(유료), orange(유료), toad (유료)
alter session set nls_Date_format='RR/MM/DD';
drop table emp;
drop table dept;CREATE TABLE DEPT
(DEPTNO number(10),
DNAME VARCHAR2(14),
LOC VARCHAR2(13) );INSERT INTO DEPT VALUES (10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO DEPT VALUES (20, 'RESEARCH', 'DALLAS');
INSERT INTO DEPT VALUES (30, 'SALES', 'CHICAGO');
INSERT INTO DEPT VALUES (40, 'OPERATIONS', 'BOSTON');CREATE TABLE EMP (
EMPNO NUMBER(4) NOT NULL,
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
MGR NUMBER(4) ,
HIREDATE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(2) );INSERT INTO EMP VALUES (7839,'KING','PRESIDENT',NULL,'81-11-17',5000,NULL,10);
INSERT INTO EMP VALUES (7698,'BLAKE','MANAGER',7839,'81-05-01',2850,NULL,30);
INSERT INTO EMP VALUES (7782,'CLARK','MANAGER',7839,'81-05-09',2450,NULL,10);
INSERT INTO EMP VALUES (7566,'JONES','MANAGER',7839,'81-04-01',2975,NULL,20);
INSERT INTO EMP VALUES (7654,'MARTIN','SALESMAN',7698,'81-09-10',1250,1400,30);
INSERT INTO EMP VALUES (7499,'ALLEN','SALESMAN',7698,'81-02-11',1600,300,30);
INSERT INTO EMP VALUES (7844,'TURNER','SALESMAN',7698,'81-08-21',1500,0,30);
INSERT INTO EMP VALUES (7900,'JAMES','CLERK',7698,'81-12-11',950,NULL,30);
INSERT INTO EMP VALUES (7521,'WARD','SALESMAN',7698,'81-02-23',1250,500,30);
INSERT INTO EMP VALUES (7902,'FORD','ANALYST',7566,'81-12-11',3000,NULL,20);
INSERT INTO EMP VALUES (7369,'SMITH','CLERK',7902,'80-12-09',800,NULL,20);
INSERT INTO EMP VALUES (7788,'SCOTT','ANALYST',7566,'82-12-22',3000,NULL,20);
INSERT INTO EMP VALUES (7876,'ADAMS','CLERK',7788,'83-01-15',1100,NULL,20);
INSERT INTO EMP VALUES (7934,'MILLER','CLERK',7782,'82-01-11',1300,NULL,10);commit;
: 사원 14명에 대한 정보가 들어있는 테이블입니다.
컬럼
empno: 사원번호
ename: 사원이름
sal: 월급
job: 직업
hiredate: 입사일
mgr: 관리자의 사원번호
comm: 커미션
deptno: 부서번호
select empno, ename, sal // select (선택해라!) - 컬럼명
from emp; // from(~로부터) - 테이블명.
(;)
세미콜론: SQL문이 종료되었으니, 앞의 문장을 실행해라!
위 이미지는 컬럼명이 한번 더 나와서 set pages 400 하면 결과가 깔끔하게 나온다.
select ename, job, deptno from emp;
select ename, hiredate, sal, comm from emp;
? 들여쓰기 -> SQL 가독성이 좋아진다.
? 셀렉트 문엔는 컬럼명, 프롬문에는 테이블명!
? 한줄로 써도 실행은 되지만 아래로 작성하기. 나중에 엄청 길어진다!
select * // * (asterisk) from emp;
근데 이렇게하면 테이블이 엄청 안예쁘게 나온다.
set lines 300
(결과의 가로길이) , set pages 400
(결과의 세로길이) 이렇게 설정하면 예쁘게 나온다! - 한번만 하면 됨!
? *(별표)
를 사용하지 않고 모든 컬럼을 다 검색하려면, 컬럼명 다 쓰면 된다. (비효율)
컬럼명은 순서대로 부서번호, 부서명, 부서위치!
select deptno, dname from dept;
데이터가 출력될 때 나오는 컬럼명을 바꿔봅시다.
empno, enamem sal .... -> 사원번호, 이름, Salary
select empno as 사원번호, ename as 사원이름, sal as "Salary" from emp;
? 컬럼별칭을 이용해서 출력되는 컬럼명을 다른 이름으로 변경할수 있습니다. 컬럼명 옆에 as 쓰시고 컬럼별칭을
작성하면 되는데 만약 공백문자나 특수문자 그리고
대소문자를 구분해서 사용하고 싶다면 양쪽에 더블 쿼테이션
마크를 사용하면 됩니다.※ 오라클 전체를 통틀어서 더블 쿼테이션 마크를 사용할 일은
이것밖에 없습니다.
select ename as 사원이름, job as 직업, deptno as 부서번호 from emp;
맨위 !! 다운로드!
설치 후 실행(설치해서 압축푸는데 권리자 권한 필요하다그래서 d드라이브에 저장했음!)
왼쪽 상단에 초록색 플러스(+) 버튼 눌러서 아까만든 계정 연결한다.
사용자이름(c##scott) / 비밀번호 (tiger) 으로 연결!
주석은 -- 붙이면 됨.
문제 5. 사원이름, 월급, 커미션 출력하기! (컨트롤 + 엔터)
문제 6. 이름, 월급 출력하는데 컬럼명이 소문자로 ename, sal 이라고 출력되게 하세요.
select ename as "ename", sal as "sal"
from emp;
컬럼과ㅓㄹ럼을 연결해서 출력할 수 있다. 연결 연산자는 에너키위에 수직바를 두번 연달아 쓴것임!
예제4. 이름과 월급을 서로 연결해서 출력하시오
select ename || sal
from emp;
문제 7. 이름과 월급을 출력하는데 다음과 같이 문자열로 출력하세요
ex) king의 월급은 5000 입니다.
답) select ename || '의 월급은'||sal||'입니다'
froom emp;
문제 8. 다음과 같이 결과를 출력되게 SQL을 작성하시오!
ex) king의 직업은 president입니다.
select ename || '의 직업은' || job || '입니다.'
from emp;
select count(*) from emp;
select ename, deptno
from emp;select ename, sal*2
from emp;select ename as 이름, sal*2 as "두배 월급"
from emp;select ename || '의 월급은'||sal||'입니다'|| sal2||'는 월급2 한 것 입니다.'
from emp;select concat(ename, '의 월급은', sal, '입니다.') as '야호'
from emp;select concat(ename , '의 월급은', sal , '입니다.', sal '는 월급 2한 금액입니다.')
from emp;select sal * 2 as 월급두배
from emp;select ename, sal *2 as 월급두배
from EMP;select ename as 이름 , sal *2 as 월급두배
from emp;
오라클은 문자열 같이 출력할 때 || 를 써줬는데, my sql은 안되길래 찾아보니 concat() 을 사용해야 한다고 한다.
수식이랑 문자열 합쳐서 출력도 가능 !!
select concat(ename , '의 월급은', sal , '입니다.', sal2, '는 월급2한 금액입니다.') as 내맘대로
from emp;
이건 오라클! (띄어쓰기 하려고 " 썼다.)