본문 바로가기

✨ DBMS/Oracle19

[Oracle / SQL] EXTRACT 날짜나 시간에서 특정 필드 추출 EXTRACT 함수는 SQL에서 날짜나 시간에서 특정 필드(년, 월, 일, 시, 분 등)를 추출하는 데 사용된다. 예를 들어, EXTRACT(YEAR FROM date_column)은 날짜 열에서 연도를 추출한다. WHERE 절에 있는 TO_CHAR(START_DATE , 'YYYY-MM') = '2022-09' 문법을 EXTRACT을 사용하여 바꾸어 보았다. EXTRACT 사용 장점 가독성: EXTRACT 함수를 사용하면 코드의 가독성이 향상된다. 날짜나 시간에서 특정 필드를 추출하는 의도가 명확하게 드러나기 때문이다. 유연성: EXTRACT 함수를 사용하면 날짜나 시간에서 필요한 정보를 유연하게 추출할 수 있다. 예를 들어, 연도, 월, 일, 시, 분 등의 필드를 추출할 수 있다. 표준화: EXTRA.. 2024. 2. 20.
DB에러 -> 요청한 작업을 수행하는 중 오류 발생:Listener refused the connection with the following error:ORA-12505, TNS:listener does not currently know of SID given in connect descriptor (CONNECTION_ID=fTPfFwoVRxeyl5DKjGtSRw==)업체 .. 요청한 작업을 수행하는 중 오류 발생: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor (CONNECTION_ID=fTPfFwoVRxeyl5DKjGtSRw==) 업체 코드 12505 해결 했던 방법 1. 우선 윈도우키+R 을 눌러 실행창을 열어 준다. 2. services.msc 를 쳐서 서비스에 들어간다. 3. 컴퓨터를 실행시킬 때 데이터베이스를 키면 한번씩 충돌이 발생해서 뜨는 경우가 종종 있다. 그래서 OracleServiceXE를 중지시켰다가 다시 실행시키고, 재부팅하니 해결되었다. 2023. 4. 29.
[Oracle / SQL] 그룹함수 -1 GROUP BY를 쓰면 SELECT 절에 올 수 있는 컬럼이 정해져있다. 1. 그룹핑한 컬럼 ( 아래에는 DEPTNO를 그룹핑했으니 DEPTNO가 올 수 있는것.) 2. 그룹함수 (데이터가 딱 1개 조회되는거) 그룹 함수란? 테이블의 전체 행을 하나 이상의 컬럼을 기준으로 컬럼값에 따라 그룹화하여 그룹별로 결과를 출력하는 함수이고 복수행 함수라고도 한다. 그룹 함수의 종류에는 COUNT, MAX, MIN, SUM, AVG, STDDEV, VARIANCE 등이 있다. EMP 테이블에는 14개의 데이터가 있다. HTML 삽입 미리보기할 수 없는 소스 은 무엇이 나올까? 오류가 떨어지는데, SUM(SAL)은 값이 하나가 나온다. 하지만 DEPTNO는 사원 수만큼 나온다. 만약 100명이면 100개의 조회결과가.. 2023. 4. 13.
[Oracle / SQL] MERGE INTO 사용방법 (두 테이블, 한 테이블 DUAL) MELON_CHART HTML 삽입 미리보기할 수 없는 소스 MELON_CHART_NEW HTML 삽입 미리보기할 수 없는 소스 MERGE INTO HTML 삽입 미리보기할 수 없는 소스 SELECT * FROM MELON_CHART; 위와 같이 MELON_CHART에 있는 값을 다시한번 조회하면 5개의 새로운 데이터가 추가된 것을 확인할 수 있다. ON 조건절에 MELON_CHART의 SINGER가 MELON_CHART_NEW의 SINGER와 같고, 노래가 같은 것을 조건으로 둔다. WHEN 일치하면, MELON_CHART_NEW의 랭킹을 MELON_CHART로 바꿔주고, REMARK 값을 CONTINUE로 업데이트 시킨다. WHEN NOT 일치하지 않다면, MELON_CHART_NEW의 RANKING.. 2023. 3. 9.
[Oracle / SQL] 뷰(VIEW)의 정의와 생성하는 방법 뷰(VIEW) 란? 하나 이상의 기본 테이블이나 다른 뷰를 사용해 생성되는 가상의 테이블 공간이다. 모든 데이터에서 일부만 뽑아서 사용할 수도 있으며, 이때 뷰를 정의한 기본 테이블에서 무결성 제약조건은 유지된다. 뷰(VIEW)를 만들 수 있게 권한주는 방법 HTML 삽입 미리보기할 수 없는 소스 이는 SYSTEM 계정에서 뷰를 만들 수 있는 권한을 만들어주지 않아서 이다. SYSTEM모드로 가서 MYDB에 뷰를 만들 수 있는 권한을 만들어준다. HTML 삽입 미리보기할 수 없는 소스 HTML 삽입 미리보기할 수 없는 소스 이거는 VIEW이다. TABLE이 아니다. 뷰는 SELECT 한 결과를 바탕으로 뷰를 만들라는 것이다. 즉, 뷰는 데이터가 들어간게 아니다. 가상의 공간으로, 그냥 쿼리 실행하는 것이.. 2023. 3. 8.
[Oracle / SQL] 다중 INSRT 문법 UNION ALL HTML 삽입 미리보기할 수 없는 소스 HTML 삽입 미리보기할 수 없는 소스 HTML 삽입 미리보기할 수 없는 소스 INSERT INTO를 이용해 이와같이 데이터 하나를 넣어줄 수 있다. 아래에서 다중 데이터를 넣어보자. HTML 삽입 미리보기할 수 없는 소스 HTML 삽입 미리보기할 수 없는 소스 위와 같이 UNION ALL을 사용하여 여러 건을 한 테이블에 한번에 INSERT를 할 수 있다. 대량의 데이터를 테이블에 INSERT 해야하는 상황이라면 service에서 for문을 이용해 INSERT 값을 계속 전달해줄 수 있다. 하지만 속도가 굉장히 느리다. 따라서 대량의 데이터를 전달할 때 foreach를 사용해 한번에 insert하는 방식으로 사용하자. mapper에서 대략 이런식으로 sql 쿼리를.. 2023. 3. 6.
[Oracle / SQL] 조인(JOIN) - 서브쿼리 서브쿼리란? 한줄로 요약해 말하자면, SQL 문에 포함되어 있는 또 다른 SQL 문이다. HTML 삽입 미리보기할 수 없는 소스 Q1. 김사랑 사원과 같은 급여를 갖는 사원의 모든 정보 조회 1. 김사랑의 데이터가 어떤지 먼저 알아보자. HTML 삽입 미리보기할 수 없는 소스 HTML 삽입 미리보기할 수 없는 소스 이와 같이 WHERE절 안에 조건을 줄 때 ( ) 소괄호 안에 다시한번 쿼리 문을 넣어 만들어 줄 수 있다. Q2. 강혜정 사원과 같은 부서에서 근무하는 사원들의 모든정보 조회 1.먼저, 강혜정 사원이 어떤 부서에서 일하는지를 먼저 알아야한다. HTML 삽입 미리보기할 수 없는 소스 이후 나온 부서를 조건으로 주는 서브 쿼리를 넣어주면 쉽게 풀어볼 수 있다. HTML 삽입 미리보기할 수 없는 .. 2023. 3. 3.
[SQL] 제약조건 (CONSTRAINT)가 뭘까? 어떻게 사용할까? (제약조건) CONSTRAINT 이란? 테이블의 해당 컬럼에 의도하지 않은 데이터가 입력/변경/삭제 되는 것을 방지하기 위해 테이블 생성, 수정, 삭제할 때 설정하는 조건이라고 볼 수 있다. 즉, 데이터의 무결성을 지키기 위해 제한된 조건이다. 위와 같이 SHOP_MEMBER 테이블을 생성후, INSERT INTO를 이용해 데이터를 넣었다. 여기서 같은 값으로 한번 더 삽입해주었다. 오류가 난걸 보면 ●●● 제약 조건 SYS_C007395 에 위배가 뜬다고한다. 위와 같이 테이블의 제약조건에 들어가서 같은 이름을 살펴보면, 이렇게 확인할 수 있는건, 제약조건에 이름을 주어 어디서 오류가 발생했는지 확인할 수 있다. 이와같이 CONSTRAINT는 제약조건을 설정해 주는 것이다. 기본키와 같이 많이 사용될 .. 2023. 3. 2.
[Oracle / SQL] 조인(JOIN) 여러가지 쿼리를 동시에 조회하는 것이다. HTML 삽입 미리보기할 수 없는 소스 HTML 삽입 미리보기할 수 없는 소스 테이블에 별칭을 붙이는 방법 HTML 삽입 미리보기할 수 없는 소스 HTML 삽입 미리보기할 수 없는 소스 HTML 삽입 미리보기할 수 없는 소스 위 세개는 모두 같은 값을 조회한다. 테이블에서는 별칭을 붙일때 AS를 붙이면 에러가 뜬다. HTML 삽입 미리보기할 수 없는 소스 DEPTNO는 EMP와 DEPT 둘다 들어가있는데, 확실히 정해주지 않아서 오류가 뜬 것이다. 어떤 테이블에 있는 데이터를 조회할지 무조건 명확하게 명칭해주어야 한다. 예를들어 EMP.DEPTNO 라던가 DEPT.DEPTNO라고 해야한다. HTML 삽입 미리보기할 수 없는 소스 엄청 많이 나온다.. ORDER B.. 2023. 2. 27.
[Oracle / SQL] 단일행 함수(Single)와 다중행 함수(Mutible) 단일행 함수(SINGLE ROW FUNCTION) - 한개의 입력 한개의 출력 - SELECT, WHERE, ORDER BY, UPDATE의 SET 절에서 사용 가능 - 조회되는 컬럼 값이 같아야한다. HTML 삽입 미리보기할 수 없는 소스 HTML 삽입 미리보기할 수 없는 소스 다중행 함수(Mutible ROW FUNCTION) - 일반적인 컬럼과 같이 조회가 불가하다. - 여러 행을 바탕으로 1개의 결과값을 도출 - 여러행이 결과로 나오는 열은 사용불가 HTML 삽입 미리보기할 수 없는 소스 위 쿼리는 실행안된다. 조회되는 컬럼 값이 같아야한다. HTML 삽입 미리보기할 수 없는 소스 HTML 삽입 미리보기할 수 없는 소스 혹시라도 이런 쿼리로 숫자를 세려고한다면 절대 이렇게 하지말자. NULL 값은.. 2023. 2. 26.
[Oracle / SQL] 많이 쓰는 함수 NVL , NVL2 , DECODE , CASE NVL 함수 : NULL 값을 원하는 값으로 조회 NVL( 값 혹은 컬럼, 치환 값) NVL HTML 삽입 미리보기할 수 없는 소스 위에서 NVL은 COMM의 NULL 값을 0으로 바꿔주세요. 이다 HTML 삽입 미리보기할 수 없는 소스 위 쿼리는 자료형이 일치하지 않아서 실행안된다. COMM은 숫자형이니 문자열과 일치하지 않다. NVL2(값 혹은 컬럼, NULL이 아닐때 값, NULL일 때 치환 값) NVL2 HTML 삽입 미리보기할 수 없는 소스 NVL2을 말하자면, COMM이 널이 아니면 1000, 널이면 0이라는 말이다. HTML 삽입 미리보기할 수 없는 소스 NVL2는 자료형이 불일치하더라도 NVL과 다르게 조회가 가능하다. DECODE( ) 함수 -> 자바의 IF, ELSE IF, ELSE H.. 2023. 2. 26.
[Oracle / SQL] SQL INSERT, UPDATE, DELETE 테이블에 저장된 데이터에 변화가 생기는 추가, 삭제, 수정등의 쿼리는 실행 후 수정 내용을 확정할지 취소할지 결정지어 줘야한다. 변경 확정 : COMMIT 변경 취소 : ROLLBACK 단, 한번 COMMIT한 데이터는 ROLLBACK이 불가능하다. 먼저 연습할 MEMBER 테이블을 생성해주자. HTML 삽입 미리보기할 수 없는 소스 INSERT (데이터 삽입) --INSERT INTO 테이블명 (컬럼명들....) VALUES (값들....); HTML 삽입 미리보기할 수 없는 소스 데이터를 삽입 후 COMMIT을 해준다. 이후 다시 한번 VALUES(2,'KIMJAVA', 20); 을 넣는데, ROLLBACK;을 진행하였다. ROLLBACK을 하지 않았다면 MEM_NUM의 값이 2가 가진 데이터도 출력.. 2023. 2. 23.