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桁であってもよい
したがって、ここで新しいタイプの従業員を増やすには、形式に合致する必要があります.
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);
  • valuesセクションにnullを追加して宣言します.現在の業界でよく使用されています.
    insert into departments
    values(320,'ADMIN',null,null);
  • *注意:nullを追加する場合は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状態であればシャットダウンし、他のプログラムにアクセスできません