@question2024 (step1engineer)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

SQL 社員番号に対して情報を追加したい

Q&A

Closed

●解決したいこと
既に格納されているデータに対して蚊所属情報を追加したい場合
どのようなSQL文章にすればよいでしょうか。
現在データベースには以下の情報が格納されています。
社員番号 氏名
001    田中一
002    田中二
003    田中三



100 田中百

INSERT INTO テーブル名 (列名) VALUES (値);
という構文を使うのかと考えているのですが、
INSERT INTO maintable (employee_num) VALUES ('IT');
だとどの社員に対してITという情報が追加されるのでしょうか。
と、上記の文章が誤りな気はしながら、どう書くべきか分からないでいます。
INSERT INTO maintable (employee_num, belong) VALUES (001, 'IT');
このほうが正解に近い気もしますが分からないでいます。

sql知識が少ないため調べても本で読んでも
自分の調べたいことがどれが正解なのか分からないでいます。
3日以上たってしまったので、こちらで質問をすることにしました。
解答ではなく、このサイトが参考になるなどアドバイスをいただくのも嬉しいです。

よろしくお願いいたします。

0 likes

3Answer

参考として
INSERTは新しい行を追加するコマンドなので新規の行が追加されます。

カラムの定義を
社員番号 = employee_num
氏名 = name
課所属情報 = belong
として話を進めます。

INSERT INTO maintable (employee_num) VALUES ('IT');
だとどの社員に対してITという情報が追加されるのでしょうか。

上記のsql文の場合、社員番号がITで氏名がNULLの行を追加しようとします。
テーブルが以下のようになるか、テーブルの定義によってはコマンドが失敗します。

employee_num name
001 田中一
002 田中二
... ...
IT NULL

INSERT INTO maintable (employee_num, belong) VALUES (001, 'IT');
このほうが正解に近い気もしますが分からないでいます。

上記のsql文の場合、社員番号が001で課所属情報がITの行を追加しようとします。
テーブルが以下のようになるか、テーブルの定義によってはコマンドが失敗します。
※既存のbelong内容が不明のためNULLとしています。

employee_num name belong
001 田中一 NULL
002 田中二 NULL
... ... ...
001 NULL IT
1Like

まずはmaintableに追加しようとしてるカラムのbelongが有るでしょうか?
mysqlの場合は以下のコマンドで確認してみてください
※他のDBを使っている場合はpostgresql SHOW COLUMNS等で検索すれば参考になる情報が見つかると思います。

SHOW COLUMNS FROM maintable;

実行結果参考

Field Type Null Key Default Extra
employee_num int(11) NO PRI NULL auto_increment
name varchar(35) NO
belong varchar(2) YES

もし、上記コマンドでbelongがなかった場合は、maintableにbelongを追加する必要があります

ALTER TABLE maintable ADD belong varchar(2);

その後、updateコマンドを使ってbelongを更新することになります。
以下は社員番号1の行の課所属情報を'IT'にするコマンドです。

UPDATE maintable SET belong='IT' WHERE employee_num=1;

うまく行っていればSELECT * FROM maintableで以下のようなの結果になってくれると思います。

SELECT * FROM maintable;
employee_num name belong
001 田中一 IT
002 田中二 NULL
... ... ...

参考サイト
https://dev.mysql.com/doc/refman/5.6/ja/show-columns.html
https://uxmilk.jp/12612
https://www.javadrive.jp/mysql/insert/index7.html

1Like

・テーブル定義の修正
ALTER TABLE文のADD COLUMNで所属の列を追加する

・所属情報の更新
UPDATE文で所属情報を更新する

まずビギナー向けのDBの入門書をおすすめします。
基本的な知識不足はSQLだけの問題ではないように思えます。

0Like

Your answer might help someone💌