SQL(2) データの更新
データベースの復元
前回までに作成したデータベースを読み込むには,[File]→[Open DB]をクリックし, 保存した sqlite1.db を選択します. 復元したデータベースに【学生リスト】と【学部リスト】があることを確認しましょう.
学籍番号 | 氏名 | 学年 | 学部 |
---|---|---|---|
A001 | 岩城隼人 | 2 | 工学部 |
A002 | 岩村優 | 1 | 工学部 |
B003 | 杉江弘子 | 3 | 人文学部 |
C004 | 仙波あすか | 1 | 国際関係学部 |
【学生リスト】
学部 | キャンパス | 教員数 |
---|---|---|
工学部 | 春日井 | 30 |
人文学部 | 春日井 | 20 |
国際関係学部 | 名古屋 | 25 |
【学部リスト】
スキーマの変更
作成済みのテーブルのスキーマを変更するには ALTER文 を用います. テーブル名はスキーマを変更する対象のテーブルの名前です. ADD を指定すると属性の追加,DROP を指定すると属性の削除, RENAME TOを指定するとテーブル名の変更ができます.
/* ALTER文 属性の追加 */
ALTER TABLE テーブル名 ADD 属性名 データ型;
/* ALTER文 属性の削除 */
ALTER TABLE テーブル名 DROP 属性名;
/* ALTER文 テーブル名の変更 */
ALTER TABLE テーブル名 RENAME TO 新テーブル名;
それでは,【学生リスト】に よみがな を追加してみましょう.
/* 【学生リスト】によみがなを追加*/
ALTER TABLE 学生リスト ADD よみがな TEXT;
属性が新しく追加されたか SELECT文で確認してしみます. 新しく よみがな の列が追加され,その値が NULL となっていることが確認できます.
/* 【学生リスト】のレコードを表示 */
SELECT * FROM 学生リスト;
レコードの更新
既にテーブルに存在するレコードを更新(修正)するには UPDATE文 を用います. テーブル名は更新対象のレコードを含むテーブルの名前です. WHEREの後にある属性名2と値2が一致するレコードを検索し, SETの後にある属性名1と値1に置き換えるという操作を行います.
/* UPDATE文 */
UPDATE テーブル名 SET 属性名1=値1 WHERE 属性名2=値2;
それでは,【学生リスト】の$学籍番号=A001$のレコードの$よみがな$を設定してみましょう.
/* よみがなの設定 */
UPDATE 学生リスト SET よみがな='いわきはやと' WHERE 学籍番号='A001';
$よみがな$が設定されたかSELECT文で確認してみます.
/* 【学生リスト】のレコードを表示 */
SELECT * FROM 学生リスト;
テーブルのコピー
テーブルをコピーするには CREATE文 を用います. 旧テーブル をコピーした新テーブル が作成されます.
/* テーブルのコピー */
CREATE TABLE 新テーブル AS SELECT * FROM 旧テーブル;
それでは,【学生リスト】をコピーして,【テニス部】を作成しましょう.
/* 【学生リスト】をコピーして【テニス部】を作成 */
CREATE TABLE テニス部 AS SELECT * FROM 学生リスト;
コピーした【テニス部】をSELECT文で確認してみます.
/* 【テニス部】のレコードを表示 */
SELECT * FROM テニス部;
レコードの削除
テーブルに存在するレコードを削除するには DELETE文 を用います. テーブル名は削除対象のレコードを含むテーブルの名前です. WHEREの後ろにある属性名と値が一致するレコードを削除します.
/* DELETE文 */
DELETE FROM テーブル名 WHERE 属性名=値;
それでは,【テニス部】から$学籍番号=A001$のレコードを削除してみましょう.
/* DELETE文 */
DELETE FROM テニス部 WHERE 学籍番号='A001';
レコードを削除した【テニス部】をSELECT文で確認してみます.
/* 【テニス部】のレコードを表示 */
SELECT * FROM テニス部;
学籍番号 | 氏名 | 学年 | 学部 | よみがな |
---|---|---|---|---|
A002 | 岩村優 | 1 | 工学部 | いわむらゆう |
B003 | 杉江弘子 | 3 | 人文学部 | すぎえひろこ |
C004 | 仙波あすか | 1 | 国際関係学部 | せんばあすか |
【テニス部】
例題2
【学生リスト】をコピーして,下記の【サッカー部】を作成しなさい.
学籍番号 | 氏名 | 学年 | 学部 | よみがな |
---|---|---|---|---|
A001 | 岩城隼人 | 2 | 工学部 | いわきはやと |
B003 | 杉江弘子 | 3 | 人文学部 | すぎえひろこ |
A005 | 内田弘 | 3 | 工学部 | うちだひろし |
テーブルの削除
テーブルを削除するには DROP文 を用います.
/* DROP文 */
DROP TABLE テーブル名;
例題3
【学部リスト】をコピーして,下記の【在学学生数】を作成しなさい. 収容定員の設定に際しては,UPDATE文はWHEREを指定しない場合,複数行に同じ値を設定することを利用しなさい. 作成したらデータベースを保存した後で,【在学学生数】をDROP文で削除しなさい.
学部 | キャンパス | 収容定員 | 学生数 |
工学部 | 春日井 | 100 | 102 |
人文学部 | 春日井 | 100 | 99 |
国際関係学部 | 名古屋 | 100 | 106 |
データベースの保存
作成したデータベースを保存するには,[File]→[Save DB]をクリックします. 保存したファイルは sqlite2.db とファイル名を変更してから,提出してください.
情報処理技術者試験・過去問
下記リンクは ITパスポート試験ドットコム, 基本情報技術者試験ドットコム, 応用情報技術者試験ドットコムに掲載されている問題です.