レコードを挿入
レコードを挿入する
レコードを挿入するための基本的な構文は 2 つあります
基本的な構文 1 を挿入します
基本的な構文 2 を挿入します
解説
基本構文1と基本文法2 の違いは次のとおりです:
1. 基本構文 1 の挿入ステートメントでは、テーブル内のフィールドと同じ数の値を挿入する必要があります。誰もそれ以上になることはできませんし、誰もそれ以下になることもできません。デフォルト値があり、それを渡したくない場合は、null を記述できます。
2. 基本構文 2 では、必須フィールドがない限り、値を記述する必要があります。デフォルト値を書きたくない場合は無視して構いません。 mysql はデフォルト値を自動的に完成させます。
3. 基本構文 2 では、user(id,username,sex) フィールドの順序は値の順序です。
ユーザーテーブルと呼ばれるテーブルがあるとします。フィールド、フィールドの説明、タイプ、およびフィールドのオプションと必須の状態を説明します。テーブルの構造は次のとおりです。
に従って、上記のテーブルに挿入ステートメントを記述します。基本的な構文:
insert into user values(null,'王开 ','php@163.com',null ,1);
注
1. フィールド名を指定する必要はありませんが、値の後の順序はテーブル フィールドの並べ替えと一致している必要があります。
2. デフォルト値を持つフィールドは書き込む必要がなく、デフォルト値になります。
3. デフォルト値または null 許容フィールドがあり、特定の値を渡したくない場合は、null を記述できます。
4. データ形式は、表に指定されているデータ形式と一致している必要があります。
基本構文 2 に従って、上の表に挿入ステートメントを記述します。
insert into user(username,sex) values('王开',1);
注
1。このフィールドの値は自動的にインクリメントされますので、値を渡す必要はありません。挿入するたびに1ずつ増加します。
2. デフォルト値を持つフィールドと null 許容フィールドは渡す必要はありません
3. テーブル ユーザー (ユーザー名、性別) の挿入順序に基づきます
4. より一般的な使用法は、基本的な構文 2 です
基本的な構文のバリエーション: 複数のレコードを一度に挿入します
insert into user(username,password,sex) values('黄晓明', 'abcdef', 1), ( 'angelababy', 'bcdeef', 0), ( '陈赫', '123456', 1), ('王宝强', '987654', 1);
レコードを挿入した後、レコード ID を返します
Mysql提供了一个LAST_INSERT_ID()的函数。 mysql> SELECT LAST_INSERT_ID(); -> 195
簡単に言えば、この関数は、挿入されたレコードがテーブル内で増加したフィールドの値を返します。この自動インクリメントされた値は ID という名前になります。これにより、挿入されたばかりのレコードの ID 値が返されます。
レコードが存在しない場合は挿入、レコードが存在する場合は更新するMysql実装方法
mysql> truncate `200702`; Query OK, 0 rows affected (0.01 sec) mysql> select * from `200702`; Empty set (0.01 sec) mysql> insert into `200702` (`domain`, `2nd_domain`, `tld`, `query_ns1`, `query_ns2`, `report_date`) values ('dnspod.com', 'dnspod', 'com', 1000, 2000, '2007-02-04') ON DUPLICATE KEY UPDATE `query_ns1` = `query_ns1` + 1000, `query_ns2` = `query_ns2` + 2000; Query OK, 1 row affected (0.00 sec)
もちろん、テーブルを作成する際にはドメインに一意にすることも忘れずに
UNIQUE KEY `domain` (`domain`,`report_date`)