In Oracle, you can use the "ALTER TABLE MODIFY" statement to modify fields. The syntax is "ALTER TABLE table name MODIFY field name operations that need to be performed;"; common operations include: modifying column visibility, changing Default values ??for columns, expressions that modify virtual columns, etc.
The operating environment of this tutorial: Windows 7 system, Oracle 11g version, Dell G3 computer.
How to modify fields in oracle database
In Oracle, you can use the "ALTER TABLE MODIFY
" statement to modify fields and change the value of existing fields. definition.
To change the definition of a column in a table, use ALTER TABLE MODIFY
column syntax as follows:
ALTER TABLE 表名 MODIFY 字段名 需要執(zhí)行的操作;
The statement is straightforward. To modify a table's columns, you need to specify the column name, table name, and operation to be performed.
Oracle allows you to perform a variety of operations, but the following are the main commonly used operations:
Modify the visibility of a column
Allow or disallow NULL values
Shorten or expand the size of a column
Change the default value of a column
-
Expressions to modify virtual columns
To modify multiple columns, use the following syntax:
ALTER TABLE 表名 MODIFY ( 字段名1 action, 字段名2 action, ... );
Oracle ALTER TABLE MODIFY column example
First, create a new table named accounts
for the demo:
-- 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) );
Second, create a new table to the accounts
table Insert some rows into:
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');
Third , verify the insertion operation by using the following SELECT
statement:
SELECT * FROM accounts;
Execute the above query statement and get The following results-
1. Modify the visibility of the column
In Oracle 12c, you can Table columns are defined as invisible or visible. Invisible columns cannot be used for queries, such as:
SELECT * FROM table_name;
or
DESCRIBE table_name;
. Invisible columns cannot be found.
However, it is possible to query invisible columns by explicitly specifying them in the query:
SELECT invisible_column_1, invisible_column_2 FROM table_name;
By default, table columns are visible. Invisible columns can be defined when creating the table or using the ALTER TABLE MODIFY
column statement.
For example, the following statement makes the full_name
column invisible:
ALTER TABLE accounts MODIFY full_name INVISIBLE;
Execute query data in the table again and get the following results-
The following statement returns data in all columns of the accounts
table except the full_name
column:
SELECT * FROM accounts;
This is because full_name
Column is not visible. To change a column from invisible to visible, use the following statement:
ALTER TABLE accounts MODIFY full_name VISIBLE;
2. Allow or disallow null Example
The following statement Change the email
column to accept non-empty (not null
) values:
ALTER TABLE accounts MODIFY email VARCHAR2( 100 ) NOT NULL;
However, Oracle issues the following error:
SQL Error: ORA-02296: cannot enable (OT.) - null values found
because when When changing a column from null
to not null
, you must ensure that the existing data conforms to the new constraints (that is, if NULL
is not allowed in the original data ).
To solve this problem, first update the value of the email
column:
UPDATE accounts SET email = LOWER(first_name || '.' || last_name || '@oraok.com') ;
Please note that the LOWER() function converts the string to lowercase letter.
Then change the constraint on the email
column:
ALTER TABLE accounts MODIFY email VARCHAR2( 100 ) NOT NULL;
Now, it should work as expected.
3. Expand or shorten the size of the column example
Suppose you want to add international codes to the phone
column, such as : Prefix with 86
. Before modifying the value of the column, we must expand the size of the phone
column using the following statement:
ALTER TABLE accounts MODIFY phone VARCHAR2( 24 );
Now, we can update the phone number data:
UPDATE accounts SET phone = '+86 ' || phone;
The following statement Verification update:
SELECT * FROM accounts;
In the results of executing the above query statement, you should be able to see that the original phone number has the international area code prefixed with 86
.
#To shorten the size of a column, make sure all data in the column fits the new size.
For example, trying to reduce the size of the phone
column to 12
characters:
ALTER TABLE accounts MODIFY phone VARCHAR2( 12 );
Oracle Database issues the following error:
SQL Error: ORA-01441: cannot decrease column length because some value is too big
To solve this problem, first, the international code should be removed from the phone number (ie: 86
):
UPDATE accounts SET phone = REPLACE( phone, '+86 ', '' );
The REPLACE() function replaces a substring with a new one String. In this case it will replace 86
with the empty string.
Then shorten the size of the phone
column:
ALTER TABLE accounts MODIFY phone VARCHAR2( 12 );
4. Modify the virtual column
Assumption Fill in the full name in the following two-column format:
last_name, first_name
To do this, you can change the expression of the virtual column full_name
as follows:
ALTER TABLE accounts MODIFY full_name VARCHAR2(52) GENERATED ALWAYS AS (last_name || ', ' || first_name);
以下語句驗證修改:
SELECT * FROM accounts;
執(zhí)行上面查詢語句,可以看到以下結(jié)果
5. 修改列的默認值
添加一個名為status
的新列,默認值為1
到accounts
表中。參考以下語句 -
ALTER TABLE accounts ADD status NUMBER( 1, 0 ) DEFAULT 1 NOT NULL ;
當(dāng)執(zhí)行了該語句,就會將accounts
表中的所有現(xiàn)有行的status
列中的值設(shè)置為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' );
現(xiàn)在,查詢accounts
表中的數(shù)據(jù):
SELECT * FROM accounts;
執(zhí)行上面查詢語句,應(yīng)該看類似下面的結(jié)果?
正如所看到的那樣,ID
為4
的賬戶的status
列的值是0
。
推薦教程:《Oracle教程》
The above is the detailed content of How to modify fields in oracle database. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

