강의목표
1. db설치 후 속성파일을 확인할 수 있다.
2. sid의 개념을 이해할 수 있다.
3. select 구문을 이해하고 활용할 수 있다.
뭔가 말하는 내용을 받아 적은 것이라 문장이 이상하다....
============================================================================
oracle11(XE)를 다운받아서 설치한다. oracle12부터는 c가 붙으며 cloud 연동이되서 무겁다.
오라클을 설치하면 데이터를 저장하는 서비스를 XE로 접근하게 해놨다. tomcat과 카타리나 같은 느낌.
XE = SID = Service ID
============================================================================
Window의 서비스 앱을 실행해서 oracle을 확인해보자.
OracleServiceXE : 오라클 서비스를 XE라는 서비스 아이디로 실행한다.
OracleXETNSListener : 클라이언트가 서버(XE)에 접속하게 해준다.
오라클 포트
1521: Oracle database listener
2030: Oracle Services for Microsoft Transaction Server
8080: HTTP port for the Oracle Database XE graphical user interface
port number :8080은 톰캣이랑 겹친다. WAS랑 서버(오라클)랑 있으면 오라클이 우선순위이므로
우선순위가 낮은 톰캣의 포트를 바꿔야한다.
C:\tomcat\apache-tomcat-9.0.45\conf에서 servel.xml을 실행한 후
69번째 라인의 포트를 8080에서 8787로 바꾼다.
<Connector port="8787" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
============================================================================
C:\oraclexe\app\oracle\product\11.2.0\server\log\diag
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN에서
listner.ora, tnsnames.ora는 확인해야한다.
얘네 2개가 서비스에 OracleServiceXE, OracleXETNSListener 두 개의 속성을 확인한다.
C:\oraclexe\app\oracle\product\11.2.0\server에서 다른 프로그램이랑 연결하는 객체(드라이버)를 확인할 수 있다.
ASP.net : C#연동 객체
jdbc : java
odbc, ode.net, odp.net : 기타언어
oledb : 윈도우 연결객체
겸사겸사 java의 jdk와 jre에 jdbc를 복사해놓는다.
C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib에서
ojdbc5.jar, ojdbc6.jar, ojdbc6_g.jar 파일을 복사해서
C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext,
C:\Program Files\Java\jre1.8.0_291\lib\ext 두 곳에 붙여넣는다.
============================================================================
cmd에서 오라클을 실행하는 방법
1. sqlplus 입력 -> id 입력 -> pw 입력
2. sqlplus id 입력 -> pw 입력
3. sqlplus id/pw 입력
미리만들어진 sql문을 실행하려면
@"c:\test\scott.sql"
============================================================================
[1] 단일 select
SELECT 컬럼리스트,,,,,[*]
FROM 테이블명;
Q1) 생성된 모든 테이블을 확인
SELECT *
FROM TAB;
Q2) 접속된 계정을 확인
SHOW USER;
Q3) 생성된 테이블 중 사원테이블(EMP)의 구조 확인
DESC EMP
Q4) 사원테이블에서 사원의 이름, 사번을 출력 해보자.
SELECT ENAME, EMPNO
FROM EMP;
Q5) 사원테이블과 부서테이블의 전체 내용을 출력하자
SELECT *
FROM EMP, DEPT;
--> (EMP1 - DEPT1, EMP2 - DEPT1 ... EMP11 - DEPT4, EMP12 - DEPT4) 해서 12 * 4 = 48개 나옴
Q6) 사원의 이름과 부서번호, 부서이름을 출력하자
SELECT ENAME, DEPTNO, DNAME
FROM EMP, DEPT; --> 오류
SELECT EMP.ENAME, EMP.DEPTNO, EMP.DNAME
FROM EMP, DEPT;
============================================================================
[2]
SELECT 컬럼 [AS] 별칭,,,,
FROM 테이블명 별칭,,,,;
Q7) 사원의 이름고 부서번호, 부서이름을 테이블에 각각 사원, 부서로 별칭을 주어 출력하자
SELECT 사원.ENAME, 부서.DEPTNO, 부서.DNAME
FROM EMP 사원, DEPT 부서;
Q8) 사원테이블에서 사원의 이름, 부서번호, 봉급이라고 별칭을 주고 출력하자
SELECT ENAME "사원의 이름", DEPTNO "부서번호", SAL AS 봉급
FROM EMP; --> 띄어쓰기가 있으면 "", AS는 생략 가능
Q9) 문자열 연결 연산자 || : SELECT 위치에 지정 이름 님이라고 출력하자
SELECT ENAME||'님'
FROM EMP;
Q10) 00님은 00일에 입사했다. 를 출력해보자
SELECT ENAME||'님은 '||HIREDATE||'일에 입사했다.'
FROM EMP;
Q11) 중복 데이터를 삭제하는 DISTINCT(열중복제거)
SELECT DISTINCT 컬럼
FROM 테이블;
SELECT DISTINCT JOB
FROM EMP;
Q12) 사칙연산 (컬럼)
사원테이블에서 연봉을 구하자
봉급 * 12 + 커미션
SELECT ENAME, SAL*12 + COMM
FROM EMP; --> NULL은 더해지지 않는다
SELECT COMM, NVL(COMM, NULL을 대체할 값)
FROM EMP;
SELECT ENAME, SAL*12 + NVL(COMM, 0) AS 연봉
FROM EMP;
============================================================================
[3]
SELECT 컬럼 [AS] 별칭,,,,
FROM 테이블명 별칭,,,,;
ORDER BY 정렬할 컬럼 [ASC(DEFAULT), DESC] --> 컬럼명 대신 SELECT 순서에 따라 1234로 가능
Q13) 사원테이블에서 사원의 이름, 사번을 사번의 역순으로 출력해보자
SELECT ENAME, EMPNO
FROM EMP
ORDER BY 2 DESC;
'데이터과학자 - 강의 > oracle' 카테고리의 다른 글
210525 oracle - SET, SUBQUERY (0) | 2021.05.25 |
---|---|
210524 oracle - JOIN (0) | 2021.05.25 |
210524 oracle - 분석함수 (0) | 2021.05.25 |
210521 oracle - 함수, 그룹함수, GROUP BY, HAVING, ROLLUP, CUBE, GROUPING (0) | 2021.05.21 |
210518 oracle - SELECT, 기본함수 (0) | 2021.05.18 |