>  기사  >  데이터 베이스  >  오라클에서 테이블 구조를 수정하는 방법

오라클에서 테이블 구조를 수정하는 방법

青灯夜游
青灯夜游원래의
2022-01-13 11:15:4510382검색

Oracle에서는 "ALTER TABLE" 문을 사용하여 테이블 구조를 수정할 수 있습니다. 이 문은 열 추가 또는 삭제, 원래 열 유형 변경, 열 또는 테이블 이름 바꾸기 등을 통해 원본 테이블의 구조를 변경할 수 있습니다. 구문 "ALTER TABLE 테이블 이름 [옵션 수정]". ALTER TABLE 테이블 이름 [옵션 수정]

오라클에서 테이블 구조를 수정하는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, Oracle 버전 11g, Dell G3 컴퓨터.

Oracle에서는 "ALTER TABLE" 문을 사용하여 테이블 구조를 수정할 수 있습니다. ALTER TABLE”语句来修改表结构。

ALTER TABLE 语句可以改变原有表的结构,例如增加或删减列、更改原有列类型、重新命名列或表等。

ALTER TABLE 语句的语法:

ALTER TABLE 表名 [修改选项]

在上面的语句中,

  • 首先,指定要修改的表名称。

  • 其次,指出想在表名称后执行的修改操作。

ALTER TABLE语句可用来:

  • 添加一个或多个列
  • 修改列定义
  • 删除一列或多列
  • 重命名列
  • 重命名表

下面来看看一些例子来了解每个操作的工作原理。

Oracle ALTER TABLE示例

我们将使用在上一个教程中创建的persons表进行演示。

-- 12c语法
CREATE TABLE persons(
    person_id NUMBER GENERATED BY DEFAULT AS IDENTITY,
    first_name VARCHAR2(50) NOT NULL,
    last_name VARCHAR2(50) NOT NULL,
    PRIMARY KEY(person_id)
);

1. 添加列的例子

要将新列添加到表中,请使用以下语法:

ALTER TABLE table_name
ADD column_name type constraint;

例如,以下语句将一个名为birthdate的新列添加到persons表中:

ALTER TABLE persons 
ADD birthdate DATE NOT NULL;

如果查看persons表格,会看到birthdate日期列被添加到列列表的末尾:

DESC persons; 

Name       Null     Type         
---------- -------- ------------ 
PERSON_ID  NOT NULL NUMBER       
FIRST_NAME NOT NULL VARCHAR2(50) 
LAST_NAME  NOT NULL VARCHAR2(50) 
BIRTHDATE  NOT NULL DATE

要同时向表中添加多列,请按如下所示将新列置于括号内:

ALTER TABLE table_name
ADD (
    column_name type constraint,
    column_name type constraint,
    ...
);

看下面的例子:

ALTER TABLE persons 
ADD (
    phone VARCHAR(20),
    email VARCHAR(100)
);

在这个例子中,语句在users表中添加了两个名为phoneemail的新列。

DESC persons

Name       Null     Type          
---------- -------- ------------- 
PERSON_ID  NOT NULL NUMBER        
FIRST_NAME NOT NULL VARCHAR2(50)  
LAST_NAME  NOT NULL VARCHAR2(50)  
BIRTHDATE  NOT NULL DATE          
PHONE               VARCHAR2(20)  
EMAIL               VARCHAR2(100)

2. 修改列的属性的示例

要修改列的属性,请使用以下语法:

ALTER TABLE table_name
  MODIFY column_name type constraint;

例如,下面的语句将birthdate列更改为一个空列:

ALTER TABLE persons MODIFY birthdate DATE NULL;

我们再次验证persons表结构:

DESC persons

Name       Null     Type          
---------- -------- ------------- 
PERSON_ID  NOT NULL NUMBER        
FIRST_NAME NOT NULL VARCHAR2(50)  
LAST_NAME  NOT NULL VARCHAR2(50)  
BIRTHDATE           DATE          
PHONE               VARCHAR2(20)  
EMAIL               VARCHAR2(100)

正如所看到的,birthdate日期变得无能为力。

要修改多个列,请使用以下语法:

 ALTER TABLE table_name
  MODIFY ( column_1 type constraint,
          column_1 type constraint,
         ...);

例如,以下语句将phoneemail列更改为NOT NULL列,并将email列的长度扩展为255个字符:

ALTER TABLE persons MODIFY(
    phone VARCHAR2(20) NOT NULL,
    email VARCHAR2(255) NOT NULL
);

再次验证persons表结构:

DESC persons;

Name       Null     Type          
---------- -------- ------------- 
PERSON_ID  NOT NULL NUMBER        
FIRST_NAME NOT NULL VARCHAR2(50)  
LAST_NAME  NOT NULL VARCHAR2(50)  
BIRTHDATE           DATE          
PHONE      NOT NULL VARCHAR2(20)  
EMAIL      NOT NULL VARCHAR2(255)

3. 删除现有的列的示例

要从表中删除现有的列,请使用以下语法:

ALTER TABLE table_name
DROP COLUMN column_name;

该语句从表结构中删除列,并删除存储在该列中的数据。以下示例从persons表中删除birthdate日期类型的列:

ALTER TABLE persons
DROP
  COLUMN birthdate;

再次查看persons表结构,就会发现birthdate列已被删除:

DESC persons;

Name       Null     Type          
---------- -------- ------------- 
PERSON_ID  NOT NULL NUMBER        
FIRST_NAME NOT NULL VARCHAR2(50)  
LAST_NAME  NOT NULL VARCHAR2(50)  
PHONE      NOT NULL VARCHAR2(20)  
EMAIL      NOT NULL VARCHAR2(255)

要同时删除多个列,请使用以下语法:

