Oracle ALTER TABLE MODIFY 열

요약 :이 자습서에서는 Oracle ALTER TABLE MODIFY 사용 방법을 배웁니다. column 문을 사용하여 기존 열의 정의를 변경합니다.

테이블의 열 정의를 변경하려면 다음과 같이 ALTER TABLE MODIFY 열 구문을 사용합니다.

p>

문은 간단합니다. 테이블의 열을 수정하려면 수행 할 열 이름, 테이블 이름 및 작업을 지정해야합니다.

Oracle에서는 여러 작업을 수행 할 수 있지만 주요 작업은 다음과 같습니다.

  • 열의 가시성 수정
  • null 값 허용 또는 허용하지 않음
  • 열의 크기를 줄이거 나 넓히기
  • 열 기본값
  • 가상 열의 표현식 수정

여러 열을 수정하려면 다음 구문을 사용합니다.

Oracle ALTER TABLE MODIFY 열 예

먼저 데모를 위해 accounts라는 새 테이블을 만듭니다.

둘째, accounts 테이블에 일부 행을 삽입합니다.

셋째, 다음 SELECT 문 :

A) 열의 가시성 수정 ity

Oracle Database 12c에서는 테이블 열을 보이지 않거나 보이는 것으로 정의 할 수 있습니다. 다음과 같은 쿼리에는 보이지 않는 열을 사용할 수 없습니다.

또는 다음과 같은 문 :

SQL * Plus에서.

그러나 쿼리에서 명시 적으로 지정하여 보이지 않는 열을 쿼리 할 수 있습니다.

By 기본적으로 테이블 열이 표시됩니다. 표를 만들 때 또는 ALTER TABLE MODIFY 열 문을 사용하여 보이지 않는 열을 정의 할 수 있습니다.

예를 들어 다음 문은 full_name 열이 표시되지 않음 :

다음 문은 full_name 열을 제외한 accounts 테이블의 모든 열에서 데이터를 반환합니다. :

full_name 열이 보이지 않기 때문입니다.

보이지 않는 열에서 보이는 열로 아래 문을 사용합니다.

B) Null 허용 또는 허용하지 않음 예제

다음 문 변경 Null이 아닌 값을 허용하는 email 열 :

그러나 Oracle은 다음 오류를 발생했습니다.

열을 nullable에서 n으로 변경했을 때 on-nullable을 사용하려면 기존 데이터가 새 제약 조건을 충족하는지 확인해야합니다.

이 문제를 해결하기 위해 먼저 email 열의 값을 업데이트합니다.

p>

LOWER() 함수는 문자열을 소문자로 변환합니다.

그런 다음 열 제약 조건 :

이제 예상대로 작동합니다.

C) 열 크기 확대 또는 축소 예제

전화 번호에 국제 코드를 추가한다고 가정 해 보겠습니다. 이를 수행하기 전에 다음 문을 사용하여 전화 열의 크기를 확장해야합니다.

이제 전화 번호를 업데이트 할 수 있습니다.

다음 설명은 업데이트를 확인합니다.

열 크기를 줄이려면 열의 모든 데이터가 새 크기에 맞는지 확인하세요.

예를 들어 phone 열의 크기를 12 자로 줄이려고합니다.

Oracle Database에서 다음 오류가 발생했습니다.

이 문제를 해결하려면 먼저 전화 번호에서 국제 코드를 제거해야합니다.

p>

REPLACE() 함수는 하위 문자열을 새 하위 문자열로 바꿉니다. 이 경우‘+ 1-‘을 빈 문자열로 바꿉니다.

그런 다음 phone 열의 크기를 줄이십시오.

D) 수정 가상 열

우리가 다음 형식의 전체 이름이라고 가정합니다.

이렇게하기 위해 다음과 같은 가상 열 full_name :

다음 문은 수정을 확인합니다.

E) 열 기본값 수정

status라는 새 열을 기본값으로 accounts 테이블에 추가하겠습니다. 1.

문을 실행하면 accounts 테이블의 모든 기존 행에 대해 상태 열의 값이 1로 설정됩니다.

기본값 o를 변경하려면 상태 열을 0으로 설정하려면 다음 문을 사용합니다.

accounts 테이블을 사용하여 status 열의 기본값이 0 또는 1인지 확인합니다.

데이터 쿼리 accounts 테이블 :

보시다시피 ID가 4 인 계정의 상태 열 값은 예상대로 0입니다.

이 자습서에서는 Oracle ALTER TABLE MODIFY 열 문을 사용하여 테이블의 기존 열 정의를 변경하는 방법을 배웠습니다.

  • 이 튜토리얼이 도움이 되었습니까?
  • 예 아니요

Write a Comment

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다