본문 바로가기

✨ DBMS39

[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.
[Oracle / SQL] 더미테이블(DUAL)과 유용한 숫자 함수 예제 2 숫자 관련 함수 반올림 HTML 삽입 미리보기할 수 없는 소스 ( ) 괄호 두번째 , 숫자는 소수점 몇번째 까지 나타내라~ 라는 의미이다. 올림, 버림 HTML 삽입 미리보기할 수 없는 소스 CEIL 은 올림, FLOOR은 내림 함수이다. 나머지구하기 HTML 삽입 미리보기할 수 없는 소스 형 변환 함수 ****(중요) 숫자 문자 날짜 HTML 삽입 미리보기할 수 없는 소스 조건에서 날짜를 비교할 때는 숫자는 안되고 문자는 가능하다. 쉬운 예로, 위와 같이 날짜 타입으로 형 변환 후 비교하는게 가장 좋은 방법이다. 숫자를 문자로, 문자를 숫자로 변환 HTML 삽입 미리보기할 수 없는 소스 왼쪽 정렬은 문자, 오른쪽 정렬은 숫자 문자를 날짜로, 날짜를 문자로 변환 1. 날짜를 문자로 변환 HTML 삽입 미.. 2023. 2. 21.
[Oracle / SQL] 더미테이블(DUAL)과 유용한 문자 함수 예제 더미테이블이란 ? - 쿼리문 연습을 위해 오라클에서 제공하는 테이블이다. 예제) HTML 삽입 미리보기할 수 없는 소스 DUAL에는 데이터가 하나도 없다. 즉, 가상의 공간이라고 생각하자. DUAL은 출력되는 데이터를 확인해보기 위한 수단으로써, 특정 테이블을 생성할 필요없이 DUAL 테이블을 이용해 함수 값을 리턴 받는다. 함수 대소문자 변환 UPPER(컬럼명) : 대문자로 변환 LOWER(컬럼명) : 소문자로 변환 INITCAP(컬럼명) : 단어의 첫글자만 대문자로 변환 HTML 삽입 미리보기할 수 없는 소스 문자의 길이 조회 HTML 삽입 미리보기할 수 없는 소스 LENGTH - 문자 길이 조회 LENGTHB - 바이트 수 조회 문자의 일부 추출 HTML 삽입 미리보기할 수 없는 소스 문자열 연결 .. 2023. 2. 21.
[Oracle / SQL] 쿼리문 합치기 UNION, UNION ALL 집합연산자 SELECT 쿼리를 여러개 동시 실행하려면 어떻게 해야할까? UNION을 쓰면된다. UNION : 여러 SELECT 쿼리 결과를 모두 보여준다. UNION HTML 삽입 미리보기할 수 없는 소스 UNION을 사용하면 두개의 쿼리를 연결시켜준다. 이때 앞에 있던 문장 ; (세미콜론) 은 지워준다. UNION : 쿼리 결과 중복 데이터는 한번만 조회 중복된 데이터도 모두 조회하려면 UNION ALL 사용한다. 조건이 같으면 결과는 한번만 출력한다. HTML 삽입 미리보기할 수 없는 소스 UNION ALL HTML 삽입 미리보기할 수 없는 소스 UNION ALL을 사용하면 중복되더라도 모든 데이터를 출력해줄 수 있다. 컬럼 개수 불일치 HTML 삽입 미리보기할 수 없는 소스 컬럼명 다르지만 자료형 .. 2023. 2. 21.
[Oracle / SQL] sqldeveloper 경고 - 일부 모듈을 설치하지 못했습니다. Oracle sql을 사용하다보면 위와 같은 표시창이 뜬다. 당황하지 말자. C:\Users\user\AppData 에 들어가 Roaming에서 SQL Developer을 삭제해준다. [아니오] 를 눌러주었다. 이렇게 다시 실행되는 것을 확인해 볼 수 있다. 세팅은 다시해주어야 한다.!!! 기본적인 부분들로만 바꾸어주었다. 반드시 인코딩 UTF-8 로 설정을 해주자. 이렇게 안해주면 출력될 때 한글이 깨진다. 쿼리를 실행했을 때 결과물을 보기 편하게 하기 위해서 행번호 표시를 체크해주었다. 2023. 2. 17.