Oracle에서는 "ALTER TABLE MODIFY" 문을 사용하여 필드를 수정할 수 있습니다. 구문은 "수행할 ALTER TABLE 테이블 이름 MODIFY 필드 이름 작업"입니다. 열의 기본값, 가상 열의 표현 수정 등
이 튜토리얼의 운영 환경: Windows 7 시스템, Oracle 11g 버전, Dell G3 컴퓨터.
Oracle 데이터베이스에서 필드를 수정하는 방법
Oracle에서는 "ALTER TABLE MODIFY
" 문을 사용하여 필드를 수정하고 기존 필드의 정의를 변경할 수 있습니다. ALTER TABLE MODIFY
”语句来修改字段,更改现有字段的定义。
要更改表中列的定义,请按如下所示使用ALTER TABLE MODIFY
列语法:
ALTER TABLE 表名 MODIFY 字段名 需要执行的操作;
语句很直接。要修改表的列,需要指定要执行的列名,表名和操作。
Oracle允许执行多种操作,但以下是主要常用的操作:
修改列的可见性
允许或不允许NULL值
缩短或扩大列的大小
更改列的默认值
修改虚拟列的表达式
要修改多个列,请使用以下语法:
ALTER TABLE 表名 MODIFY ( 字段名1 action, 字段名2 action, ... );
Oracle ALTER TABLE MODIFY列示例
首先,为演示创建一个名为accounts
的新表:
-- 12c语法 CREATE TABLE accounts ( account_id NUMBER GENERATED BY DEFAULT AS IDENTITY, first_name VARCHAR2(25) NOT NULL, last_name VARCHAR2(25) NOT NULL, email VARCHAR2(100), phone VARCHAR2(12) , full_name VARCHAR2(51) GENERATED ALWAYS AS( first_name || ' ' || last_name ), PRIMARY KEY(account_id) );
其次,向accounts
表中插入一些行:
INSERT INTO accounts(first_name,last_name,phone) VALUES('Trinity', 'Knox', '410-555-0197'); INSERT INTO accounts(first_name,last_name,phone) VALUES('Mellissa', 'Porter', '410-555-0198'); INSERT INTO accounts(first_name,last_name,phone) VALUES('Leeanna', 'Bowman', '410-555-0199');
第三,通过使用下面的SELECT
语句验证插入操作:
SELECT * FROM accounts;
执行上面查询语句,得到以下结果 -
1. 修改列的可见性
在Oracle 12c中,可以将表列定义为不可见或可见。不可见列不可用于查询,如:
SELECT * FROM table_name;
或者,
DESCRIBE table_name;
都是查到不到不可见列的。
但是,可以通过在查询中显式指定不可见列来查询:
SELECT invisible_column_1, invisible_column_2 FROM table_name;
默认情况下,表列是可见的。可以在创建表或使用ALTER TABLE MODIFY
列语句时定义不可见列。
例如,以下语句使full_name
列不可见:
ALTER TABLE accounts MODIFY full_name INVISIBLE;
执行再次查询表中数据,得到以下结果 -
以下语句返回accounts
表除了full_name
列以外的所有列中返回数据:
SELECT * FROM accounts;
这是因为full_name
列是不可见的。要将列从不可见变为可见,请使用以下语句:
ALTER TABLE accounts MODIFY full_name VISIBLE;
2. 允许或不允许null示例
以下语句将email
列更改为接受非空(not null
)值:
ALTER TABLE accounts MODIFY email VARCHAR2( 100 ) NOT NULL;
但是,Oracle发出以下错误:
SQL Error: ORA-02296: cannot enable (OT.) - null values found
因为当将列从可为null
改为not null
时,必须确保现有数据符合新约束(也就是说,如果原来数据中NULL
是不行的)。
为了解决这个问题,首先更新email
列的值:
UPDATE accounts SET email = LOWER(first_name || '.' || last_name || '@oraok.com') ;
请注意,LOWER()函数将字符串转换为小写字母。
然后改变email
列的约束:
ALTER TABLE accounts MODIFY email VARCHAR2( 100 ) NOT NULL;
现在,它应该就会按预期那样工作了。
3. 扩大或缩短列示例的大小
假设要添加国际代码到phone
列上,比如:前缀加上+86
。 在修改列的值之前,必须使用以下语句扩大phone
列的大小:
ALTER TABLE accounts MODIFY phone VARCHAR2( 24 );
现在,我们可以更新电话号码的数据了:
UPDATE accounts SET phone = '+86 ' || phone;
以下语句验证更新:
SELECT * FROM accounts;
执行上面查询语句结果中,应该可以看到原电话号码前缀有加上+86
的国际区号了。
要缩短列的大小,请确保列中的所有数据都符合新的大小。
例如,尝试将phone
列的大小缩减到12
个字符:
ALTER TABLE accounts MODIFY phone VARCHAR2( 12 );
Oracle数据库发出以下错误:
SQL Error: ORA-01441: cannot decrease column length because some value is too big
要解决这个问题,首先,应该从电话号码中删除国际代码(即:+86
):
UPDATE accounts SET phone = REPLACE( phone, '+86 ', '' );
REPLACE()函数用一个新的子字符串替换一个子字符串。在这种情况下,它将用空字符串替换+86
。
然后缩短phone
列的大小:
ALTER TABLE accounts MODIFY phone VARCHAR2( 12 );
4. 修改虚拟列
假设按以下两列的格式填写全名:
last_name, first_name
为此,可以更改虚拟列full_name
ALTER TABLE MODIFY
열 구문을 사용하세요. 🎜ALTER TABLE accounts MODIFY full_name VARCHAR2(52) GENERATED ALWAYS AS (last_name || ', ' || first_name);🎜문은 간단합니다. 테이블의 컬럼을 수정하려면 컬럼 이름, 테이블 이름, 수행할 작업을 지정해야 합니다. 🎜🎜Oracle을 사용하면 다양한 작업을 수행할 수 있지만 일반적으로 사용되는 주요 작업은 다음과 같습니다. 🎜
- 🎜열 표시 여부 수정🎜
- 🎜NULL 값을 허용하거나 허용하지 않습니다🎜
- 🎜열 크기를 줄이거나 확장합니다🎜
- 🎜열의 기본값 변경🎜
- 🎜가상 열 수식의 표현식 수정 🎜
SELECT * FROM accounts;
Oracle ALTER TABLE MODIFY 열 예 🎜🎜🎜 먼저 🎜 데모용 accounts
라는 새 테이블을 만듭니다. 🎜ALTER TABLE accounts
ADD status NUMBER( 1, 0 ) DEFAULT 1 NOT NULL ;
🎜🎜두 번째 🎜, accounts
에 일부 행을 삽입합니다. 테이블: 🎜ALTER TABLE accounts
MODIFY status DEFAULT 0;
🎜🎜Third 🎜 , 다음 SELECT
문을 사용하여 삽입 작업을 확인합니다. 🎜INSERT INTO accounts ( first_name, last_name, email, phone )
VALUES ( 'Julia',
'Madden',
'julia.madden@oraok.com',
'410-555-0200' );
🎜위 쿼리 문을 실행하고 다음 결과를 얻습니다.🎜🎜
🎜🎜🎜1. 열 가시성 수정 🎜🎜🎜Oracle 12c에서는 테이블 열을 표시 또는 표시로 정의할 수 있습니다. 🎜SELECT
*
FROM
accounts;
🎜 또는 🎜rrreee🎜와 같은 쿼리에는 보이지 않는 열을 사용할 수 없습니다. 🎜🎜그러나 쿼리에 명시적으로 지정하여 보이지 않는 열을 쿼리할 수 있습니다. 🎜rrreee🎜테이블 열은 기본적으로 표시됩니다. 보이지 않는 열은 테이블을 생성하거나 ALTER TABLE MODIFY
열 문을 사용할 때 정의할 수 있습니다. 🎜🎜예를 들어 다음 문은 full_name
열을 보이지 않게 만듭니다. 🎜rrreee🎜테이블의 데이터 쿼리를 다시 실행하고 다음 결과를 얻습니다.🎜🎜
🎜🎜다음 문은 계정
을 반환합니다. full_name 열을 제외한 모든 열의 데이터를 반환합니다. 🎜rrreee🎜 이는 <code>full_name
열이 표시되지 않기 때문입니다. 열을 표시할 수 있는 상태로 변경하려면 다음 문을 사용하세요: 🎜rrreee🎜🎜2. null 예를 허용하거나 허용하지 않음🎜🎜🎜다음 문은 email
열이 null이 아닌(null이 아님
) 값을 허용하도록 변경되었습니다: 🎜rrreee🎜 그러나 Oracle은 다음 오류를 발생시킵니다: 🎜rrreee🎜 열을 사용 가능에서 변경할 때 to null
을 not null
로 변경할 때 기존 데이터가 새 제약 조건을 준수하는지 확인해야 합니다(즉, NULL
이 허용되지 않는 경우). 원본 데이터에서). 🎜🎜이 문제를 해결하려면 먼저 email
열의 값을 업데이트하세요. 🎜rrreee🎜LOWER() 함수는 문자열을 소문자로 변환합니다. 🎜🎜그런 다음 email
열의 제약 조건을 변경합니다. 🎜rrreee🎜이제 예상대로 작동합니다. 🎜🎜🎜3. 열의 크기를 늘리거나 줄이세요🎜🎜🎜휴대폰
에 국제 코드를 추가하고 싶다고 가정해 보세요. > 열(예: +86
접두사) 열 값을 수정하기 전에 다음 문을 사용하여 phone
열의 크기를 확장해야 합니다. 🎜rrreee🎜이제 전화번호 데이터를 업데이트할 수 있습니다. 🎜rrreee🎜다음 문은 업데이트: 🎜rrreee🎜Execute 위 쿼리문의 결과에서 원래 전화번호에는 +86
접두사가 붙은 국제 지역 코드가 있음을 확인할 수 있습니다. 🎜🎜
🎜🎜To 열의 크기를 줄여 열의 모든 데이터가 새 크기에 맞는지 확인합니다. 🎜🎜예를 들어 phone
열의 크기를 12
자로 줄여보세요. 🎜rrreee🎜Oracle 데이터베이스에서 다음 오류가 발생합니다. 🎜rrreee🎜이 문제를 해결하려면 먼저 , 전화번호에서 국제 코드를 제거해야 합니다(예: +86
). 🎜rrreee🎜REPLACE() 함수는 하위 문자열을 새 하위 문자열로 바꿉니다. 이 경우 +86
는 빈 문자열로 대체됩니다. 🎜🎜그런 다음 phone
열의 크기를 줄이세요: 🎜rrreee🎜🎜4. 가상 열을 수정하세요🎜🎜🎜 다음 두 열을 누르세요. 전체 이름을 🎜rrreee🎜 형식으로 입력하세요. 이렇게 하려면 가상 열 full_name
의 표현을 다음과 같이 변경할 수 있습니다. 🎜ALTER TABLE accounts
MODIFY full_name VARCHAR2(52)
GENERATED ALWAYS AS (last_name || ', ' || first_name);
以下语句验证修改:
SELECT * FROM accounts;
执行上面查询语句,可以看到以下结果
5. 修改列的默认值
添加一个名为status
的新列,默认值为1
到accounts
表中。参考以下语句 -
ALTER TABLE accounts ADD status NUMBER( 1, 0 ) DEFAULT 1 NOT NULL ;
当执行了该语句,就会将accounts
表中的所有现有行的status
列中的值设置为1
。
要将status
列的默认值更改为0
,请使用以下语句:
ALTER TABLE accounts MODIFY status DEFAULT 0;
可以在accounts
表中添加一个新行来检查status
列的默认值是0
还是1
:
INSERT INTO accounts ( first_name, last_name, email, phone ) VALUES ( 'Julia', 'Madden', 'julia.madden@oraok.com', '410-555-0200' );
现在,查询accounts
表中的数据:
SELECT * FROM accounts;
执行上面查询语句,应该看类似下面的结果
正如所看到的那样,ID
为4
的账户的status
列的值是0
。
推荐教程:《Oracle教程》
위 내용은 Oracle 데이터베이스의 필드를 수정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Oracle 데이터베이스 마이그레이션은 주로 ExpDP 및 IMPDP 도구에 의존합니다. 1. ExpDP는 데이터를 내보내는 데 사용됩니다. 구문은 간결하지만 풍부한 옵션이 있습니다. 수출 실패를 피하기 위해 디렉토리 권한 및 파일 크기에주의하십시오. 2. IMPDP는 데이터를 가져 오는 데 사용됩니다. 대상 데이터베이스 공간이 충분하고 문자 세트가 일관되며 동일한 이름을 가진 객체가 없습니다. remap_schema 매개 변수는 충돌을 해결하는 데 사용될 수 있습니다. 3. 병렬, 쿼리, 네트워크_LINK, 제외 및 기타 매개 변수를 사용하여 마이그레이션 프로세스를 최적화 할 수 있습니다. 4. 대규모 데이터베이스 마이그레이션은 효율성을 향상시키고 위험을 줄이기 위해 네트워크 환경, 데이터베이스 리소스 활용 및 배치 마이그레이션 전략에주의를 기울여야합니다. 이러한 단계와 기술을 습득 하여만 할 수 있습니다

