MySQLでNOTNULL列を追加するにはどうすればよいですか?
テーブルの作成時にnull以外の列を追加することも、既存のテーブルに使用することもできます。
ケース1 −テーブルの作成時にnull以外の列を追加します。構文は次のとおりです
CREATE TABLE yourTableName ( yourColumnName1 dataType NOT NULL, yourColumnName2 dataType . . . N );
テーブルを作成するためのクエリは次のとおりです
mysql> create table NotNullAtCreationOfTable -> ( -> Id int not null, -> Name varchar(100) -> ); Query OK, 0 rows affected (0.60 sec)
上記の表では、IDをNULL値をとらないint型として宣言しています。 NULL値を挿入すると、エラーが発生します。
エラーは次のとおりです
mysql> insert into NotNullAtCreationOfTable values(NULL,'John'); ERROR 1048 (23000): Column 'Id' cannot be null
NULL以外の値を挿入します。それは許容できるでしょう
mysql> insert into NotNullAtCreationOfTable values(1,'Carol'); Query OK, 1 row affected (0.13 sec)
selectステートメントを使用してテーブルのレコードを表示します。クエリは次のとおりです
mysql> select *from NotNullAtCreationOfTable;
以下は出力です
+----+-------+ | Id | Name | +----+-------+ | 1 | Carol | +----+-------+ 1 row in set (0.00 sec)
ケース2 −既存のテーブルにnull以外の列を追加します。構文は次のとおりです
ALTER TABLE yourTableName ADD yourColumnName NOT NULL
テーブルを作成するためのクエリは次のとおりです
mysql> create table AddNotNull -> ( -> Id int, -> Name varchar(100) -> ); Query OK, 0 rows affected (1.43 sec)
これは、alterコマンドを使用して既存のテーブルにnull以外の列を追加するためのクエリです。
列をnull以外の列に変更するためのクエリは次のとおりです。ここでは、制約がNOTNULLであるAge列を追加します。
mysql> alter table AddNotNull add Age int not null; Query OK, 0 rows affected (0.44 sec) Records: 0 Duplicates: 0 Warnings: 0
これで、descコマンドを使用してテーブルの説明を確認できます。クエリは次のとおりです
mysql> desc AddNotNull;
以下は出力です
+-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | Id | int(11) | YES | | NULL | | | Name | varchar(100) | YES | | NULL | | | Age | int(11) | NO | | NULL | | +-------+--------------+------+-----+---------+-------+ 3 rows in set (0.08 sec)
列AgeにNULL値を挿入してみましょう。 Age列にNULL値を挿入しようとすると、エラーが発生します。
レコードを挿入するためのクエリは次のとおりです
mysql> insert into AddNotNull values(1,'John',NULL); ERROR 1048 (23000): Column 'Age' cannot be null
次に、他のレコードを挿入します。エラーは発生しません
mysql> insert into AddNotNull values(NULL,NULL,23); Query OK, 1 row affected (0.22 sec)
これで、selectステートメントを使用してテーブルのすべてのレコードを表示できます。クエリは次のとおりです
mysql> select *from AddNotNull;
以下は出力です
+------+------+-----+ | Id | Name | Age | +------+------+-----+ | NULL | NULL | 23 | +------+------+-----+ 1 row in set (0.00 sec)
-
MySQLの既存の列にNOTNULL属性を設定します
NOT NULL属性を既存の列に設定するには、ALTERTABLEコマンドを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1949 ( UserId int, UserName varchar(20) ); Query OK, 0 rows affected (0.00 sec) これは、既存の列にNOTNULL属性を設定するためのクエリです- mysql> alter table DemoTable1949 modify
-
PythonでMySQLテーブルに列を追加するにはどうすればよいですか?
既存のテーブルに新しい列を追加する必要がある場合があります。 Name、Age、Rollnoなどの列を持つ「Students」テーブルがあるとします。既存のテーブルに新しい列「アドレス」を追加します。 これは、ALTERコマンドを使用して実行できます。 ALTERコマンドは、データベースの列を変更、削除、または更新するために使用されます。これは、ADD句を使用してテーブルに新しい列を追加するためにも使用できます。 構文 ALTER TABLE table_name ADD new_column_name column_definition [FIRST | AFTER exisiting_c