ALTER TABLE table_name 
DROP (column_1,column_2,...);

例如,以下语句从个人表中删除phoneemail列:

ALTER TABLE persons
DROP
  ( email, phone );

我们再来看一下persons表:

DESC persons;

Name       Null     Type         
---------- -------- ------------ 
PERSON_ID  NOT NULL NUMBER       
FIRST_NAME NOT NULL VARCHAR2(50) 
LAST_NAME  NOT NULL VARCHAR2(50)

emailphone列已按预期删除。

4. 重命名列的示例

从版本9i开始,Oracle添加了一个用于重命名列的子句,如下所示:

ALTER TABLE table_name
RENAME COLUMN column_name TO new_name;

例如,以下语句将first_name列重命名为forename列:

ALTER TABLE persons 
RENAME COLUMN first_name TO forename;

以下语句检查结果:

DESC persons;

Name      Null     Type         
--------- -------- ------------ 
PERSON_ID NOT NULL NUMBER       
FORENAME  NOT NULL VARCHAR2(50) 
LAST_NAME NOT NULL VARCHAR2(50)

5. 重命名表的例子

要将一个表重命名为一个新的name的表名,使用下面的语法:

ALTER TABLE table_name
RENAME TO new_table_name;

例如,下面的语句将users表重命名为people

ALTER TABLE 문은 열 추가 또는 삭제, 원래 열 유형 변경, 열 또는 테이블 이름 바꾸기 등 원본 테이블의 구조를 변경할 수 있습니다.

ALTER TABLE 문 구문:

ALTER TABLE persons RENAME TO people;

위 문에서 🎜
  • 🎜먼저 수정할 테이블의 이름을 지정합니다. 🎜
  • 🎜둘째, 테이블 이름 뒤에 수행하려는 수정 작업을 지정합니다. 🎜
🎜ALTER TABLE 문을 사용하여 다음을 수행할 수 있습니다. 🎜
  • 하나 이상의 열 추가
  • 열 정의 수정
  • 하나 이상의 열 삭제
  • 열 이름 바꾸기
  • 테이블 이름 바꾸기
🎜각 작업의 원리를 이해하기 위해 몇 가지 예를 살펴보겠습니다. 🎜

Oracle ALTER TABLE 예

🎜이전 튜토리얼에서 사용할 것입니다 NET에서 생성된 persons 테이블을 사용한 데모입니다. 🎜rrreee

🎜1. 열 추가 예

🎜테이블에 새 열을 추가하려면 다음을 사용하세요. 구문 :🎜rrreee🎜예를 들어 다음 문은 persons 테이블에 birthdate라는 새 열을 추가합니다. 🎜rrreee🎜persons를 보는 경우 > 테이블을 사용하면 열 목록 끝에 생년월일 날짜 열이 추가된 것을 볼 수 있습니다. 🎜rrreee🎜 테이블에 동시에 여러 열을 추가하려면 다음과 같이 새 열을 대괄호로 묶습니다. : 🎜rrreee🎜 아래 예를 살펴보세요. 🎜rrreee🎜 이 예에서 명령문은 usersphoneemail이라는 두 개의 새 항목을 추가합니다. > 테이블 목록. 🎜rrreee

🎜2. 열 속성 수정 예 Strong>

🎜열의 속성을 수정하려면 다음 구문을 사용하세요. 🎜rrreee🎜예를 들어 다음 문은 birthdate 열을 빈 열로 변경합니다. 🎜rrreee🎜다시 확인합니다. persons 테이블 구조: 🎜rrreee🎜보시다시피 생년월일 날짜는 무력해집니다. 🎜🎜여러 열을 수정하려면 다음 구문을 사용하세요. 🎜rrreee🎜예를 들어 다음 문은 phoneemail 열을 NOT NULL로 변경합니다. > 열을 추가하고 email 열의 길이를 255자로 확장합니다. 🎜rrreee🎜 persons 테이블 구조를 다시 확인합니다. 🎜rrreee

🎜3. 기존 열 삭제 예

🎜테이블에서 기존 열을 삭제하려면 다음 구문을 사용하세요. :🎜rrreee🎜이 문은 테이블 구조에서 열을 제거하고 해당 열에 저장된 데이터를 삭제합니다. 다음 예에서는 persons 테이블에서 birthdate 날짜 유형 열을 삭제합니다. 🎜rrreee🎜persons 테이블 구조를 다시 보면 생일열이 삭제되었습니다: 🎜rrreee🎜여러 열을 동시에 삭제하려면 다음 구문을 사용하십시오. 🎜rrreee🎜예를 들어 다음 문은 phoneemail열: 🎜rrreee🎜 <code>persons 테이블을 다시 살펴보겠습니다: 🎜rrreee🎜 emailphone code> 열이 예상대로 삭제되었습니다. 🎜<h4 id="h4-4-oracle-alter-table-rename-">4. 열 이름 바꾸기의 예</h4>🎜 버전 9i부터 Oracle은 아래와 같이 열 이름 바꾸기에 대한 절을 추가했습니다. 🎜rrreee🎜예를 들어 다음 문은 <code>first_name 열의 이름을 forename 열로 바꿉니다. 🎜rrreee🎜다음 문은 결과를 확인합니다. 🎜rrreee

🎜5. 테이블 이름 바꾸기의 예

🎜테이블 이름을 새 name 테이블 이름으로 바꾸려면 다음을 사용합니다. 다음 구문: 🎜rrreee🎜예를 들어, 다음 문은 users 테이블의 이름을 people 테이블로 바꿉니다. 🎜rrreee🎜권장 튜토리얼: "🎜Oracle Tutorial🎜" 🎜

위 내용은 오라클에서 테이블 구조를 수정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.