Oracle에 원격으로 연결하려면 리스너, 서비스 이름 및 네트워크 구성이 필요합니다. 1. 클라이언트 요청은 리스너를 통해 데이터베이스 인스턴스로 전달됩니다. 2. 인스턴스는 신원을 확인하고 세션을 설정합니다. 3. 클라이언트가 서버에 액세스 할 수 있고 구성이 일관되도록 사용자 이름/비밀번호, 호스트 이름, 포트 번호 및 서비스 이름을 지정해야합니다. 연결이 실패하면 네트워크 연결, 방화벽, 리스너 및 사용자 이름 및 비밀번호를 확인하십시오. ORA-12154 오류가 발생하면 리스너 및 네트워크 구성을 확인하십시오. 효율적인 연결에는 연결 풀링, SQL 문의 최적화 및 적절한 네트워크 환경 선택이 필요합니다.

원격 Oracle 데이터베이스에 연결하는 주요 방법은 SQL*Plus 도구를 사용하는 것입니다. 연결 문자열 형식은 다음과 같습니다. 1. username/password@// host_address : port/service_name; 또는 더 편리하게, 2. tnsnames.ora 파일을 구성하여 연결 문자열을 단순화하여 사용자 이름/password@orcl을 연결하십시오. 연결이 실패하면 다음을 확인하십시오. 1. 리스너 상태 (LSNRCTL 상태 명령 사용); 2. 네트워크 연결 및 방화벽; 3. 사용자 이름, 비밀번호 및 권한; 4. 서비스 이름이 올바른지 여부 (쿼리 v $