The key to learning Java without taking detours is: 1. Understand core concepts and grammar; 2. Practice more; 3. Understand memory management and garbage collection; 4. Join online communities; 5. Read other people’s code; 6. Understand common libraries and frameworks; 7. Learn to deal with common mistakes; 8. Make a learning plan and proceed step by step. These methods can help you master Java programming efficiently.

Learning Java requires learning basic syntax, object-oriented programming, collection frameworks, exception handling, multithreading, I/O streaming, JDBC, network programming, and advanced features such as reflection and annotation. 1. The basic syntax includes variables, data types, operators and control flow statements. 2. Object-oriented programming covers classes, objects, inheritance, polymorphism, encapsulation and abstraction. 3. The collection framework involves ArrayList, LinkedList, HashSet, and HashMap. 4. Exception handling ensures program robustness through try-catch block. 5. Multithreaded programming requires understanding of thread life cycle and synchronization. 6. I/O streams are used for data reading, writing and file operations. 7. JDBC is used to interact with databases. 8. Network programming passes S

The steps to connect to an Oracle database connection pool using JDBC include: 1) Configure the connection pool, 2) Get the connection from the connection pool, 3) Perform SQL operations, and 4) Close the resources. Use OracleUCP to effectively manage connections and improve performance.

The key to installing MySQL 8.0 is to follow the steps and pay attention to common problems. It is recommended to use the MSI installation package on Windows. The steps include downloading the installation package, running the installer, selecting the installation type, setting the root password, enabling service startup, and paying attention to port conflicts or manually configuring the ZIP version; Linux (such as Ubuntu) is installed through apt, and the steps are to update the source, installing the server, running security scripts, checking service status, and modifying the root authentication method; no matter which platform, you should modify the default password, create ordinary users, set up firewalls, adjust configuration files to optimize character sets and other parameters to ensure security and normal use.

The way to view all databases in MongoDB is to enter the command "showdbs". 1. This command only displays non-empty databases. 2. You can switch the database through the "use" command and insert data to make it display. 3. Pay attention to internal databases such as "local" and "config". 4. When using the driver, you need to use the "listDatabases()" method to obtain detailed information. 5. The "db.stats()" command can view detailed database statistics.

The main reason for integrating Oracle databases with Hadoop is to leverage Oracle's powerful data management and transaction processing capabilities, as well as Hadoop's large-scale data storage and analysis capabilities. The integration methods include: 1. Export data from OracleBigDataConnector to Hadoop; 2. Use ApacheSqoop for data transmission; 3. Read Hadoop data directly through Oracle's external table function; 4. Use OracleGoldenGate to achieve data synchronization.

Common SQL statements include: 1. CREATETABLE creates tables, such as CREATETABLEemployees(idINTPRIMARYKEY, nameVARCHAR(100), salaryDECIMAL(10,2)); 2. CREATEINDEX creates indexes, such as CREATEINDEXidx_nameONemployees(name); 3. INSERTINTO inserts data, such as INSERTINTO employeees(id, name, salary)VALUES(1,'JohnDoe',75000.00); 4. SELECT check

Directly querying administrator passwords is not recommended in terms of security. The security design principle of Oracle database is to avoid storing passwords in plain text. Alternative methods include: 1. Reset the SYS or SYSTEM user password using SQL*Plus; 2. Verify the encrypted password through the DBMS_CRYPTO package.
