ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
カラム定義変更とは
既存テーブルのカラムのデータ型 / 桁数 / NULL 許可 / デフォルト値などを変更したいときに使う SQL です。テーブル設計が後から変わったとき、データ移行や仕様変更に伴って利用します。
DB ごとの構文の違い
| DB | 構文 |
|---|---|
| Oracle | ALTER TABLE 表名 MODIFY (カラム名 データ型 [制約]); |
| MySQL | ALTER TABLE 表名 MODIFY COLUMN カラム名 データ型 [制約]; |
| PostgreSQL | ALTER TABLE 表名 ALTER COLUMN カラム名 TYPE データ型; |
| SQL Server | ALTER TABLE 表名 ALTER COLUMN カラム名 データ型 [制約]; |
Oracle の例
-- データ型 / 桁数の変更
ALTER TABLE test_table MODIFY (col1 VARCHAR2(20));
-- NULL 許可 / NOT NULL の切り替え
ALTER TABLE test_table MODIFY (col1 VARCHAR2(20) NOT NULL);
-- デフォルト値の変更
ALTER TABLE test_table MODIFY (col1 DEFAULT 'unknown');
-- 複数カラムを一括変更
ALTER TABLE test_table MODIFY (
col1 VARCHAR2(20) NOT NULL,
col2 NUMBER(8,2)
);
MySQL の例
-- 型と桁数を変更
ALTER TABLE users MODIFY COLUMN nickname VARCHAR(64) NOT NULL;
-- リネームを伴う変更(CHANGE COLUMN)
ALTER TABLE users CHANGE COLUMN nickname display_name VARCHAR(64) NOT NULL;
PostgreSQL の例
-- 型変更
ALTER TABLE users ALTER COLUMN age TYPE BIGINT USING age::BIGINT;
-- NOT NULL の追加 / 解除
ALTER TABLE users ALTER COLUMN email SET NOT NULL;
ALTER TABLE users ALTER COLUMN email DROP NOT NULL;
-- DEFAULT の追加 / 解除
ALTER TABLE users ALTER COLUMN status SET DEFAULT 'active';
ALTER TABLE users ALTER COLUMN status DROP DEFAULT;
SQL Server の例
-- 型変更
ALTER TABLE Users ALTER COLUMN Nickname NVARCHAR(64) NOT NULL;
-- DEFAULT は制約として別途追加
ALTER TABLE Users ADD CONSTRAINT DF_Users_Status DEFAULT('active') FOR Status;
注意点
- 桁数の縮小: 既存データが新しい桁数を超える場合はエラー。データ確認と必要に応じた更新が先
- 型変更:
NUMBER → VARCHAR2など暗黙変換できない場合は変換できないか PostgreSQL のようにUSING句が必要 - NOT NULL 追加: 既存に NULL があるとエラー。デフォルト値設定 + UPDATE で埋めてから NOT NULL 化する手順が一般的
- テーブルロック / 再構築: 一部の DBMS では裏でテーブル再構築が走り、大きなテーブルでは長時間ロックされる。本番では
pt-online-schema-changeやgh-ostなど無停止ツールの利用を検討 - 主キーや外部キーに関わるカラムは、参照する側のテーブルも合わせて変更が必要なことがある
関連 SQL
| 操作 | SQL |
|---|---|
| カラム追加 | ALTER TABLE 表 ADD (カラム データ型); |
| カラム削除 | ALTER TABLE 表 DROP COLUMN カラム; |
| カラム名変更 | ALTER TABLE 表 RENAME COLUMN 旧 TO 新; |
| テーブル名変更 | ALTER TABLE 旧 RENAME TO 新; |
関連記事
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?