Board logo

標題: 9-1-4 Create Select 新增資料表 [打印本頁]

作者: 小誌    時間: 2011-4-21 19:04     標題: 9-1-4 Create Select 新增資料表

9-1-4   Create Select 新增資料表
如何將篩選出來的資料錄存放到一個新的資料表內(該資料表尚未存在於資料庫中)?使用Insert Into指令是鐵定不行的,因為Insert Into指令只能將資料存入「已經」存在的資料表內。如果要將資料存入一個尚未存在的資料表中,我們可以使用Create Select指令,當我們使用Create Select指令將資料存入資料表之前,Create Select指令會先在資料庫中建立一個新的資料表後,再將資料存放進去。

Create Select指令有三種用法:
作者: 小誌    時間: 2011-4-21 19:06

新增資料表並新增一筆資料錄
新增資料錄
  1. Creat Table新資料表名Select ‘欄位值’ As ‘欄位名’
複製代碼
例如:新增一個名為「justtest」的資料表,並於資料表內新增一筆欄位名稱為「姓名」,欄位值為「李明和」、欄位名稱為「mail」,欄位值為「[email protected]」的資料錄,則其指令敘述如下:
  1. Create Table justtest select '李明和' As 姓名,'[email protected]' As mail
複製代碼
執行上列指令敘述後,就會在資料庫中新增一個「justtest」資料表,資料表內並存有一筆資料:
[attach]5696[/attach]
圖9-18   指令執行結果。

ex09_06.php
  1. <?
  2.     $conn = mysql_connect("localhost", "root", "12345a");
  3.     if(mysql_select_db("STUDENTS", $conn))
  4.      {
  5.       //指定提取資料的校對字元表
  6.       mysql_query("set character set big5");
  7.       //資料庫存在,建立SQL命令字串
  8.       $SQL="CREATE TABLE justtest
  9.                select '李明和' As 姓名,'[email protected]' As mail";
  10.       //將回傳結果存放於變數中
  11.       $datalist=mysql_query($SQL);
  12.      }
  13.     else
  14.      {
  15.       echo "資料庫不存在";
  16.      }
  17. ?>
複製代碼
注意:如果指定新增的資料表名稱,是已經存在於資料庫的資料表名稱,則Create Select指令敘述就會執行失敗,例如:第一次執行範例ex09_06.php後,「justtest」是一個存在於資料庫內的資料表,而我們再次使用Create Select指令敘述時,卻又將新增的資料表名稱定為「justtest」,則Create Select指令敘述就會執行失敗。
作者: 小誌    時間: 2011-4-21 19:07

複製資料表
將已經存在的資料表複製一份,並將資料存入新建的資料表內:

複製資料表
  1. Create Table新資料表名 Select * From 已存在資料表名
複製代碼
例如:為「transcript」資料表建立一個備分資料表「transcript_bak」:
ex09_07.php
  1. <?
  2.     $conn = mysql_connect("localhost", "root", "12345a");
  3.     if(mysql_select_db("STUDENTS", $conn))
  4.      {
  5.       //指定提取資料的校對字元表
  6.       mysql_query("set character set big5");
  7.       //資料庫存在,建立SQL命令字串
  8.       $SQL="Create Table transcript_bak Select * From transcript";
  9.       //將回傳結果存放於變數中
  10.       $datalist=mysql_query($SQL);
  11.      }
  12.     else
  13.      {
  14.       echo "資料庫不存在";
  15.      }
  16. ?>
複製代碼

作者: 小誌    時間: 2011-4-21 19:08

篩選資料並另存於新資料表
這是最常用的一種Create Select指令敘述,就是直接篩選已存在的資料表資料,然後將篩選後的資料另外建立成一個新的資料表:

新增資料表
  1. Create Table新資料表名 Select *From 資料表 Where 條件式
複製代碼
例如:篩選「transcript」資料表內國文成績大於95分的同學資料,存入新建的「bigthen95」資料表內:
ex09_08.php
  1. <?
  2.     $conn = mysql_connect("localhost", "root", "12345a");
  3.     if(mysql_select_db("STUDENTS", $conn))
  4.      {
  5.       //指定提取資料的校對字元表
  6.       mysql_query("set character set big5");
  7.       //資料庫存在,建立SQL命令字串
  8.       $SQL="Create Table bigthen95
  9. Select * From transcript where 國文>95";
  10.       //將回傳結果存放於變數中
  11.       $datalist=mysql_query($SQL);
  12.      }
  13.     else
  14.      {
  15.       echo "資料庫不存在";
  16.      }
  17. ?>
複製代碼
[attach]5697[/attach]
圖9-19   另存新資料表,範例ex09_08.php。




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)