SQLのUPDATE文とは?基本的な使い方と実行例をわかりやすく解説
UPDATE文とは
UPDATE文(UPDATEコマンド)は、テーブルのレコードを編集するために使用されるデータ操作言語(DML)のコマンドです。条件に一致する特定の1行だけを更新することも、テーブル内のすべての行を更新することも、ユーザーが指定した条件に合致する複数の行をまとめて更新することもできます。
UPDATE文は必ずSET句と組み合わせて使用し、どの列にどんな値を設定するかを指定します。さらにWHERE句を併用することで、更新対象となる行の条件を絞り込むことができます。
基本構文
UPDATE テーブル名
SET 列名1 = 値1, 列名2 = 値2, ...
WHERE 条件;
使用例1:条件を指定して更新する
以下は、UPDATEコマンドの基本的な使用例です。
update student set name='sneha' where branch='CSE';
この例では、branch(学科)が「CSE」である学生のname(名前)を「sneha」に更新しています。
使用例2:テーブル作成から更新までの流れ
次に、もう少し具体的な流れを見てみましょう。employee(従業員)テーブルを作成し、データを挿入した後でUPDATE文を実行します。
create table employee(ename varchar(30),department varchar(20));
insert into employee values('pinky','CSE');
insert into employee values('priya','ECE');
insert into employee values('hari','EEE');
select * from employee;
update employee set ename='sneha' where department='CSE';
select * from employee;
出力結果
pinky|CSE
priya|ECE
hari|EEE
sneha|CSE
priya|ECE
hari|EEE
実行後のSELECT文の結果を見ると、departmentが「CSE」の行だけがename「sneha」に更新され、他の行(priya、hari)は元のまま維持されていることがわかります。これがWHERE句による条件指定の効果です。
既存の値をもとに列の値を更新する
UPDATE文では、固定値だけでなく、現在格納されている値を利用した計算結果で更新することも可能です。以下は、全社員のage(年齢)を現在の値+2で更新する例です。
create table employee(ename varchar(30),department varchar(20), age number(30));
insert into employee values('ram','projectmanager',40);
insert into employee values('priya','assistant director',45);
insert into employee values('hari','developer',46);
select * from employee;
update employee set age=age+2;
select * from employee;
出力結果
ram|projectmanager|40
priya|assistant director|45
hari|developer|46
ram|projectmanager|42
priya|assistant director|47
hari|developer|48
この例ではWHERE句を指定していないため、テーブル内のすべての行のageが2ずつ増加しています。WHERE句を省略すると全行が更新の対象になるため、実行前には十分な注意が必要です。
1つのステートメントで複数の列を更新する
UPDATE文では、SET句にカンマ区切りで複数の列を指定することで、1つのステートメントで同時に複数の列を更新できます。
以下の例では、employeeテーブルに対して次の2つの更新を同時に実行します。
- age = age + 2(年齢を2増やす)
- salary = salary + 5000(給与を5000増やす)
create table employee(ename varchar(30),department varchar(20), age number(30), salary number(20));
insert into employee values('ram','projectmanager',40,50000);
insert into employee values('priya','assistant director',45,45000);
insert into employee values('hari','developer',46,30000);
select * from employee;
update employee set age=age+2,
salary= salary+5000;
select * from employee;
出力結果
ram |projectmanager |40|50000
priya|assistant director|45|45000
hari |developer |46|30000
ram |projectmanager |42|55000
priya|assistant director|47|50000
hari |developer |48|35000
すべての行で年齢が2増加し、かつ給与が5000増加しているのが確認できます。複数の列を個別に更新する場合と比べて、1回のSQL文で処理できるため効率的です。
UPDATE文を使う際の注意点
- WHERE句の指定忘れに注意:WHERE句を書かなければテーブル内の全レコードが更新されます。意図しない更新を防ぐため、本番環境では特に慎重に確認しましょう。
- 事前にSELECTで確認する:UPDATEを実行する前に、同じ条件でSELECT文を実行し、対象行が正しいか確認するのが安全です。
- トランザクションの活用:対応しているDBMSでは、トランザクションを使えば誤った更新をロールバックで取り消せます。
まとめ
UPDATE文は、テーブルの既存レコードを編集するための基本的ながら重要なDMLコマンドです。SET句で更新内容を指定し、WHERE句で対象行を絞り込むのが基本形です。単一列・複数列の更新、既存値を使った計算による更新など、さまざまなパターンに対応できるので、ぜひ実際に手を動かして挙動を確かめてみてください。
-
Microsoft Updateカタログとは?Windowsアップデートを手動でダウンロード・インストールする方法
通常、Windowsのアップデートは「Windows Update」機能を使って自動的にダウンロード・インストールします。しかし、特定のアップデートを手動で探してダウンロードしたいケースもあります。そんなときに役立つのが「Microsoft Updateカタログ」です。見た目は決して洗練されたサイトではありませんが、アップデートを探すうえでの最終的な拠点と言える存在です。 Microsoft Updateカタログとは 技術的に言えば、Microsoft Updateカタログは企業向けに設計されたサービスです。IT管理者は、ネットワークへの負荷が大きい繁忙時間帯を避け、必要なアップデートを
-
PHPのini_set()関数とは?使い方と設定変更方法を解説
ini_set()関数とはPHPでは、php.iniで定義された設定項目の一部を、ini_set()関数を使ってスクリプト内から動的に変更することができます。この関数は2つの文字列引数を受け取ります。第1引数には変更したい設定項目の名前を、第2引数には新しく割り当てる値を指定します。パラメータvar_name(設定名)すべての設定項目がini_set()で変更できるわけではありません。変更可能なオプションの一覧は、PHP公式マニュアルの付録に掲載されています。変更しようとした項目がスクリプトレベルでの変更に対応していない場合、設定は反映されないので注意が必要です。newvalue(新しい値)対