21.08.19

.·2021년 9월 5일
0

playdata

목록 보기
19/35
post-thumbnail

DAY 22

oracle 다운
https://www.oracle.com/kr/database/technologies/oracle-database-software-downloads.html
 
오라클과 MYSQL차이
 - 오라클 : 버전뒤에 C를 사용 (클라우드) , 전체 어플리케이션 플랫폼
 - MYSQL : 변형 DB , 오라클에 비해 경량
  • oracle설치 시 주의할점!

    계정이 한글이면 X -> 영어로 변경

  • 오라클 설치

  • 오라클 접속

    - 나오려면 exit

    - Service XE , OracleXETNSListener이 실행 안되어 있으면 연결 안됨 -> 확인!!

  • 저장소
SYSAUX.DBF 
SYSTEM.DBF -> 계정 만들고 
USERS.DBF -> 계정당 작업했던 내역 / user_ 형식으로 확인 가능
TEMP.DBF -> 오버플로우 했을 때 저장

  • 계정 생성
    create user 계정명 identified by 비밀번호;


Q1) sql확장자 파일을 실행시키는 방법
1. C:\USers\Playdata > sqlplus / as sysdba
2. SQL> @"C:\USers\Playdata\Desktop\scott.sql"
3. SQL> EXIT

4. C:\USers\Playdata > sqlplus scott/TIGER
5. SQL> show user 
   => USER is "SCOTT"
   
Q2) 생성된 전체 테이블 보는 방법
SQL > SELECT * FROM TAB;

* 오라클 식별자 및 명령어 구문의 특징
   1) 자바의 식별자 생성 규칙과 동일하다
   2) 단 명령 구문은 대소문자 구분하지 않는다.
   3) VALUE는 대소문자를 명확하게 구분한다.

 - SELECT ~ FROM 명령문
	SELECT
	FROM
	WHERE
	HAVING
	GROUP BY
	ORDER BY

  SELECT 컬럼명[*],[별칭]..
  FROM 테이블,

Q3) 대상 테이블의 내용을 확인하자
SELECT *
FROM EMP;
Q4) DEPT테이블의 내용을 확인하자

Q5) BONUS 테이블의 내용을 확인하자

Q6) 테이블의 구조를 확인하자
DESC 테이블명;

// 
숫자 NUMBER (자리수, 소수이하자리수)
문자 CHAR
문자열 VARCHAR 2000 VARCHAR2 4000
날짜 DATE
시간 TIME
// 테이블에 따라 오버플로우가 나면 오류가 남

Q7) 사원테이블의 사원의 이름과 사원의 번호, 봉급을 출력하자.
SELECT ENAME,EMPNO,SAL
FROM EMP;

Q8) 사원의 이름과 입사일을 출력해보자
SELECT ENAME,HIREDATE
FROM EMP;

Q9) 사원의 이름과 매니저 부서번호를 출력해보자
SELECT ENAME, MGR,DEPTNO
FROM EMP;

Q10) 사원의 이름과 입사일 커미션을 출력해보자
SELECT ENAME, HIREDATE, COMM
FROM EMP;

Q11) 컴럼을 나열하는 곳에 별칭을 줄 수 있다. 
  SELECT 컬럼명 별칭 , 컬럼명 AS별칭, 컬럼명 AS "별 칭" // 공백이 있으면 "" 필수 / /오라클은 AS 선택 안붙여도 됨
  FROM 테이블명
 - 사원의 이름과 입사일 커미션을 출력해보자, 단 문제내용의 컬럼명을 동일하게 한글로 표시해라
  SELECT ENAME "사원의 이름", HIREDATE 입사일, COMM AS 커미션
  FROM EMP;

Q12) 연결문자열 || 
SELECT ENAME||'님' 
FROM EMP;


Q13) 연결문자열 || 
SELECT ENAME||'님' AS "사원의 이름"
FROM EMP;

Q14) 아래와 같이 출력되오록 해보자
사원 00은 00일에 입사를 하고 00 월급을 받는다.

SELECT '사원'||ENAME||'은' , HIREDATE || '일에 입사를 하고', SAL || '월급을 받는다' AS RES(별칭이 길면 주는데 안줘도 됨)
FROM EMP;

Q15) 사칙연산을 컬럼 연산으로 구현할 수 있다.
사원의 테이블에서 사원의 이름과 연봉을 구해라

SELECT ENAME,SAL ,SLA*12 AS연봉
FROM EMP;

Q16) 사원의 이름, 봉급, 커미션, 연봉을 구하되 다음과 같이 연봉을 구한다
 연봉 = (봉급*12)-커미션
별칭도 문제의 한글 컬럼 속성과 같이 출력한다.

 SELECT ENAME  "사원의 이름" , SAL 봉급 , COMM 커미션 , (SAL*12)-NVL(COMM,0) 연봉 FROM EMP;

//NVL(컬럼명,널이라면 채울수 있는 값) => NULL값이라면 뒤에있는 값으로 채워서 계산해라
//NVL2(컬럼명, 널이아니라면, 널이라면) -> 조건문??

Q17) 사원의 테이블에서 사원의 이름과 매니저를 출력하되 매니저가 없으면 없다라고 출력하자.
SELECT ENAME 사원의이름 , NVL(TO_CHAR(MGR),'없음')  매니저 FROM EMP; // TO_CHAR() 캐스팅

Q18) 사원의 이름 , 봉급, 커미션, 연봉을 구하되 다음과 같이 연봉을 구하되 값이 NULL일 경우에 연봉으로 채워라 
    NVL2로 연산해보자
> SQL> SELECT ENAME,SAL,COMM,NVL2(COMM,(SAL*12)-COMM,SAL*12) FROM EMP;
 

0개의 댓글