9 SQLデータベースワーク実践6 - INSERT / UPDATE / DELETE / NULL / VIEW

3.5.1挿入データ
を挿入データモードの2種類

  • 挿入タプル
  • 挿入サブクエリの結果は
    、複数のタプルを挿入することができます

挿入タプル

INSERT INTO <表名> [(<属性列1>[,<属性列2 >…)]
VALUES (<常量1> [,<常量2>]… );

[実施例3.72]各部門のために、学生の平均年齢を見つけ、その結果をデータベースに格納されています

  CREATE  TABLE  Dept_age
  ( Sdept     CHAR(15)                     
  Avg_age SMALLINT);       

  INSERT
  INTO  Dept_age(Sdept,Avg_age)
  SELECT  Sdept,AVG(Sage)
  FROM     Student
  GROUP BY Sdept;

INSERTステートメントの実行時に自動的にRDBMSテーブルで定義された整合性ルールを破壊するタプル挿入確認

  • エンティティ整合性
  • 参照整合性
  • ユーザー定義の整合性

3.5.2の変更データ

   UPDATE  <表名>
    SET  <列名>=<表达式>[,<列名>=<表达式>]…
    [WHERE <条件>];

関数が
指定されたテーブルのタプルを満たしWHERE句の条件を修正する
特定のSET句を<式>に対応する属性列の代わりに
句が省略されている場合は、すべてのタプルは、テーブルを変更すると

修正の三種類

  • 1組の値を変更します
  • タプルの複数の値を変更
  • ストラップクエリ変更ステートメント

1.変更1組の値
[実施例3.73] 201人の215 121歳の学生22歳

 UPDATE  Student
 SET Sage=22
 WHERE  Sno=' 201215121 '; 

2. [変更タプルの複数の値
[例3.74]は学生が1歳ずつ増加します。

UPDATE Student
SET Sage= Sage+1;

3.テープのクエリ文修正
[例3.75]コンピュータサイエンス学部すべての学生の成績がゼロに。

UPDATE SC
SET     Grade=0
WHERE Sno  IN
   SELETE Sno
   FROM     Student
   WHERE  Sdept= 'CS' );

修正文の実装ではRDBMSが動作エンティティ整合性ルールを修正するかどうかをチェックするテーブルの整合性が定義されて弱体化させる
マスタコードは、ユーザ定義の整合性を変更することはできません

3.5.3削除データ

  DELETE
  FROM     <表名>
  [WHERE <条件>];

ファンクション
満足WHERE句の条件タプルことを指定したテーブルを削除する
句がで
削除されるタプルのデフォルトは、テーブルのすべてのタプルを削除することを約束し、テーブルはまだ辞書を定義しています

削除する方法の三種類

  • 1組の値を削除します。
  • 削除複数値タプル
  • ストラップクエリdelete文

1組の値を削除1.
[実施例3.76]学生レコード201215128の削除学生番号。

DELETE
 FROM Student
 WHERE Sno= 201215128 ';

2組の複数の値を削除し
、学生の入学のすべてのレコードを削除するには、[例3.77]を。

DELETE
FROM SC

3.ドロップステートメントストラップクエリ
[3.78例]科コンピュータサイエンスコースの記録はすべての学生を削除します。

DELETE
FROM  SC
WHERE  Sno  IN
(SELECT  Sno
FROM   Student
 WHERE  Sdept= 'CS') ;

タプルのリストに挿入されたSCは、学生番号が「201215126」である[実施例3.79]は、コース番号が「1」であり、結果はヌルです。

 INSERT INTO SC(Sno,Cno,Grade)
 VALUES('201215126 ','1',NULL);  

若しくは

 INSERT INTO SC(Sno,Cno)
 VALUES(' 201215126 ','1');         

[例3.80]高校生基づいて、Studentテーブル番号「201215200」の学生はNULL値に属します。

UPDATE Student
SET Sdept = NULL
WHERE Sno='201215200';

[例3.81]は、データが欠落している学生情報の学生テーブルから検索するには

SELECT  *
FROM Student
WHERE Sname IS NULL OR Ssex IS NULL OR Sage IS NULL OR Sdept IS NULL;

[例3.82]は失敗した選択科目1人の学生の数を見つけること。

SELECT Sno
FROM SC
WHERE Grade < 60 AND Cno='1';

[実施例3.83]障害の生徒が選択科目番号1及び不在学生を選択します。SELECTスノ

FROM SC
WHERE Grade < 60 AND Cno='1'
UNION
SELECT Sno
FROM SC
WHERE Grade IS NULL AND Cno='1'

若しくは

SELECT Sno
FROM SC
WHERE Cno='1' AND (Grade<60 OR Grade IS NULL);

ビューの確立

   CREATE  VIEW 
   <视图名>  [(<列名>  [,<列名>]…)]
   AS  <子查询>
  [WITH  CHECK  OPTION];

[例3.84]は、学生の情報ビューを確立しました。

    CREATE VIEW IS_Student
    AS 
    SELECT Sno,Sname,Sage
    FROM     Student
    WHERE  Sdept= 'IS';

[例3.85]施設情報、学生の視野と要件を変更し、まだその学生情報システムビューのみ挿入動作を保証します。

CREATE VIEW IS_Student
AS 
SELECT Sno,Sname,Sage
FROM  Student
WHERE  Sdept= 'IS'
WITH CHECK OPTION;

[実施例3.86]情報部門を確立するには、(番号、名前、結果を含む)学生番号1コースビューを登録しました。

CREATE VIEW IS_S1(Sno,Sname,Grade)
AS 
SELECT Student.Sno,Sname,Grade
FROM  Student,SC
WHERE  Sdept= 'IS' AND
Student.Sno=SC.Sno AND
SC.Cno= '1';

[実施例3.87] 90点以上を考慮して情報システム第1選択科目と生徒の成績を確立します。

CREATE VIEW IS_S2
AS
 SELECT Sno,Sname,Grade
 FROM  IS_S1
 WHERE  Grade>=90;

[例3.88]ビューの誕生の学生年の反射を定義します。

CREATE  VIEW BT_S(Sno,Sname,Sbirth)
AS 
SELECT Sno,Sname,2014-Sage
FROM  Student;

[実施例3.89]学習の生徒の数と平均スコアは、図のように定義されます

 CREATE  VIEW S_G(Sno,Gavg)
 AS  
 SELECT Sno,AVG(Grade)
 FROM  SC
 GROUP BY Sno;

[例3.90]はStudentテーブルには、すべての女の子のビューとして定義されている記録します

  CREATE VIEW F_Student(F_Sno,name,sex,age,dept)
  AS
  SELECT  *                   
  FROM  Student
  WHERE Ssex=‘女’;
 

[実施例3.91]および削除ビューBT_S IS_S1

DROP VIEW BT_S;	/*成功执行*/
DROP VIEW IS_S1;	/*拒绝执行*/
公開された11元の記事 ウォンの賞賛6 ビュー2707

おすすめ

転載: blog.csdn.net/lrx359641708/article/details/105179590
おすすめ