MySQLで列に設定されたデフォルト値を確認・表示する方法
MySQLの列に設定されたデフォルト値のみを表示する方法
MySQLでは、DEFAULT()関数を使うことで、テーブルの列に設定されているデフォルト値を簡単に確認できます。この記事では、実際にサンプルテーブルを作成し、デフォルト値がどのように適用されるのか、そしてデフォルト値そのものを表示する方法を解説します。
1. デフォルト値付きのテーブルを作成する
まず、各列にデフォルト値を設定したテーブルを作成しましょう。
mysql> create table DemoTable803(UserId int DEFAULT 101, UserName varchar(100) DEFAULT 'Chris'); Query OK, 0 rows affected (1.18 sec)
この例では、UserId列のデフォルト値は「101」、UserName列のデフォルト値は「Chris」に設定されています。
2. レコードを挿入する
次に、INSERT文を使ってレコードを挿入します。値を指定しなかった列には、自動的にデフォルト値が設定される点に注目してください。
mysql> insert into DemoTable803 values(102,'Chris');
Query OK, 1 row affected (0.34 sec)
mysql> insert into DemoTable803(UserName) values('Mike');
Query OK, 1 row affected (0.48 sec)
mysql> insert into DemoTable803(UserId) values(103);
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable803 values();
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable803 values(110,'Robert');
Query OK, 1 row affected (0.33 sec)上記のように、列を省略してINSERTを実行すると、その列にはデフォルト値が自動的に格納されます。
3. テーブル内の全レコードを表示する
SELECT文ですべてのレコードを表示してみましょう。
mysql> select *from DemoTable803;
実行結果は以下の通りです。
+--------+----------+ | UserId | UserName | +--------+----------+ | 102 | Chris | | 101 | Mike | | 103 | Chris | | 101 | Chris | | 110 | Robert | +--------+----------+ 5 rows in set (0.00 sec)
値を指定しなかった箇所に、デフォルト値である「101」や「Chris」が自動的に設定されていることがわかります。
4. デフォルト値のみを表示するクエリ
それでは本題です。列に設定されたデフォルト値だけを表示するには、以下のようにDEFAULT()関数を使用します。
mysql> select default(UserId), default(UserName) from DemoTable803 limit 1;
実行結果は以下の通りです。
+-----------------+-------------------+ | default(UserId) | default(UserName) | +-----------------+-------------------+ | 101 | Chris | +-----------------+-------------------+ 1 row in set (0.00 sec)
まとめ
DEFAULT(列名)関数を使えば、実際に格納されているデータに関係なく、列に定義されたデフォルト値を取得できます。LIMIT 1を付けて実行しているのは、どの行でも同じ結果になるため、表示を1行に絞るためです。テーブル設計時にデフォルト値を確認したい場合などに便利なテクニックなので、ぜひ覚えておきましょう。
-
MySQLでIN句に指定した値のみを任意の順序で表示する方法
MySQLでIN句に指定した値のみを任意の順序で表示する方法MySQLでは、IN()とORDER BY句、さらにFIELD()関数を組み合わせることで、IN句内に指定した値だけを、希望する独自の順序で表示できます。通常のORDER BYは昇順・降順のソートしかできませんが、FIELD()関数を使えば自由に並び順を定義できるのがポイントです。サンプルテーブルの作成まず、動作確認用のテーブルを作成しましょう。mysql> create table DemoTable1986(Number int);Query OK, 0 rows affected (0.00 sec)次に、INSERTコマ
-
MySQLで列にENUM型を設定する方法
```html MySQLでは、テーブルを作成する際に、あらかじめ決められた文字列のリストから値を選ばせたい列に対してENUM型を設定できます。ENUMは、指定した候補値以外のデータが登録されるのを防ぎたい場合に便利なデータ型です。ここでは、実際にテーブルを作成しながら基本的な使い方を見ていきましょう。ENUM型を含むテーブルを作成するまず、学生の点数と合否ステータスを管理するテーブルを作成します。「StudentStatus」列には「First」「Second」「Fail」の3つの値のみを許可するENUM型を設定しています。mysql> create table DemoTable20