SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

最新イベントはこちら!

Data Tech 2024

2024年11月21日(木)オンライン開催

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けの講座「EnterpriseZine Academy」や、すべてのITパーソンに向けた「新エバンジェリスト養成講座」などの講座を企画しています。EnterpriseZine編集部ならではの切り口・企画・講師セレクトで、明日を担うIT人材の育成をミッションに展開しております。

お申し込み受付中!

EnterpriseZine(エンタープライズジン)

EnterpriseZine編集部が最旬ITトピックの深層に迫る。ここでしか読めない、エンタープライズITの最新トピックをお届けします。

『EnterpriseZine Press』

2024年秋号(EnterpriseZine Press 2024 Autumn)特集「生成AI時代に考える“真のDX人材育成”──『スキル策定』『実践』2つの観点で紐解く」

MySQL事始

MySQL事始 SQL文(5) DDL

第8回


列の定義

 列の定義は、列の名称とデータ型、列のオプションの組み合わせになります。列のオプションでは、その列をインデックスに指定する場合は種類などが設定できます。他にも列ごとに文字コードを定義することや、初期値および制約の設定もオプションとして設定可能です。データ型については第6回を参照してください。

 Cityテーブルの例では、ID列の場合、データ型が11桁の整数、列のオプションには"NOT NULL"”AUTO_INCREMENT"が設定されています。次のName列では、データ型が35文字の固定長文字列、列のオプションには"NOT NULL"と”デフォルト値として長さ0の文字列"が設定されています。

列名 データ型 列のオプション
`ID` int(11) NOT NULL AUTO_INCREMENT
`Name` char(35) NOT NULL DEFAULT ''
代表的な列のオプション
NULL NULL値を許容する
NOT NULL NULL値を許容しない=必ず値を登録する
AUTO_INCREMENT 値が明示的に指定されなかった場合か0を挿入した場合に既存の最大値に1を加えた値を登録
DEFAULT
値が明示的に指定されなかった場合に自動的に登録される値

なお、"NULL""NOT NULL"はいずれか1つのみが指定可能であり、明示的に指定しなかった場合は"NULL"が自動的に指定されます。

"AUTO_INCREMENT"に関する注意事項

  • テーブルに1つだけ設定可能
  • 整数型の列のみに指定可能
  • インデックスが設定されている必要がある
  • "AUTO_INCREMENT"を指定した列に"DEFAULT"値は設定不可
  • LAST_INSERT_ID()関数を実行すると直近の挿入値が確認可能

テーブルオプション

テーブル全体の設定を行うオプションをテーブル定義の最後に追加します。CHARACTER SETCOLLATEでテーブル全体の文字コードなどの指定ができるほか、MySQLならではの設定としてはストレージエンジンの指定があります。

テーブルの削除

 DROP TABLE文は既存のテーブルを削除します。テーブル内のデータ自動的に削除されます。構文は以下の通りです。

DROP TABLE データベース名

指定可能なオプションはありません。また、DROP DATABASE文同様にDROP TABLE文で削除されたテーブルを自動的に復旧する方法はないので実行には注意が必要です。

テーブルの変更

 ALTER TABLE文は既存のテーブルを変更します。このALTER TABLE文で可能な操作は以下の通りです。

  • テーブル名の変更
  • 列の追加
  • 列の削除
  • 列の変更(列名、データ型、文字コード、デフォルト値)
  • 列の移動
  • テーブル全体の文字コードの変更
  • インデックスの追加
  • インデックスの削除

テーブル名の変更

構文は以下の通りです。

ALTER TABLE 古いテーブル名 RENAME TO 新しいテーブル名

 RENAME TABLE文でも同様にテーブル名の変更ができますが、こちらのメリットは複数のテーブル名の変更を一括して実行できる点です。

 例)tbl_Aをtbl_oldに、tbl_newを新たにtbl_aにする場合

 RENAME TABLE tbl_A TO tbl_old, tbl_new TO tbl_A;

次のページ
列の追加

この記事は参考になりましたか?

  • Facebook
  • X
  • Pocket
  • note
MySQL事始連載記事一覧

もっと読む

この記事の著者

梶山隆輔(カジヤマリュウスケ)

日本オラクル MySQL Global Business Unit Asia Pacific & Japan担当 MySQLソリューション・エンジニアリング・ディレクターオラクル社において、MySQLのお客様環境への導入支援や製品の技術解説を担当するセールスコンサルタントチームのアジア太平洋地域リーダー。多国籍なM...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/3521 2012/02/10 18:05

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング