MySQLでブール(BOOLEAN)列にデフォルト値1を設定・変更する方法
MySQLでは、ALTER TABLE文とDEFAULT句を組み合わせることで、既存のブール(BOOLEAN)型の列にデフォルト値「1」を割り当てることができます。あらかじめ設定しておけば、INSERTコマンド実行時にその列へ値を明示的に指定しなくても、自動的に1が格納されます。
サンプルテーブルを作成する
まずはテーブルを作成しましょう。
mysql> create table DemoTable ( isAdult int ); Query OK, 0 rows affected (1.39 sec)
既存の列にデフォルト値1を設定する
次に、ALTER TABLE文のCHANGE句を使って、すでに作成済みのisAdult列をBOOLEAN型へ変更しながら、デフォルト値1とNOT NULL制約を同時に設定します。
mysql> alter table DemoTable CHANGE isAdult isAdult BOOLEAN DEFAULT '1' NOT NULL; Query OK, 0 rows affected (1.18 sec) Records: 0 Duplicates: 0 Warnings: 0
レコードを挿入して動作を確認する
INSERTコマンドでいくつかレコードを追加してみます。値を指定せずに挿入した場合でも、デフォルト値の1が自動的に代入される点に注目してください。
mysql> insert into DemoTable values(); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable values(); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable values(0); Query OK, 1 row affected (0.15 sec)
結果を表示する
SELECT文ですべてのレコードを表示してみましょう。
mysql> select *from DemoTable;
実行結果は以下のようになります。
+---------+ | isAdult | +---------+ | 1 | | 1 | | 0 | +---------+ 3 rows in set (0.00 sec)
このように、値を指定せずにINSERTした2件のレコードには自動的に「1」が格納され、明示的に「0」を指定した3件目のみが0になっていることが確認できます。なお、MySQLにおけるBOOLEAN型はTINYINT(1)のエイリアス(別名)として扱われるため、内部的には0または1の整数値が保持されます。
-
MySQLで関数を作成して列の値の平均を求める方法
はじめにMySQLでは、ストアドファンクションを作成することで、特定の条件に合致する列の値の平均を簡単に取得できます。この記事では、サンプルテーブルを作成し、指定した名前の点数(Marks)の平均を返す関数の作成方法を順を追って解説します。1. テーブルの作成まず、以下のコマンドでテーブルを作成します。mysql> create table DemoTable638 (Name varchar(100),Marks int);Query OK, 0 rows affected (0.68 sec)2. レコードの挿入次に、INSERTコマンドを使ってテーブルにレコードを挿入します。mys
-
MySQLで列のデフォルト値を設定する方法|DEFAULTキーワードの使い方を解説
MySQLで列のデフォルト値を設定する方法 MySQLで列にデフォルト値を設定するには、DEFAULTキーワードを使用します。デフォルト値を設定しておけば、INSERT時にその列の値が指定されなかった場合でも自動的に初期値が格納されるため、データの整合性を保ちやすくなります。 ここでは、実際にテーブルを作成し、ALTER TABLE文でデフォルト値を設定する手順をサンプルコード付きで解説します。 1. テーブルの作成 まず、サンプル用のテーブルを作成しましょう。 mysql> create table DemoTable758 ( Id int NOT NULL AUTO_IN