Oracle 백업 및 복구의 핵심 목적은 데이터가 손실되거나 손상 될 때 데이터베이스를 일관된 상태로 빠르게 복원하는 것입니다. 1. 백업 단계 : RMAN 또는 기타 도구를 통해 데이터베이스 파일을 백업 미디어에 복사하십시오. 2. 복구 단계 : 데이터베이스가 실패하면 먼저 백업 데이터를 복원 한 다음 Redo Log 파일을 적용하여 사전 입자 상태로 복원하십시오.

Oraclerac은 멀티 노드 공유 데이터베이스 스토리지를 통해 고 가용성 및 확장 성을 달성합니다. 작업 원칙에는 시스템의 효율적인 작동 및 데이터 일관성을 보장하기 위해로드 밸런싱, 장애 조치 및 동적 노드 확장이 포함됩니다.

OCI에서 Oracle 데이터베이스 배포 및 관리 다음 단계를 통해 다음 단계를 통해 달성 할 수 있습니다. 1. 데이터베이스 인스턴스를 만들고 OCIPYthonSDK를 사용하여 구성 매개 변수를 설정합니다. 2. 네트워크 및 스토리지 리소스 구성; 3. 데이터베이스에 연결하고 SQL 쿼리를 실행하십시오. 4. 데이터베이스 백업 및 복구 작업을 수행합니다. 5. 리소스 구성, 네트워크 최적화 및 백업 정책을 조정하여 데이터베이스 성능을 최적화합니다. 이는 사용자가 필요한 구성 매개 변수 만 제공해야하며 OCI가 나머지 작업을 처리하는 고도로 자동화 된 프로세스입니다.

