熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> MySQL >> 正文

MySql數據庫數據更新操作其高級應用

2013-11-23 21:02:43  來源: MySQL 

  數據更新操作有向表中添加數據修改表中的數據和刪除表中的數據

  用來演示的數據表用studentcoursesc三個數據表數據表具體內容在PHP和MySql數據庫如何獲取每個分類的記錄的總數

  插入數據

  插入元組(一條數據)

  格式為

  INSERT INTO <表名>[(<屬性列>[<屬性列>]…)]

  VALUES(<常量>[<常量>]…);

  INTO子句中沒有出現的屬性列新元組將取空值

  但表定義說明了NOT NULL屬性的列不能取空值否則會出錯

  INTO子句沒有指明任何列名則新元組必須在每個屬性上均有值

  例子

  [sql]

  INSERT INTO Student( Sno Sname Ssex Sdept Sage )

  VALUES (

   陳東 IS

  )

  當插入對應表中所有列的數據時可以省略列名不寫

  所以插入語句也可以這樣寫

  [sql]

  INSERT INTO Student

  VALUES (

   陳西 IS

  )

  插入多條數據

  插入多行數據時與插入一條數據類似不過每一條數據都需要用括號擴起來並用逗號分隔

  當插入對應數據表中所有列的數據的時候列名可以省略不寫

  例子

  [sql]

  INSERT INTO Student

  VALUES (

   卡卡西 CS

  ) (

   CS

  ) (

   帶土 CS

  )

  插入子查詢結果

  子查詢可以嵌套在INSERT語句中用以生成要插入的批量數據

  格式為

  INSERT

  INTO <表名> [(<屬性列><屬性列><屬性列>)]

  子查詢;

  例子

  要求對每個系求學生的平均成績並把結果存入數據庫中

  首先建立數據庫

  [sql]

  CREATE TABLE Dept_age

  (Sdept char()Avg_age smallint);

  然後對student表按系分組並求每個系的平均年齡再把系名和平均年齡存入新表

  [sql]

  INSERT INTO dept_age( Sdept Avg_age )

  SELECT Sdept AVG( Sage )

  FROM Student

  GROUP BY Sdept

  插入結果

  例子

  要求統計每個系的人數並把結果存入數據庫中

  首先建立存放查詢結果的數據表

  [sql]

  CREATE TABLE Sdept_num

  (Sdept char()

  Snum int);

  然後對student表按系分組並求每個系統的總人數再把系名和總人數存入新表

  [sql]

  INSERT INTO sdept_num( Sdept Snum )

  SELECT Sdept COUNT( Sno )

  FROM student

  GROUP BY Sdept

  插入結果

  修改數據

  修改數據又稱為更新操作其語句的一般格式為

  UPDATE <表名>

  SET <列名>=<表達式>[ <列名>=<表達式>]…

  [WHERE <條件>];

  修改某一個元組的值

  將學生卡卡西的年齡修改為

  [sql]

  UPDATE Student SET Sage = WHERE Sname = 卡卡西

  修改多個元組的值

  將所有學生的年齡增加

  [sql]

  UPDATE Student SET Sage = Sage +

  帶子查詢的修改語句

  子查詢也可以嵌套在UPDATE語句中用以構造修改的條件

  將計算機科學系全體學生的成績置零

  [sql]

  UPDATE SC SET Grade = WHERE EXISTS (

  SELECT *

  FROM Student

  WHERE SCSno = StudentSno

  AND StudentSdept = IS

  )

  刪除數據

  格式

  DELETE

  FROM <表名>

  [WHERE <條件>];

  刪除某一個元組的值

  刪除卡卡西同學的數據

  [sql]

  DELETE FROM Student WHERE Sname = 卡卡西

  刪除多個元組的值

  刪除所有學生的選課記錄(也就是說要清空SC表但是不刪除)

  [sql]

  DELETE FROM SC;

  清空表是非常危險的操作一定要確定裡面的數據沒用了在清空

  帶子查詢的刪除語句

  子查詢同樣可以嵌套在DELETE語句中用以構造執行刪除操作的條件

  刪除計算機科學系所有學生的選課記錄

  [sql]

  DELETE FROM SC WHERE EXISTS (

  SELECT *

  FROM Student

  WHERE SCSno = StudentSno

  AND StudentSdept = IS

  )


From:http://tw.wingwit.com/Article/program/MySQL/201311/29493.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.