mysql では、UPDATE ステートメントを使用してフィールド値を変更できます。UPDATE ステートメントは、データ テーブル内の 1 つの行、行のグループ、またはすべての行のフィールド値を変更できます。構文 " UPDATE テーブル名 SET フィールド 1 = 値 1[,フィールド 2=値 2...] [WHERE 条件]"。
このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。
mysql では、UPDATE ステートメントを使用してフィールドの値を変更できます。
UPDATE ステートメントは、テーブル内の既存のデータを更新したり、データ テーブル内の単一行、行のグループ、またはすべての行のフィールド値を変更したりできます。
MySQL UPDATE
ステートメントの構文を以下に説明します。
UPDATE 表名 SET 字段1=值1[,字段2=值2…] [WHERE 条件]
上記の UPDATE
ステートメント内:
UPDATE
キーワードの後にデータを更新するテーブル名を指定します。 SET
句で、変更する列と新しい値を指定します。複数の列を更新するには、カンマ区切りのリストを使用します。各列の割り当てに設定する値をリテラル、式、またはサブクエリとして指定します。 WHERE
句はオプションです。 WHERE
句が省略された場合、UPDATE
ステートメントはテーブル内のすべての行を更新します。 WHERE
句は非常に重要であるため、更新の条件を指定することを忘れないでください。場合によっては、1 つの行のみを変更したい場合がありますが、WHERE
句の記述を忘れて、テーブル内のすべての行が誤って更新される可能性があります。
MySQL は、UPDATE
ステートメントで 2 つの修飾子をサポートしています。
LOW_PRIORITY
修飾子は、テーブルからデータを読み取るための接続がなくなるまで更新を遅らせるように UPDATE
ステートメントに指示します。 LOW_PRIORITY
テーブル レベルのロックのみを使用する ストレージ エンジン (MyISAM、MERGE、MEMORY など) に有効です。 )。 MySQL サンプル データベース内のいくつかのテーブルを使用して、UPDATE
ステートメントの使用を練習します。
2.1 MySQL の単一列の更新の例
この例では、Mary Patterson の電子メールを新しい電子メールに更新します 123@qq.com
。
まず、電子メールの更新が成功したことを確認するために、次の SELECT ステートメントを使用して、employees
テーブルから Mary
の電子メールをクエリします。 <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:html;toolbar:false;">SELECT
firstname, lastname, email
FROM
employees
WHERE
employeeNumber = 1056;</pre><div class="contentsignin">ログイン後にコピー</div></div><div class="contentsignin">ログイン後にコピー</div></div>
+-----------+-----------+----------------------+ | firstname | lastname | email | +-----------+-----------+----------------------+ | Mary | Patterson | mpatterso@qq.com | +-----------+-----------+----------------------+ 1 row in set
2 番目のステップ 、UPDATE ステートメントを使用して
Mary## を更新します。 # の電子メールを新しい電子メール : 123@qq.com
に送信します。次のクエリに示すように: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:html;toolbar:false;">UPDATE employees
SET
email = &#39;123@qq.com&#39;
WHERE
employeeNumber = 1056;</pre><div class="contentsignin">ログイン後にコピー</div></div>
上記のステートメントでは 1 つの行のみを更新するため、次を使用します。更新されたものを指定する
句。従業員番号 1056
の行です。 SET
句は、電子メール列の値を新しい電子メールに設定します。
では、SELECT ステートメントを再度実行して、変更を確認します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:html;toolbar:false;">SELECT
firstname, lastname, email
FROM
employees
WHERE
employeeNumber = 1056;</pre><div class="contentsignin">ログイン後にコピー</div></div><div class="contentsignin">ログイン後にコピー</div></div>
上記のクエリ ステートメントを再度実行すると、次の結果が得られます。
+-----------+-----------+---------------------+ | firstname | lastname | email | +-----------+-----------+---------------------+ | Mary | Patterson | 123@qq.com | +-----------+-----------+---------------------+ 1 row in set
の値を更新するには複数の列の場合、割り当ては
SET 句で指定する必要があります。たとえば、次のステートメントは、従業員番号 1056
の姓と電子メールの列を更新します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:html;toolbar:false;">UPDATE employees
SET
lastname = &#39;Hill&#39;,
email = &#39;mary.hill@qq.com&#39;
WHERE
employeeNumber = 1056;</pre><div class="contentsignin">ログイン後にコピー</div></div>
上記のステートメントを実行した後、従業員番号
+-----------+----------+----------------------+ | firstname | lastname | email | +-----------+----------+----------------------+ | Mary | Hill | mary.hill@qq.com | +-----------+----------+----------------------+ 1 row in set
2.3 SELECT ステートメントを使用した MySQL UPDATE の例他のテーブルのデータは、SELECT
ステートメントを使用してクエリできます。SET句の値を指定します。
たとえば、
customers
salesRepEmployeeNumber 列の値は
NULL です。
mysql> SELECT customername, salesRepEmployeeNumber FROM customers WHERE salesRepEmployeeNumber IS NULL; +--------------------------------+------------------------+ | customername | salesRepEmployeeNumber | +--------------------------------+------------------------+ | Havel & Zbyszek Co | NULL | | Porto Imports Co. | NULL | | Asian Shopping Network, Co | NULL | | Natrlich Autos | NULL | | ANG Resellers | NULL | | Messner Shopping Network | NULL | | Franken Gifts, Co | NULL | | BG&E Collectables | NULL | | Schuyler Imports | NULL | | Der Hund Imports | NULL | | Cramer Spezialitten, Ltd | NULL | | Asian Treasures, Inc. | NULL | | SAR Distributors, Co | NULL | | Kommission Auto | NULL | | Lisboa Souveniers, Inc | NULL | | Stuttgart Collectable Exchange | NULL | | Feuer Online Stores, Inc | NULL | | Warburg Exchange | NULL | | Anton Designs, Ltd. | NULL | | Mit Vergngen & Co. | NULL | | Kremlin Collectables, Co. | NULL | | Raanan Stores, Inc | NULL | +--------------------------------+------------------------+ 22 rows in set
これらの顧客には営業担当者と最新情報を提供できます。
これを行うには、employees
テーブルからSales Rep というポジションの従業員をランダムに選択し、それを
employees に更新する必要があります。テーブル 。
次のクエリ ステートメントは、employees
テーブルから
Sales Rep という役職を持つ従業員をランダムに選択します。
SELECT employeeNumber FROM employees WHERE jobtitle = 'Sales Rep' ORDER BY RAND() LIMIT 1;
customers テーブルの営業担当者の従業員番号 (employeeNumber) 列を更新するには、上記のクエリを
UPDATE# の最後に配置します。 ## ステートメント SET
句を次のように追加します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:html;toolbar:false;">UPDATE customers
SET
salesRepEmployeeNumber = (SELECT
employeeNumber
FROM
employees
WHERE
jobtitle = &#39;Sales Rep&#39;
LIMIT 1)
WHERE
salesRepEmployeeNumber IS NULL;</pre><div class="contentsignin">ログイン後にコピー</div></div>
上記の更新ステートメントを実行した後、customers
テーブル内のデータをクエリすると、各顧客が営業担当者がいます。つまり、次のクエリは行データを返しません。
SELECT salesRepEmployeeNumber FROM customers WHERE salesRepEmployeeNumber IS NULL; `
[関連する推奨事項: mysql ビデオ チュートリアル
]
以上がmysqlでフィールドの値を変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。