Oracledba 인터뷰 준비에는 데이터베이스 아키텍처, 성능 튜닝, 백업 및 복구와 같은 핵심 지식을 마스터해야합니다. 1. 인스턴스와 데이터베이스 간의 관계를 포함하여 Oracle 데이터베이스 스키마를 이해합니다. 2. SQL 튜닝 및 인덱스 최적화와 같은 마스터 성능 튜닝 방법. 3. 백업 및 복구 전략에 익숙하고 RMAN 및 데이터 펌프 도구를 사용하십시오. 이러한 준비를 통해 인터뷰에서 전문 기술을 보여주고 인터뷰를 성공적으로 통과 할 수 있습니다.

oraclesql 튜닝은 다음 단계를 통해 쿼리 성능을 향상시킬 수 있습니다. 1. 부서 열에 대한 색인 생성과 같은 적절한 인덱스를 만듭니다. 2. 실행 계획을 분석하고 설명 계획 명령을 사용하여보고 최적화하십시오. 3. 불필요한 연결 작업을 피하기 위해 하위 쿼리를 사용하는 것과 같은 SQL 재 작성을 수행하십시오. 이러한 방법을 통해 Oracle 데이터베이스의 쿼리 효율성을 크게 향상시킬 수 있습니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

Dreamweaver Mac版
시각적 웹 개발 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경
