SQL理論(6)
3388 ワード
DMLデータオペレータ
:データベースは、現在の時点を反映するために、データを追加、変更、削除する言語を使用します.
INSERT:表の新しい行を追加する
UPDATE:既存行の追加
DELETE:既存行の削除
ここでinsertとdeleteは行単位で操作でき、updateは列単位で操作できます(列ごとにデータを変更します).
INSERT:表に新しい行を追加する
1行プラスして、時計を見て、最後の順番でプラスしたので、そう見えなくても、実際にはそうプラスしています
一度に1行だけ追加するのは面倒な作業ですが、代わりはありません.
方法.
INSERT INTO table_naem
値入力するデータ・セクションと入力するデータ値を指定します.
方法.
INSERT INTO table(column_name)
values
メソッド1はテーブルのすべてのデータに影響し、メソッド2は特定のカラムのデータに影響します.
departmentsテーブルを例と見なす場合
ここでdepartment idはnull値ではなく、4桁であってもよい
したがって、ここで新しいタイプの従業員を増やすには、形式に合致する必要があります.
しかし、すべてのデータが追加されるわけではありません.1つ目は、カラムの整合性を検証する数値値です.文字を入力するとエラーが発生します.
ここでフォーマットが間違っている場合、manager idに1000007ビットを入れると、制約条件の整合性がエラーになります.
Insert文にnullを挿入する
:insert文は行末の上に挿入され、空の値がある場合は自動的に挿入され、null名で行を作成します.
1.intoセクションの使用:初期値が空の列は挿入されず、空の値が自動的に挿入されます.
insert into departments(department_id, department_name, manager_id)
values(310,'ITCENTER',100); valuesセクションにnullを追加して宣言します.現在の業界でよく使用されています.
insert into departments
values(320,'ADMIN',null,null);
*注意:nullを追加する場合はnullと呼ばれ、文字型として認識されnullが表示されます
その他の概念
select sysdate
from dual;
これは、特定のイベントが発生したときにシステムの現在の日付を返すコードで、ログインメンバーのログ情報を記録します.dualという名前のテーブルにはdummy列があり、xという変数から構成されています.現業でよく使われ、データ外業に用いられる
DELET:テーブル行の削除
そこで、お寺の後ろに私が望む条件を書いてもいいですよ!
UPDATE:表列単位の変更
whereセクションがない場合、すべてのテーブルのdepartment idが70になる可能性があります.
重要なコンセプト!!!
参照テーブルと参照テーブルの関係を把握する
例:
関係テーブルがあり、e.department id=d.department id
参照したサブテーブルdept idでinsert(4番103、部門番号10)を使用できますが、使用できません(4番104、部門番号40)
参照中のdeptテーブルのdept id列には存在しないためです.
これでupdateも同じで、部門番号10を30に変更することはできません.40に変更することはできません.
部門番号20を10に変更することもできます
ただし、部門番号は削除できます!=会社を辞める社員もいるからです.
しかし参照されるDepartmentsテーブルではどうなるのでしょうか?
dept idに10が追加されますか?これは不可能です.pkなので固有値に変更することはできませんが、新しい40のデータを追加することができます.
updateで10を20に変更するのは参照不可、10を40に変更するのも同様の理由で、30は現在参照不可、40に変更可能
deleteで10を削除しても参照できませんが、30は現在参照されていないので削除できます
ここでの結論は、参照している値にのみ適用されます.
参照しない値には受け入れられないし、参照される値にも自由なinsert、update!
これは、初心者開発者がよく犯すエラーです.もし私がデータベースの仕事をしている間に削除、変更、エラーが発生しなかったら、このように参照することが多いです.この構造をよく理解しなければならない.
読解の一般性
パラレル制御によるロックの停止
データベースで作業中、トレース・アイテムが進行中=コミットとロールバックが終了していない場合、誰かが私の作業を破壊しないように、一般的な読み取りでトランザクションを保護します.
たとえば、左、右のユーザーは他のユーザーです.
左ウィンドウ枠のユーザーは3500~20000の変換を行っています(赤)
トランザクションが発生しました.終了するにはcommitまたはrollbackが必要です.
現在ing中で、右ユーザーがDBにアクセスすると、その前の形式の結果が表示され、変更する場合はロックされ、カーソルのみが移動します
その後commitコマンドが発行されると、20000の値に変更されます.
rollbackを下げると3500の値が表示されます!
また、コードにはcommitコマンドを追加する必要があります.ずっとing状態であればシャットダウンし、他のプログラムにアクセスできません
:データベースは、現在の時点を反映するために、データを追加、変更、削除する言語を使用します.
INSERT:表の新しい行を追加する
UPDATE:既存行の追加
DELETE:既存行の削除
ここでinsertとdeleteは行単位で操作でき、updateは列単位で操作できます(列ごとにデータを変更します).
INSERT:表に新しい行を追加する
1行プラスして、時計を見て、最後の順番でプラスしたので、そう見えなくても、実際にはそうプラスしています
一度に1行だけ追加するのは面倒な作業ですが、代わりはありません.
方法.
INSERT INTO table_naem
値入力するデータ・セクションと入力するデータ値を指定します.
方法.
INSERT INTO table(column_name)
values
メソッド1はテーブルのすべてのデータに影響し、メソッド2は特定のカラムのデータに影響します.
departmentsテーブルを例と見なす場合
ここでdepartment idはnull値ではなく、4桁であってもよい
したがって、ここで新しいタイプの従業員を増やすには、形式に合致する必要があります.
INSERT INTO departments
values(300, 'Doeun', 101, 1800);
この形式で追加します.しかし、すべてのデータが追加されるわけではありません.1つ目は、カラムの整合性を検証する数値値です.文字を入力するとエラーが発生します.
ここでフォーマットが間違っている場合、manager idに1000007ビットを入れると、制約条件の整合性がエラーになります.
Insert文にnullを挿入する
:insert文は行末の上に挿入され、空の値がある場合は自動的に挿入され、null名で行を作成します.
1.intoセクションの使用:初期値が空の列は挿入されず、空の値が自動的に挿入されます.
insert into departments(department_id, department_name, manager_id)
values(310,'ITCENTER',100);
insert into departments
values(320,'ADMIN',null,null);
その他の概念
select sysdate
from dual;
これは、特定のイベントが発生したときにシステムの現在の日付を返すコードで、ログインメンバーのログ情報を記録します.dualという名前のテーブルにはdummy列があり、xという変数から構成されています.現業でよく使われ、データ外業に用いられる
DELET:テーブル行の削除
DELECT from departments
これにより、部門テーブルのすべてのローが削除されます.DELECT from departments
where department_id = 140;
このように書いてこそ、私の条件に合った行を取り除くことができます.そこで、お寺の後ろに私が望む条件を書いてもいいですよ!
UPDATE:表列単位の変更
UPDATE employees
set department_id = 70
where employee_id = 131;
テーブルを選択した後、変更する値を指定し、whereセクションで変更する値を指定します.whereセクションがない場合、すべてのテーブルのdepartment idが70になる可能性があります.
重要なコンセプト!!!
参照テーブルと参照テーブルの関係を把握する
例:
関係テーブルがあり、e.department id=d.department id
参照したサブテーブルdept idでinsert(4番103、部門番号10)を使用できますが、使用できません(4番104、部門番号40)
参照中のdeptテーブルのdept id列には存在しないためです.
これでupdateも同じで、部門番号10を30に変更することはできません.40に変更することはできません.
部門番号20を10に変更することもできます
ただし、部門番号は削除できます!=会社を辞める社員もいるからです.
しかし参照されるDepartmentsテーブルではどうなるのでしょうか?
dept idに10が追加されますか?これは不可能です.pkなので固有値に変更することはできませんが、新しい40のデータを追加することができます.
updateで10を20に変更するのは参照不可、10を40に変更するのも同様の理由で、30は現在参照不可、40に変更可能
deleteで10を削除しても参照できませんが、30は現在参照されていないので削除できます
ここでの結論は、参照している値にのみ適用されます.
参照しない値には受け入れられないし、参照される値にも自由なinsert、update!
これは、初心者開発者がよく犯すエラーです.もし私がデータベースの仕事をしている間に削除、変更、エラーが発生しなかったら、このように参照することが多いです.この構造をよく理解しなければならない.
読解の一般性
パラレル制御によるロックの停止
データベースで作業中、トレース・アイテムが進行中=コミットとロールバックが終了していない場合、誰かが私の作業を破壊しないように、一般的な読み取りでトランザクションを保護します.
たとえば、左、右のユーザーは他のユーザーです.
左ウィンドウ枠のユーザーは3500~20000の変換を行っています(赤)
トランザクションが発生しました.終了するにはcommitまたはrollbackが必要です.
現在ing中で、右ユーザーがDBにアクセスすると、その前の形式の結果が表示され、変更する場合はロックされ、カーソルのみが移動します
その後commitコマンドが発行されると、20000の値に変更されます.
rollbackを下げると3500の値が表示されます!
また、コードにはcommitコマンドを追加する必要があります.ずっとing状態であればシャットダウンし、他のプログラムにアクセスできません
Reference
この問題について(SQL理論(6)), 我々は、より多くの情報をここで見つけました https://velog.io/@doeunworld/SQL-이론6テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol