「Oracle」テーブルの列をNULL可能に変更する方法

環境
Oracle Database 11g Release 11.2.0.1.0 – 64bit Production

構文
ALTER TABLE テーブル名 MODIFY(項目名 NULL);
「alter table」を使って、テーブルの列をNULLにします。

使用例
1.テーブルを作成します

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
CREATE TABLE USERTEST
( "USERID" NUMBER(8,0),
"USERNAME" VARCHAR2(30) NOT NULL,
"REGTIME" TIMESTAMP,
PRIMARY KEY ("USERID")
);
CREATE TABLE USERTEST ( "USERID" NUMBER(8,0), "USERNAME" VARCHAR2(30) NOT NULL, "REGTIME" TIMESTAMP, PRIMARY KEY ("USERID") );
CREATE TABLE USERTEST
( "USERID"   NUMBER(8,0), 
  "USERNAME"  VARCHAR2(30) NOT NULL, 
  "REGTIME" TIMESTAMP,  
  PRIMARY KEY ("USERID")
);

説明
ユーザーID(USERID): number型です。整数8桁を指定しています。
ユーザー名(USERNAME): NOT NULL制約を付けます
登録日時(REGTIME): TIMESTAMP型
ユーザーID(USERID):プライマリーキーを指定します

操作例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> CREATE TABLE USERTEST
2 ( "USERID" NUMBER(8,0),
3 "USERNAME" VARCHAR2(30) NOT NULL,
4 "REGTIME" TIMESTAMP,
5 PRIMARY KEY ("USERID")
6 );
表が作成されました。
SQL> CREATE TABLE USERTEST 2 ( "USERID" NUMBER(8,0), 3 "USERNAME" VARCHAR2(30) NOT NULL, 4 "REGTIME" TIMESTAMP, 5 PRIMARY KEY ("USERID") 6 ); 表が作成されました。
SQL> CREATE TABLE USERTEST
  2  ( "USERID"   NUMBER(8,0),
  3    "USERNAME"  VARCHAR2(30) NOT NULL,
  4    "REGTIME" TIMESTAMP,
  5    PRIMARY KEY ("USERID")
  6  );

表が作成されました。

2.テーブルの列をNULLに変更します
テーブルの項目名の「USERNAME」をNULLに変更しています。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> ALTER TABLE USERTEST MODIFY(USERNAME NULL);
表が変更されました。
SQL> ALTER TABLE USERTEST MODIFY(USERNAME NULL); 表が変更されました。
SQL> ALTER TABLE USERTEST MODIFY(USERNAME NULL);

表が変更されました。

3.テーブルの列定義を確認します
書式
desc テーブル名
操作例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> desc usertest;
名前 NULL? 型
----------------------------------------- -------- ----------------------------
USERID NOT NULL NUMBER(8)
USERNAME VARCHAR2(30)
REGTIME TIMESTAMP(6)
SQL> desc usertest; 名前 NULL? 型 ----------------------------------------- -------- ---------------------------- USERID NOT NULL NUMBER(8) USERNAME VARCHAR2(30) REGTIME TIMESTAMP(6)
SQL> desc usertest;
 名前                                    NULL?    型
 ----------------------------------------- -------- ----------------------------
 USERID                                    NOT NULL NUMBER(8)
 USERNAME                                           VARCHAR2(30)
 REGTIME                                            TIMESTAMP(6)

 

Oracle

Posted by arkgame