
📃 요약
전세계 기업시장에서 굉장히 활용 많이 하는 관계형 DB 로 오라클이 있음.
상용 가격은 굉장히 비싸고, 유지보수 비용도 굉장히 높은것으로 알려져 있음.
마이크로서비스가 활성화 되면서 예전과 달리 비싼 비용의 오라클보다 무료 DB 로 전환하는 사례도 나타나고 있음
주로 서비스업체 중심으로 Mysql / Maria DB 가 많이 활용되고 SI 프로젝트는 아직도 전통의 강자 오라클이 많이 사용되고 있음
요소 기술 :
– Basic : SQL
📃 기술 구현
스펙 :
- SQL Developer - Oracle SQL
📃 SQL 기초
1. DB
- DB 서버 <- 사용자가 접속해서 사용함(계정/암호) - system 계정 : 관리자( 계정생성, 권한관리 또는 DB 환경관리 용으로 사용 ) - scott 계정 : 개발자(사용자) 계정 - 벡엔드 개발을 진행함
2. DB 접속 툴
- sql-developer 1) 주석 : ctrl + / 2) 커서 위치 한줄 실행 : ctrl + enter (아이콘 : 삼각형) 3) 여러줄 실행 : f5 (아이콘 : 문서 + 삼각형)
3. 테이블
- 데이터를 관리 또는 저장하기 위한 최소단위
4. SQL 질의문(query)특징
- SQL 명령문 : DB 에 조회/수정/삭제/추가 명령어를 전달 - CRUD : 4가지 대표 SQL 명령어 1) 추가(Create) : insert 2) 조회(Read) : select 3) 수정(Update) : update 4) 삭제(Delete) : delete - 대소문자 구분이 없음(오라클 DB : 대문자가 성능이 빠름)
5. 조회(R) : select
- DB 정보를 조회하는 명령어를 실행
1) 전체 조회
-- 1) SQL 문 : 검색(조회) : SELECT ~ FROM 문 -- 사용법) SELECT 컬럼명,컬럼명2... FROM 테이블명; -- * : 모든 컬럼 SELECT * FROM DEPARTMENT; -- 전체부서를 조회하는 쿼리(질의문)
2) 비교연산자로 조회하기 :
- 비교연산자 : > , <, >=, <=, =(같다), <>(같지않다)
사용법) SELECT 컬럼명,컬럼명2 ... FROM 테이블명
WHERE 조건절(컬럼명 > 값)
— 1) 비교연산자로 조건절 사용하기
— 예제 1) 월급(SALARY) 이 1500 이상인 사원(EMPLOYEE) 조회하기(ENAME, SALARY)
SELECT ENAME, SALARY FROM EMPLOYEE
WHERE SALARY > 1500;
#### 3) 논리 연산자로 조회하기 : - 논리연산자 ( AND(*****), OR, NOT ) -- 성능 : AND > OR (NOT) ```sql 사용법) SELECT 컬럼명,컬럼명2 ... FROM 테이블명 WHERE 조건절 AND 조건절2 ... -- 예제 5) 부서번호(DNO) 가 10이고(AND) 직급이(JOB) 'MANAGER' 사원을 출력하세요 -- 사원 : EMPLOYEE SELECT * FROM EMPLOYEE WHERE DNO = 10 AND JOB = 'MANAGER';</code></pre> <h4>4) BETWEEN / NOT BETWEEN 으로 조회하기 :</h4> <ul> <li>BETWEEN : 작은값 ~ 큰값 사이의 결과 조회하기</li> <li>NOT BETWEEN : 작은값 ~ 큰값 사이에 없는 결과 조회하기 <pre><code class="language-sql"> 사용법) SELECT 컬러명 FROM 테이블명 BETWEEN 작은값 AND 큰값;</code></pre></li> </ul> <p>-- 사용처 : 작은값 ~ 큰값 사이의 결과 조회하기 SELECT * FROM EMPLOYEE WHERE SALARY BETWEEN 1000 AND 1500;</p> <p>-- NOT BETWEEN : 작은값 ~ 큰값 사이에 없는 결과 조회하기 SELECT * FROM EMPLOYEE WHERE SALARY NOT BETWEEN 1000 AND 1500;</p> <pre><code> #### 5) IN / NOT IN 으로 조회하기 : - OR 로 연결된 데이터를 조회와 같음 - SQL 가독성을 높이는 사용법 ```sql 사용법) SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 IN (값, 값2, ...); -- 사용처 ; OR 로 연결된 데이터를 간단하게 사용 가능 -- 예제 10) 상여금(COMMISSION) 300 이거나 500 이거나 1400 인 사원 조회하기 SELECT * FROM EMPLOYEE WHERE COMMISSION IN (300, 500, 1400); -- NOT IN 사용 -- 예제 11) 상여금(COMMISSION) 300 이 아니고, 500이 아니고, 1400 아닌 사원 조회하기 -- 사원 : EMPLOYEE SELECT * FROM EMPLOYEE WHERE COMMISSION NOT IN (300, 500, 1400);
5) LIKE 검색(*****) :
— 정의 : 일부 키워드(영문자, 한글)만 사용해서 비슷한 것들만 추려서 조회하기
사용법) SELECT 컬럼 FROM 테이블명 WHERE 컬럼명 LIKE '%키워드%'; -- 예제 12) 이름이 'F' 로 시작하는 사원 조회하기 -- 사원 : EMPLOYEE -- 대상 컬럼 : ENAME -- 사용법) SELECT 컬럼 FROM 테이블명 WHERE 컬럼명 LIKE '%키워드%'; -- % : 키워드를 제외한 문자들 SELECT * FROM EMPLOYEE WHERE ENAME LIKE 'F%';
6) NULL 검색(조회) :
— 정의 : 일부 키워드(영문자, 한글)만 사용해서 비슷한 것들만 추려서 조회하기
사용법) SELECT 컬럼 FROM 테이블명 WHERE 컬럼명 IS NULL; -- 예제 15) 상여금(COMMISSION) 이 NULL 인 사원을 조회하세요. SELECT * FROM EMPLOYEE WHERE COMMISSION IS NULL; -- 정상 -- 상여금에(COMMISSION) NULL 이 아닌 사람을 조회하세요 SELECT * FROM EMPLOYEE WHERE COMMISSION IS NOT NULL;
7) ORDER BY :
- 정렬 기능
- 오름차순(ASCENDING) : 작은 순부터 큰순으로 정렬, 생략가능
- 내림차순(DESCENDING) : 큰 순부터 작은순으로 정렬, 생략불가
- 이 기능을 사용하면 조회 속도 대폭 저하
사용법)
SELECT 컬럼명 FROM 테이블명 ORDER BY 정렬대상_컬럼명 ASC; -- 오름차순
SELECT 컬럼명 FROM 테이블명 ORDER BY 정렬대상_컬럼명 DESC; -- 내림차순
— 예제 16) 사원테이블을(EMPLOYEE) 오름차순으로 정렬하기
— 단 , 월급으로(SALARY) 정렬하세요
SELECT * FROM EMPLOYEE
ORDER BY SALARY ASC; — ASC(오름차순, 생략가능)