UPDATE文、INSERT文、DELETE文の基本知識と練習問題(応用情報対策)
SELECT文は慣れてきたのですが、UPDATE文(更新)、INSERT文(挿入)、DELETE文(削除)が苦手なので、まとめました。
基本の書き方
[ ]内は省略可能です。
UPDATE文
条件に合ったレコードを更新します。
UPDATE 表名 SET 列名 = 値式 [WHERE 条件式]
WHERE句を省略すると、すべての行が更新されます。
INSERT文
レコードを挿入します。
その1 普通に値を挿入する
INSERT INTO 表名[(列名リスト)] VALUES(値リスト)
↑列名リストを省略した時は、値リストの列数は表の列数と同じじゃないといけません。
その2 別の表から条件にあったレコードを抽出して挿入する
INSERT INTO 表名[(列名リスト)] 問い合わせ文
DELETE文
条件に合ったレコードを削除します。
DELETE FROM 表名 [WHERE 条件式]
WHERE句を省略すると、すべての行が削除されます。
練習問題
ログイン不要なので、paiza.IOからMySQLを選び、練習していきます。
準備
こんな感じの表を作ります。Oracle Masterによく出るタイプの表です(empnoは社員番号、enameは社員名、deptnoは部門番号)。
empno | ename | deptno |
---|---|---|
1001 | 田中 | 10 |
1002 | 山田 | 20 |
1003 | 鈴木 | 10 |
以下のSQLをコピペして表を作ります。
CREATE TABLE emp( empno CHAR(4), ename CHAR(10), deptno CHAR(2) ); INSERT INTO emp VALUES("1001", "田中", "10"); INSERT INTO emp VALUES("1002", "山田", "20"); INSERT INTO emp VALUES("1003", "鈴木", "10");
コピペした下にSQLを追加していきます。
問題
問1. 社員番号(empno)1001の田中さんの部門番号(deptno) を30に変更してください。
問2. 社員番号(empno)1004、部門番号30の佐藤さんを追加してください。
問3. 社員番号(empno)1002の山田さんのレコードを削除してください。
答え
問1. 社員番号(empno)1001の田中さんの部門番号(deptno) を30に変更してください。
UPDATE emp SET deptno = "30" WHERE empno = "1001";
問2. 社員番号(empno)1004、部門番号30の佐藤さんを追加してください。
INSERT INTO emp VALUES ("1004", "佐藤", "30");
または
INSERT INTO emp(empno, ename, deptno) VALUES ("1004", "佐藤", "30");
問3. 社員番号(empno)1002の山田さんのレコードを削除してください。
DELETE FROM emp WHERE empno = "1002";
感想
基本的な書き方を覚えられてなくて、この記事も色々見ながら書いたので、応用情報までにちゃんと覚えたいです。