카테고리 없음

Oracle, SQL AWS 클라우드 기반 Devops 개발자 과정 2일차

minkhinformation 2024. 12. 17. 17:27

AWS 클라우드 기반 Devops 개발자 과정 2일차

오늘은 지난 AWS 클라우드 기반 Devops 개발자 과정 1일차에서 다루지 못했던 oracle xe 21c와 sql developer 설치과정을 배워보자

 

1. 구글에 oracle xe 21c download 검색

 

 

2. Oracle Database Express Edition (XE) Downloads 클릭

 

3. 자신의 운영체제에 맞는 항목을 선택 후 설치 진행

 

설치가 다운되었다면 압축을 풀어주자!

 

4.압축 풀린 폴더에 들어가주고 setup.exe파일을 실행해주고 설치를 진행한다.

이제 명령 프롬프트에서 실행 가능하지만 보기에 불편하고 조작법도 불편하니 따로 

sqldeveloper 를 설치할 것이다.

 

5. 구글에 SQL Developer downloads 검색

 

6. SQL Developer Downloads 클릭

 

7. 자신의 운영체제에 맞는 항목을 선택 후 설치 진행

설치가 완료되었다면 압축을 풀어주자!

 

8.압축 풀린 폴더에 들어간다.

sqldeveloper.exe 파일을 실행하면 설치과정은 완료된다.

이후에 sqldeveloper.exe를 자주 사요하게 될 것이다.

 

sqldeveloper.exe 설치 전 명령프롬프트 실행 화면

명령 프롬프트 실행화면

 

sqldeveloper실행 화면

SQL Developer 실행화면

이런식으로 엑셀시트처럼 나타나게 되어 보기 편하면서 깔끔해 보인다

 

AWS 클라우드 기반 Devops 개발자 과정 2일차 배우면서 오류나기 쉬운부분 다시 한번 짚고 넘어가기

sql에서의 조건 처리하기전에 FROM을 먼저 써 줌으로서 어디정보에서 조건처리를 할지 결정한다.

 

처리 순서
SELECT EMP_ID, EMP_NAME, SALARY --3
FROM EMPLOYEE                                     --1
WHERE DEPT_CODE = 'D2';                     --2

 

이 과정에서 조심해야 하는 점 SELECT 절에서 흔히  SALARY * 12 AS "연봉" 을 자주 사용한다.

하지만 위 처리 순서를 보면 SELECT절은 3번째로 처리하므로 WHERE 절에서는 "연봉"을 사용하지 못하게 된다.

이를 주의하도록 하자.

처리 순서
SELECT EMP_NAME, SALARY, SALARY * 12 AS "연봉", DEPT_CODE
FROM EMPLOYEE
WHERE 연봉 >= 50000000;    
  
                                                                               잘못된 과정

 

함수 FUNCTION

전달된 컬럼값을 읽어들여서 함수를 실행한 결과를 반환한다. 

SELECT 절에서 단일행 함수와 그룹함수는 같이 사용하지 못한다.

...왜? 결과 행의 갯수가 서로 다르기 때문이다.

 

함수식을 사용할 수 있는 위치는 SELECT절, WHERE절, ORDER BY절, GROUP BY절, HAVING절 에서 사용할 수 있다.

 

<INSTR>

문자열로부터 특정 문자의 시작위치를 찾아서 반환

[표현법]

INSTR(컬럼 | '문자열', 찾고자하는 문자', [찾을 위치의 시작값', 순번]) -> 결과는 NUMBER로 나온다.

 

<SUBSTR>

[표현법] 

SUBSTR(컬럼 | '문자열', 추출할 시작 위치, 추출 문자 갯수)

함수를 중첩으로 사용하고 INSTR와 SUBSTR를 이용하여 이메일 아이디 부분만 추출하는 과정을 배워보았다.

SELECT EMP_NAME, EMAIL, SUBSTR(EMAIL, 1, INSTR(EMAIL, '@') -1)
FROM EMPLOYEE;

결과는 이메일 전체가 나오고 후에 이메일 @전까지의 아이디 부분만 추출하는 기능이었다.

이 과정은 우리가 아이디 비밀번호 찾기에서 사용되는 것 중에서 비슷한 느낌을 받았다. 물론 과정은 이보다 심화과정일 것이다. 

 

자료표에는 다양한 값들이 저장되어 있지만 NULL이 저장되어 있을 수 있다.

만약 자료표에서 보너스 여부를 확인하고자 보너스 컬럼에 NULL를 찾고자 하고, 간단하게 생각한다면 

SELECT * FROM EMPLOYEE
WHERE BONUS = NULL; 

이 방법이 쉽게 떠올랐다.

하지만 NULL에서는

WHERE BONUS IS NULL;
만약 그 반대라면 
WHERE BONUS IS NOT NULL;

이와 같이 작성해야한다. 

 

또 다른 새로운 점은 ESCAPE 다 

여러 이메일들이 나열되어 있는 상황에서 앞글자가 3글자인 이메일을 추려보고자 할 때 

WHERE EMAIL LIKE '___%'; 이처럼 작성한다면 예상 결과와는 다르게 앞글자가 2글자인 이메일이 추출되었다.

그 이유는 WHERE EMAIL LIKE '___%';는 와일드카드로 인식되기 때문에 정상적으로 출력할 수 없게 된다.

그래서 와일드카드와 일반 문자를 구분해 줘야한다. 

데이터 값으로 취급하고 싶은 와일드카드 문자 앞에 나만의 탈출문자를 제시해서 탈출시켜준다.

ESCAPE OPTION을 등록해서 사용이 가능하고 ESCAPE '/'; 를 사용하면 된다. 여기서 /뿐만 아니라 다른것도 상관없이 자신이 이스케이프 문자로 지정해야한다.

결국 WHERE EAMIL LIKE '___/_%' ESCAPE '/'; 를 사용하여 정상적으로 3글자인 이메일을 추출할 수 있게 된다.