ホームページ >データベース >mysql チュートリアル >mysqlでフィールドの値を増やす方法
mysql では、INSERT ステートメントを使用してフィールドの値を増やすことができます。構文は、「INSERT INTO テーブル名 フィールド名 list VALUES (値のリスト);」または「INSERT INTO テーブル名 SET フィールド名」です。 1 = 値 1、フィールド名 2 = 値 2、…」。
このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。
mysql では、INSERT ステートメントを使用してフィールドの値を増やすことができます。
INSERT ステートメントは、データベース内の既存のテーブルに 1 行または複数行のタプル データを挿入できます。
INSERT ステートメントには、INSERT…VALUES ステートメントと INSERT…SET ステートメントという 2 つの構文形式があります。
1) INSERT…VALUES ステートメント
INSERT VALUES 的语法格式为: INSERT INTO <表名> [ <字段名1> [ , … <字段名n>] ] VALUES (值1) [… , (值n) ];
構文は次のように説明されます。
d9c3f208c735dc19d50c4f24e2d3872e: 操作対象のテーブル名を指定します。
1c251b90ec225afbdd1a30b33733cad2: データを挿入する必要があるフィールド名を指定します。テーブル内のすべてのフィールドにデータを挿入する場合、すべてのフィールド名を省略でき、INSERTd9c3f208c735dc19d50c4f24e2d3872eVALUES(…) を直接使用できます。
VALUES または VALUE 句: この句には、挿入されるデータのリストが含まれます。データ リスト内のデータの順序は、列の順序に対応している必要があります。
2) INSERT...SET ステートメント
構文形式は次のとおりです:
INSERT INTO <表名> SET <字段名1> = <值1>, <字段名2> = <值2>, …
このステートメントは、次の目的で直接使用されます。テーブルにデータを追加します。特定の列は、対応する列値を指定します。つまり、挿入されるデータの列名は SET 句で指定され、col_name は指定された列名で、等号の後に指定されたデータが続きます。指定されていない列の場合は、列の値が指定されます。この列のデフォルト値です。
これは、INSERT ステートメントの 2 つの形式からわかります。
INSERT...VALUES ステートメントを使用して、1 行または複数行のデータをtable;
INSERT…SET ステートメントを使用して、挿入された行の各列の値を指定するか、一部の列の値を指定します;
INSERT…SELECT ステートメント 他のテーブルのデータをテーブルに挿入します。
INSERT…SET ステートメントを使用すると、一部の列の値をテーブルに挿入でき、より柔軟になります。
INSERT…VALUES 文 一度に複数のデータを挿入できます。
MySQL では、複数の INSERT ステートメントを使用するよりも、単一の INSERT ステートメントで複数の挿入を処理する方が高速です。
単一の INSERT ステートメントを使用して複数行のデータを挿入する場合、必要なのはデータの各行をかっこで囲むことだけです。
テーブルのすべてのフィールドに値を追加する
テーブルのすべてのフィールドに値を挿入するには、次の 2 つの方法があります。 1 つはすべてのフィールド名を指定する方法、もう 1 つはフィールド名をまったく指定しない方法です。
[例 1]tb_courses テーブルに新しいレコードを挿入します。course_id 値は 1、course_name 値は "Network"、course_grade 値は 3、info 値は"コンピュータネットワーク"。
挿入操作を実行する前に、次のように tb_courses テーブルの SQL ステートメントと実行結果を確認します。
mysql> SELECT * FROM tb_courses; Empty set (0.00 sec)
クエリの結果は、現在のテーブルの内容が空でデータが存在しないことを示しています。次に、データの挿入操作を実行します。入力 SQL 文と実行プロセスは次のとおりです。
mysql> INSERT INTO tb_courses -> (course_id,course_name,course_grade,course_info) -> VALUES(1,'Network',3,'Computer Network'); Query OK, 1 rows affected (0.08 sec) mysql> SELECT * FROM tb_courses; +-----------+-------------+--------------+------------------+ | course_id | course_name | course_grade | course_info | +-----------+-------------+--------------+------------------+ | 1 | Network | 3 | Computer Network | +-----------+-------------+--------------+------------------+ 1 row in set (0.00 sec)
レコードが正常に挿入されたことがわかります。データを挿入する場合、tb_courses テーブルのすべてのフィールドが指定されるため、フィールドごとに新しい値が挿入されます。
INSERT ステートメント後の列名の順序は、tb_courses テーブルの定義時の順序である必要はありません。つまり、データを挿入するときに、テーブルで定義された順序で挿入する必要はありません。値の順序が列フィールドの順序と同じであることが保証されている限り。
[例 2]tb_courses テーブルに新しいレコードを挿入します。course_id 値は 2、course_name 値は "Database"、course_grade 値は 3、info 値は「MySQL」。入力したSQL文と実行結果を以下に示します。
mysql> INSERT INTO tb_courses -> (course_name,course_info,course_id,course_grade) -> VALUES('Database','MySQL',2,3); Query OK, 1 rows affected (0.08 sec) mysql> SELECT * FROM tb_courses; +-----------+-------------+--------------+------------------+ | course_id | course_name | course_grade | course_info | +-----------+-------------+--------------+------------------+ | 1 | Network | 3 | Computer Network | | 2 | Database | 3 | MySQL | +-----------+-------------+--------------+------------------+ 2 rows in set (0.00 sec)
INSERT を使用してデータを挿入する場合、列名リスト column_list は空にすることができます。このとき、値リストではテーブルの各フィールドの値と値の順序を指定する必要があります。データテーブルでフィールドが定義されている順序と同じである必要があります。
[例 3]tb_courses テーブルに新しいレコードを挿入します。course_id 値は 3、course_name 値は "Java"、course_grade 値は 4、info 値は「ジャベEE」。入力したSQL文と実行結果を以下に示します。
mysql> INSERT INTO tb_courses -> VLAUES(3,'Java',4,'Java EE'); Query OK, 1 rows affected (0.08 sec) mysql> SELECT * FROM tb_courses; +-----------+-------------+--------------+------------------+ | course_id | course_name | course_grade | course_info | +-----------+-------------+--------------+------------------+ | 1 | Network | 3 | Computer Network | | 2 | Database | 3 | MySQL | | 3 | Java | 4 | Java EE | +-----------+-------------+--------------+------------------+ 3 rows in set (0.00 sec)
INSERT ステートメントは挿入リストを指定せず、値リストのみを指定します。この場合、値リストは各フィールド列の挿入値を指定し、値は tb_courses テーブルでフィールドが定義されているのと同じ順序である必要があります。
注: INSERT を使用してデータを挿入する場合、挿入されたデータの列名は無視できますが、値に列名が含まれていない場合、VALUES キーワードの後の値は完全であるだけでなく、この順序は、テーブルを定義するときの列の順序と同じである必要があります。テーブルの構造を変更し、列の追加、削除、位置の変更を行うと、同時にデータの挿入順序も変更されます。列名を指定した場合、テーブル構造の変更による影響を受けません。
テーブル内の指定されたフィールドに値を追加します
为表的指定字段插入数据,是在 INSERT 语句中只向部分字段中插入值,而其他字段的值为表定义时的默认值。
【实例 4】在 tb_courses 表中插入一条新记录,course_name 值为“System”,course_grade 值为 3,course_info 值为“Operating System”,输入的 SQL 语句和执行结果如下所示。
mysql> INSERT INTO tb_courses -> (course_name,course_grade,course_info) -> VALUES('System',3,'Operation System'); Query OK, 1 rows affected (0.08 sec) mysql> SELECT * FROM tb_courses; +-----------+-------------+--------------+------------------+ | course_id | course_name | course_grade | course_info | +-----------+-------------+--------------+------------------+ | 1 | Network | 3 | Computer Network | | 2 | Database | 3 | MySQL | | 3 | Java | 4 | Java EE | | 4 | System | 3 | Operating System | +-----------+-------------+--------------+------------------+ 4 rows in set (0.00 sec)
可以看到插入记录成功。如查询结果显示,这里的 course_id 字段自动添加了一个整数值 4。这时的 course_id 字段为表的主键,不能为空,系统自动为该字段插入自增的序列值。在插入记录时,如果某些字段没有指定插入值,MySQL 将插入该字段定义时的默认值。
【相关推荐:mysql视频教程】
以上がmysqlでフィールドの値を増やす方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。