본문 바로가기

DBMS27

[Oracle] 중복 데이터 찾기 / 중복 데이터 개수 찾기 GROUP BY / HAVING / COUNT 중복 데이터 건수 찾기 아래 쿼리를 통해 두가지를 할 수 있다.1. 중복되고 있는 데이터 조회2. 중복된 데이터의 개수 조회(* 활용시 부가적 기능 : 중복 제거) 중복체크를 원하는 컬럼을 그룹핑해서, 그룹핑 조건(HAVING 절) 에 COUNT' 로 '1건 이상(초과)'을 조회하면 중복 되고 있는 데이터를 알 수 있다. 해당 데이터가 몇건 중복되는지 확인하려면 COUNT(COLUM_NAME) 로 찾을 수 있다.  Tip* HAVING 절에 그룹핑한 조건의 raw가 1건 초과인 경우를 조회하고 있기 때문에, 조회된 결과는 모두 중복데이터이며 COUNT를 통해 몇건의 중복이 발생하는지 확인할 수 있다.SELECT 컬럼1, 컬럼2, ... , 컬럼n , COUNT(컬럼1) -- 중복 갯수 FROM .. 2021. 3. 5.
[Oracle] 조회한 가상 컬럼의 연산 조회한 컬럼끼리 연산한 결과를 가상 컬럼으로 사용할 수 있다. ( = 테이블에 저장되는 것이 아니라는 의미) SELECT A.POINT + B.POINT AS ALLPOINT FROM STUD_TABLE; 컬럼끼리의 연산은 WHERE, ORDER BY 절에서도 가능하다. 단! SQL은 내부적으로 WHERE 구문을 먼저 처리하고 SELECT 하기 때문에 SELECT 절에서 지정한 Alias를 WHERE절에서는 사용할 수 없다. 해결 => SELECT절이 아닌 WHERE 절에서 컬럼끼리 연산해서 사용하면 된다. 에러 구문 SELECT A.POINT + B.POINT AS ALLPOINT FROM STUD_TABLE WHERE ALLPOINT != 1 ; -- ORA-00904: "ALLPOINT": 부적합한.. 2021. 2. 10.
[Oracle] UNION, UNION ALL, 집합 연산 * 집합 연산 : 레코드끼리 더하거나 빼는 레코드 사칙연산 * 집합 연산자 : UNION(합), INTERSECT(교차) EXCEPT(차) - 집합 연산자는 중복 행을 제외한다. - 집합 연산자에서 중복 행을 포함하려면 ALL 옵션을 사용한다. 예제 테이블 id name 0001 티셔츠 0002 블라우스 0003 도마 0004 식칼 id name 0001 티셔츠 0002 블라우스 0005 장갑 구문 SELECT id, name FROM goods_1 UNION SELECT id, name FROM goods_2 결과 id name 0001 티셔츠 0002 블라우스 0003 도마 0004 식칼 0005 장갑 결과는 두개의 테이블에 포함되어 있는 레코드가 모두 합쳐진(UNION)형태가 된다. =합집합 모양 .. 2021. 1. 13.
[Oracle] INSERT / SELECT 결과 INSERT / INSERT INTO SELECT INSERT : 테이블에 데이터(행) 등록 원칙적으로 INSERT문은 1회 실행에 1회 삽입 처리 구문 INSERT INTO 테이블명 (열1,열2, 열3 .... ) VALUES (값1, 값2, 값3 .... ) ; 구문사용시 주의점 - 열 리스트와 값 리스트의 수, 타입이 일치해야 한다. (예시 : date타입에 String형을 넣으려 하거나, date형과 String형을 삽입할 수 없습니다. 'ORA-01861 리터럴이 형식 문자열과 일치하지 않음' 에러가 발생함) - 테이블의 모든 열에대해 INSERT 하는 경우, 열리스트는 생략 가능 하다. - 값에 대한 입력이 문자형이면 ' ' (작은 따옴표) 사용 - INSERT 문에서 열명을 생략하면 기본값이 할당 된다. (기본값 설정 안되어 있을시 NULL.. 2020. 12. 18.
[Oracle] Create / Alter / Drop CREATE : 테이블 생성 구문 CREATE TABLE 테이블명 ; * SELECT한 내용으로 테이블을 생성하고 싶을때 - 예제 ) member 테이블의 모든 데이터를 백업하는 테이블을 만들고 싶다. - 방법 ) SELECT 구문에 대한 데이터로 테이블을 생성한다고 이해하면 된다. - 응용 ) 지금은 SELECT * 이지만, 조건을 주어서 세부정보로 추려내어 추가할 수 있음. CREATE TABLE 테이블명 AS SELECT * FROM MEMBER ; 2020. 12. 18.
[Oracle] 자동 COMMIT, ROLLBACK 처리 오라클에서 테이블과 관련된 (Create , Alter , Delete) 는 자동 commit 됨. 백업을 위해 create문을 실행하는데, 실행도중 insert 같은 작업이 CAD문을 만날경우 insert 된 것이 함께 저장되기 때문에 백업을 미리해야 할 경우 (백업하는 테이블에는 수정된 정보가 담기면 안되겠죠? 원본 데이터가 있어야하는게 백업 테이블 입니당..) 주의해야함 * insert update delete 작업 중 문제가 발생하면, 바로 해결할 수 있으면 상관 없지만 그렇지 않을시 rollback; 으로 취소해준다. CAD는 자동 커밋되기때문에 취소 되지 않고 이전까지의 INSERT UPDATE DELETE문은 취소되니까 문제 해결 후 INSERT UPDATE DELETE문 부터 다시 실행해주.. 2020. 12. 9.