STUDY/DB SQL

STUDY/DB SQL

[DB] PK 복합키와 UNIQUE의 차이점

PK 복합키와 UNIQUE의 차이점 구분 PK 복합키 UNIQUE 정의 테이블의 각 행을 고유하게 식별하는 데 사용되는 키 테이블의 각 행에 대해 중복되지 않는 값을 갖도록 제한하는 키 필수성 필수 선택적 Null 허용 여부 Null 허용 불가 Null 허용 가능 사용 목적 행의 고유 식별 중복 데이터 제거 필수성: PK 복합키는 필수이지만, UNIQUE는 선택적입니다. Null 허용 여부: PK 복합키는 Null을 허용하지 않지만, UNIQUE는 Null을 허용할 수 있습니다. 사용 목적: PK 복합키는 행의 고유 식별에 사용되지만, UNIQUE는 중복 데이터 제거에 사용됩니다. 예시를 들어 설명하겠습니다. 다음과 같은 테이블이 있다고 가정해 보겠습니다. CREATE TABLE table1 ( name..

STUDY/DB SQL

[Oracle] 테이블스페이스에서 확장할 수 없습니다

문제 해결 방법 참고 링크 : https://bangu4.tistory.com/152 [Oracle] ORA-01653 : TableSpace에서 확장 할 수 없습니다. 테이블 스페이스가 부족해서 데이터가 더이상 들어갈 수 없을때 발생하는 에러 일단, 테이블스페이스의 이름과 해당 데이터파일의 사용량을 조회해보자. 1. 테이블스페이스 조회 1) 해당 테이블 bangu4.tistory.com java.sql.SQLException: ORA-01653: ~ 테이블을 ~ (으)로 ~테이블스페이스에서 확장할 수 없습니다 문제 발생이유: 1. 서버디스크 용량과 상관없이TableSpace의 물리, 논리적인 공간문제인 경우 2. 데이터 파일이 꽉 차 있거나, 서버의 disk가 부족할 수 있다. (서버디스크 용량 문제)..

STUDY/DB SQL

[Oracle] COALESCE 함수 (NULL값 대체하기)

COALESCE 함수 COALESCE 함수는 SQL에서 사용되는 함수로, NULL 값을 다른 값으로 대체하는 역할을 합니다. COALESCE 함수는 다음과 같은 형식으로 사용됩니다. COALESCE(value1, value2, ..., valueN) COALESCE 함수는 value1, value2, ..., valueN 의 순서대로 값을 검사합니다. 첫 번째로 NULL이 아닌 값을 반환합니다. 모든 값이 NULL이면 NULL을 반환합니다. 자세한 예제는 아래와 같습니다. SELECT COALESCE('사과','바나나','포도'), --결과값 : 사과 COALESCE(NULL,'바나나','포도'), --결과값 : 바나나 COALESCE(NULL,NULL,'포도'), --결과값 : 포도 COALESCE(N..

STUDY/DB SQL

[Oracle] SQL Developer 엑셀로 INSERT 하기

SQL Developer 엑셀에 작성한 데이터 테이블에 INSERT 하기 1. 삽입 작업을 하려는 테이블의 컬럼명에 맞춰 데이터를 엑셀에 작성 2. SQL developer에서 삽입 작업을 할 테이블을 우클릭 > 데이터 임포트 클릭 3. 찾아보기 > 작성한 엑셀파일 선택 4. 다음 버튼을 눌러 삽입작업을 진행해줍니다. 5. 완료 버튼을 누르고 알림창을 확인 합니다. (변경 내용이 자동 커밋 됩니다.)

STUDY/DB SQL

[Oracle] 여러행 삽입(INSERT) 방법

여러행 삽입(INSERT) 방법 1. INSERT ALL 사용 INSERT ALL INTO [테이블] ( [COLUMN1], [COLUMN2], ...) VALUES ( [VALUE1], [VALUE2], ...) INTO [테이블] ( [COLUMN1], [COLUMN2], ...) VALUES ( [VALUE1], [VALUE2], ...) ... INTO [테이블] ( [COLUMN1], [COLUMN2], ...) VALUES ( [VALUE1], [VALUE2], ...) SELECT * FROM DUAL; 가장 하단의 SELECT * FROM DUAL이 없으면 오류가 발생합니다. - INSERT ALL 문에서 SELECT * FROM DUAL 문을 사용하면 각 삽입이 성공했는지 확인할 수 있습..

STUDY/DB SQL

[Oracle] 오라클 문자열 자르기 SUBSTR, SUBSTRB

오라클에서 문자열을 자를 때는 SUBSTR 함수를 사용한다. 문자열을 바이트 단위로 자를 때는 SUBSTRB 함수를 사용하면 된다. SUBSTR SUBSTR(문자열, 시작위치, 길이) SELECT SUBSTR('Hello World', 2) FROM DUAL; --문자열의 두 번째 위치("e")부터 문자열 끝까지 자른다. SELECT SUBSTR('Hello World', 2, 3) FROM DUAL; --문자열의 두 번째 위치("e")부터 세 자리("ell")까지 자른다. SUBSTR 뒤에서 부터 문자열 자르기 SELECT SUBSTR('hello world', -3) FROM DUAL; --문자열의 뒤에서 세 번째 위치("r")에서 문자열 끝까지 자른다. SELECT SUBSTR('hello worl..

STUDY/DB SQL

[Oracle] 문자(CHR) 아스키코드(ASCII) 변환 방법

아스키코드란 ? https://rebornbb.tistory.com/entry/IT-%EC%95%84%EC%8A%A4%ED%82%A4%EC%BD%94%EB%93%9C-%ED%91%9C-ASCII [IT] 아스키코드 표 (ASCII) 대문자 : 65 ~ 90 소문자 : 97 ~ 122 숫자 : 48 ~ 57 rebornbb.tistory.com 문자(CHR) 아스키코드(ASCII) 변환 방법 SELECT CHR(65) from dual; -- 'A' 출력 SELECT ASCII('A') from dual; -- 65 출력 CHR(65) 함수는 ASCII 코드 65에 해당하는 문자 'A'를 반환합니다. 반면 ASCII('A') 함수는 문자 'A'를 ASCII 코드로 변환하여 65를 반환합니다. 특정 컬럼의 ..

STUDY/DB SQL

[Oracle] trim, replace로 제거되지 않은 공백값 chr(49824) 제거하기

연관 포스팅 링크: 오라클 TRIM : https://rebornbb.tistory.com/entry/Oracle-TRIM%ED%95%A8%EC%88%98 오라클 REPLACE : https://rebornbb.tistory.com/entry/Oracle-replace%ED%95%A8%EC%88%98 오라클 CHR, ASCII : https://rebornbb.tistory.com/entry/Oracle-%EB%AC%B8%EC%9E%90CHR-%EC%95%84%EC%8A%A4%ED%82%A4%EC%BD%94%EB%93%9CASCII-%EB%B3%80%ED%99%98-%EB%B0%A9%EB%B2%95 분명 TRIM함수를 써서 원하는 데이터들의 공백을 지웠다고 생각했는데, 확인해보니 여전히 공백이 있었다. ..

STUDY/DB SQL

[Oracle] DELETE,UPDATE후 COMMIT한 데이터 복구 방법

오라클 DELETE나 UPDATE를 하고 COMMIT한 데이터 복구하기 TIMESTAMP SELECT [컬럼] FROM [테이블] AS OF TIMESTAMP 함수 TIMESTAMP를 통한 복구 쿼리입니다. 시간으로 조회 -- 30초전 데이터 조회 SELECT * FROM 테이블 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '30' SECOND) WHERE 컬럼 = 'A'; -- 조건문 사용 가능 -- 10분전 데이터 조회 SELECT * FROM 테이블 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '10' MINUTE) -- 1시간전 데이터 조회 SELECT * FROM 테이블 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '1' HO..

STUDY/DB SQL

[Oracle] 오라클 문자열 치환 - REPLACE 와 REGEXP_REPLACE

오라클 REPLACE 함수 Oracle의 replace 함수는 문자열에서 특정 문자를 다른 문자로 바꾸는 함수입니다. replace 함수의 구문은 다음과 같습니다. REPLACE(컬럼명, '찾을문자', '변환문자') REPLACE 사용방법 -- 테이블에서 특정 문자열 대체하기 UPDATE 테이블명 SET 컬럼명 = REPLACE(컬럼명, '찾을문자열', '대체할문자열') WHERE 조건; -- 예시: UPDATE employees SET first_name = REPLACE(first_name, 'John', 'Robert') WHERE last_name = 'Smith'; -- SELECT 문에서 특정 문자열 대체하기 SELECT REPLACE(컬럼명, '찾을문자열', '대체할문자열') FROM 테이블..

STUDY/DB SQL

[Oracle] 프로시저 설명과 프로시저와 함수의 차이점

프로시저(Procedure)란? 특정한 로직을 처리하기만 하고 결과 값을 반환하지 않는 서브 프로그램 데이터베이스에 대한 일련의 작업을 정리한 절차를 관계형 데이터베이스 관리 시스템이 저장한 것 테이블에서 데이터를 추출, 조작하고 결과를 다른 테이블에 다시 저장하거나 갱신하는 처리를 할 때 프로시저를 사용한다. 프로시저와 함수 차이점 함수는 반드시 값을 반환해야 하지만 프로시저는 반환 값을 가질 수 없습니다. 함수는 SQL 쿼리에서 사용할 수 있지만 프로시저는 사용할 수 없습니다. 함수는 일반적으로 데이터를 처리하는 데 사용되지만 프로시저는 일반적으로 데이터베이스 객체를 조작하는 데 사용됩니다. 함수와 프로시저의 차이점 특성 함수 프로시저 반환 값 필수 선택사항 SQL 쿼리 사용 가능 사용 불가 데이터 ..

STUDY/DB SQL

[Oracle] ORA-01439: 데이터 유형을 변경할 열은 비어 있어야 합니다 해결하기

오라클에서 컬럼 데이터타입 변경하기 테이블의 컬럼에 데이터가 있는 상태서 컬럼의 타입을 변경할 일이 생겼다. 데이터가 있는 상태에서 컬럼의 타입을 그냥 변경하면 아래와 같은 에러가 발생한다. ORA-01439: 데이터 유형을 변경할 열은 비어 있어야 합니다 이 경우 열에 있는 데이터를 삭제하고 수정해야 한다는 것인데, 데이터를 삭제하지 않고 컬럼의 타입을 바꿔야 할 상황이 있어 여러 방법이 있겠지만, 나는 아래와 같은 방법으로 해결했다. --1. 테이블에 새로운컬럼추가 ALTER TABLE tablename ADD newcolumn NUMBER; --2. 기존컬럼데이터를 형변환해서 새로운컬럼에 데이터저장 UPDATE tablename SET newcolumn = TO_NUMBER(oldcolumn); -..

ReCode.B
'STUDY/DB SQL' 카테고리의 글 목록 (2 Page)