在mysql中數據保存,查詢,刪除都很簡單,如插入數據使用insert into,查詢數據使用select,刪除數據使用delete這里我給大家介紹一下.
MySQL數據插入
將數據插入到MySQL表,需要使用SQL INSERT INTO命令,可以將數據插入到MySQL表使用mysql>提示符下或使用任何腳本,如PHP。
語法:下面是通用的SQL語法INSERT INTO命令來插入數據到MySQL表,代碼如下:
- INSERT INTO table_name (field1, field2,...fieldN) VALUES (value1, value2,...valueN );
要插入的字符串數據類型,所有的值需要雙或單引號,例如: - “value”,從命令提示符中插入數據,這將使用SQL INSERT INTO命令將數據插入到MySQL表tutorials_tbl.
實例,下面的例子將創建3條記錄到tutorials_tbl表,代碼如下:
- root@host# mysql -u root -p password;
- Enter password:*******
- mysql> use TUTORIALS;
- Database changed
- mysql> INSERT INTO tutorials_tbl
- ->(tutorial_title, tutorial_author, submission_date)
- ->VALUES
- ->("Learn PHP", "John Poul", NOW());
- Query OK, 1 row affected (0.01 sec)
- mysql> INSERT INTO tutorials_tbl
- ->(tutorial_title, tutorial_author, submission_date)
- ->VALUES --Vevb.com
- ->("Learn MySQL", "Abdul S", NOW());
- Query OK, 1 row affected (0.01 sec)
- mysql> INSERT INTO tutorials_tbl
- ->(tutorial_title, tutorial_author, submission_date)
- ->VALUES
- ->("JAVA Tutorial", "Sanjay", '2007-05-06');
- Query OK, 1 row affected (0.01 sec)
- mysql>
注意:所有的箭頭符號( - >)是不屬于他們表示一個新行的SQL命令,他們會自動創建MySQL提示符下,同時按回車鍵沒有在每一行命令結束的分號.
在上面的例子中,我們沒有提供tutorial_id因為創建表時,為此字段定義一個AUTO_INCREMENT選項。因此MySQL負責自動插入這些ID。這里NOW()是一個MySQL函數返回當前的日期和時間。
使用PHP語言插入數據:可以使用相同SQL INSERT INTO命令PHP函數mysql_query()來將數據插入到MySQL表.
例子,這個例子將用戶從三個參數,并把它們插入到MySQL表,代碼如下:
- <html>
- <head>
- <title>Add New Record in MySQL Database -by /mysql</title>
- </head>
- <body>
- <?php
- if(isset($_POST['add']))
- {
- $dbhost = 'localhost:3036';
- $dbuser = 'root';
- $dbpass = 'rootpassword';
- $conn = mysql_connect($dbhost, $dbuser, $dbpass);
- if(! $conn )
- {
- die('Could not connect: ' . mysql_error());
- }
- if(! get_magic_quotes_gpc() )
- {
- $tutorial_title = addslashes ($_POST['tutorial_title']);
- $tutorial_author = addslashes ($_POST['tutorial_author']);
- }
- else
- {
- $tutorial_title = $_POST['tutorial_title'];
- $tutorial_author = $_POST['tutorial_author'];
- }
- $submission_date = $_POST['submission_date'];
- $sql = "INSERT INTO tutorials_tbl ".
- "(tutorial_title,tutorial_author, submission_date) ".
- "VALUES ".
- "('$tutorial_title','$tutorial_author','$submission_date')";
- mysql_select_db('TUTORIALS');
- $retval = mysql_query( $sql, $conn );
- if(! $retval )
- {
- die('Could not enter data: ' . mysql_error());
- }
- echo "Entered data successfullyn";
- mysql_close($conn);
- }
- else
- {
- ?>
- <form method="post" action="<?php $_PHP_SELF ?>">
- <table width="600" border="0" cellspacing="1" cellpadding="2">
- <tr>
- <td width="250">Tutorial Title</td>
- <td>
- <input name="tutorial_title" type="text" id="tutorial_title">
- </td>
- </tr>
- <tr>
- <td width="250">Tutorial Author</td>
- <td>
- <input name="tutorial_author" type="text" id="tutorial_author">
- </td>
- </tr>
- <tr>
- <td width="250">Submission Date [ yyyy-mm-dd ]</td>
- <td>
- <input name="submission_date" type="text" id="submission_date">
- </td>
- </tr>
- <tr>
- <td width="250"> </td>
- <td> </td>
- </tr>
- <tr>
- <td width="250"> </td>
- <td>
- <input name="add" type="submit" id="add" value="Add Tutorial">
- </td>
- </tr>
- </table>
- </form>
- <?php
- }
- ?>
- </body>
- </html>
數據插入其最好的做法是使用函數get_magic_quotes_gpc()來檢查當前的配置設置或對魔術函數的引用。如果函數返回false,則使用函數addslashes()添加斜線引號之前。
MySQL數據查詢:SQL SELECT命令被用來獲取數據從MySQL數據庫,可以使用此命令在mysql>提示符下或使用腳本,如PHP.
語法,下面是通用的SQL SELECT命令的語法來從MySQL表提取數據,代碼如下:
- SELECT field1, field2,...fieldN table_name1, table_name2...
- [WHERE Clause]
- [OFFSET M ][LIMIT N]
可以使用一個或多個以逗號分隔的表,包括各種使用WHERE子句條件,但是WHERE子句的SELECT命令是一個可選部分.
可以在一個單一的SELECT命令讀取一個或多個字段,可以指定星號(*)的字段的地方,在這種情況下,SELECT將返回所有的字段,可以使用WHERE子句指定任何條件,可以指定偏移用SELECT將開始返回記錄的偏移量,默認情況下,偏移量為0,可以限制返回的使用LIMIT屬性的數量.
從命令提示符獲取數據:這將使用SQL SELECT命令來從MySQL表tutorials_tbl獲取數據.
例子,下面的例子將返回所有記錄tutorials_tbl表,代碼如下:
- root@host# mysql -u root -p password;
- Enter password:*******
- mysql> use TUTORIALS;
- Database changed
- mysql> SELECT * from tutorials_tbl
- +-------------+----------------+-----------------+-----------------+
- | tutorial_id | tutorial_title | tutorial_author | submission_date |
- +-------------+----------------+-----------------+-----------------+
- | 1 | Learn PHP | John Poul | 2007-05-21 |
- | 2 | Learn MySQL | Abdul S | 2007-05-21 |
- | 3 | JAVA Tutorial | Sanjay | 2007-05-21 |
- +-------------+----------------+-----------------+-----------------+
- 3 rows in set (0.01 sec)
- mysql>
使用PHP腳本獲取數據:您可以使用相同的SQL SELECT命令進入PHP函數mysql_query()。這個函數是用來執行SQL命令后,另一個PHP函數mysql_fetch_array()可以用來獲取所有選定的數據,這個函數返回的行作為一個關聯數組/數字數組或兩者,如果沒有更多的行這個函數返回FALSE。
下面是一個簡單的例子,獲取記錄tutorials_tbl表.
例子,試試下面的例子顯示tutorials_tbl表的所有記錄,代碼如下:
- <?php
- $dbhost = 'localhost:3036';
- $dbuser = 'root';
- $dbpass = 'rootpassword';
- $conn = mysql_connect($dbhost, $dbuser, $dbpass);
- if(! $conn )
- {
- die('Could not connect: ' . mysql_error());
- }
- $sql = 'SELECT tutorial_id, tutorial_title,
- tutorial_author, submission_date
- FROM tutorials_tbl';
- mysql_select_db('TUTORIALS');
- $retval = mysql_query( $sql, $conn );
- if(! $retval )
- {
- die('Could not get data: ' . mysql_error());
- }
- while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
- {
- echo "Tutorial ID :{$row['tutorial_id']} <br> ".
- "Title: {$row['tutorial_title']} <br> ".
- "Author: {$row['tutorial_author']} <br> ".
- "Submission Date : {$row['submission_date']} <br> ".
- "--------------------------------<br>";
- }
- echo "Fetched data successfullyn";
- mysql_close($conn);
- ?>
這些行的內容被分配到變量$row,行中的值,然后打印.
注:一定要記住,當要插入到一個字符串數組的值直接用花括號.
在上面的例子中不斷MYSQL_ASSOC作為PHP函數mysql_fetch_array()第二個參數,以便它返回一個關聯數組的行為,一個關聯數組,可以使用他們的名字,而不是使用索引訪問字段.
PHP提供了另一種稱為mysql_fetch_assoc()函數也返回該行作為關聯數組。
實例,試試下面的例子顯示從tutorial_tbl表的所有記錄,使用mysql_fetch_assoc()函數,代碼如下:
- <?php
- $dbhost = 'localhost:3036';
- $dbuser = 'root';
- $dbpass = 'rootpassword';
- $conn = mysql_connect($dbhost, $dbuser, $dbpass);
- if(! $conn )
- {
- die('Could not connect: ' . mysql_error());
- }
- $sql = 'SELECT tutorial_id, tutorial_title,
- tutorial_author, submission_date
- FROM tutorials_tbl';
- mysql_select_db('TUTORIALS');
- $retval = mysql_query( $sql, $conn );
- if(! $retval )
- {
- die('Could not get data: ' . mysql_error());
- }
- while($row = mysql_fetch_assoc($retval))
- {
- echo "Tutorial ID :{$row['tutorial_id']} <br> ".
- "Title: {$row['tutorial_title']} <br> ".
- "Author: {$row['tutorial_author']} <br> ".
- "Submission Date : {$row['submission_date']} <br> ".
- "--------------------------------<br>";
- }
- echo "Fetched data successfullyn";
- mysql_close($conn);
- ?>
也可以使用常量MYSQL_NUM,作為第二個參數的PHP函數mysql_fetch_array(),這將導致該函數返回一個數字索引的數組.
實例,試試下面的例子顯示使用MYSQL_NUM參數tutorials_tbl表中的所有記錄,代碼如下:
- <?php
- $dbhost = 'localhost:3036';
- $dbuser = 'root';
- $dbpass = 'rootpassword';
- $conn = mysql_connect($dbhost, $dbuser, $dbpass);
- if(! $conn )
- {
- die('Could not connect: ' . mysql_error());
- }
- $sql = 'SELECT tutorial_id, tutorial_title,
- tutorial_author, submission_date
- FROM tutorials_tbl';
- mysql_select_db('TUTORIALS');
- $retval = mysql_query( $sql, $conn );
- if(! $retval )
- {
- die('Could not get data: ' . mysql_error());
- }
- while($row = mysql_fetch_array($retval, MYSQL_NUM))
- {
- echo "Tutorial ID :{$row[0]} <br> ".
- "Title: {$row[1]} <br> ".
- "Author: {$row[2]} <br> ".
- "Submission Date : {$row[3]} <br> ".
- "--------------------------------<br>";
- }
- echo "Fetched data successfullyn";
- mysql_close($conn);
- ?>
所有上述三個例子,將產生相同的結果.
釋放內存:它是一種很好的做法,在每一個SELECT語句釋放游標內存,這可以通過使用PHP函數了mysql_free_result(),下面的例子來說明它是如何被使用的.
實例,試試下面的例子,代碼如下:
- <?php
- $dbhost = 'localhost:3036';
- $dbuser = 'root';
- $dbpass = 'rootpassword';
- $conn = mysql_connect($dbhost, $dbuser, $dbpass);
- if(! $conn )
- {
- die('Could not connect: ' . mysql_error());
- }
- $sql = 'SELECT tutorial_id, tutorial_title,
- tutorial_author, submission_date
- FROM tutorials_tbl';
- mysql_select_db('TUTORIALS');
- $retval = mysql_query( $sql, $conn );
- if(! $retval )
- {
- die('Could not get data: ' . mysql_error());
- }
- while($row = mysql_fetch_array($retval, MYSQL_NUM))
- {
- echo "Tutorial ID :{$row[0]} <br> ".
- "Title: {$row[1]} <br> ".
- "Author: {$row[2]} <br> ".
- "Submission Date : {$row[3]} <br> ".
- "--------------------------------<br>";
- }
- mysql_free_result($retval);
- echo "Fetched data successfullyn";
- mysql_close($conn);
- ?>
在獲取數據的同時可以編寫復雜的SQL,只要喜歡。程序將保持與上述相同
MySQL數據刪除:如果想從任何MySQL表中刪除一條記錄,那么可以使用SQL命令DELETE FROM。可以使用此命令在mysql>提示符下,或其它腳本,如PHP。
語法,下面是通用的SQL語法的DELETE命令刪除數據從一個MySQL表,代碼如下:
DELETE FROM table_name [WHERE Clause]
如果沒有指定,那么WHERE子句從給定的MySQL表的所有記錄都將被刪除,可以使用WHERE子句指定條件,您可以將表中記錄一次性刪除,當你要刪除選定的表中的行,WHERE子句是非常有用。
從命令提示符刪除數據:這將使用WHERE子句SQL DELETE命令來刪除選定的數據MySQL表tutorials_tbl.
例子,下面的例子將刪除一條tutorial_tbl表中的tutorial_id為3的記錄,代碼如下:
- root@host# mysql -u root -p password;
- Enter password:*******
- mysql> use TUTORIALS;
- Database changed
- mysql> DELETE FROM tutorials_tbl WHERE tutorial_id=3;
- Query OK, 1 row affected (0.23 sec)
- mysql>
使用PHP腳本刪除數據:可以使用SQL DELETE命令,帶有或不帶WHERE子句PHP函數請求mysql_query(),此功能將執行和在mysql>提示符下執行的SQL命令類似。
例子,試試下面的例子中,將刪除tutorial_tb表中一條tutorial_id=3的記錄,代碼如下:
- <?php
- $dbhost = 'localhost:3036';
- $dbuser = 'root';
- $dbpass = 'rootpassword';
- $conn = mysql_connect($dbhost, $dbuser, $dbpass);
- if(! $conn )
- {
- die('Could not connect: ' . mysql_error());
- }
- $sql = 'DELETE FROM tutorials_tbl
- WHERE tutorial_id=3';
- //by /mysql
- mysql_select_db('TUTORIALS');
- $retval = mysql_query( $sql, $conn );
- if(! $retval )
- {
- die('Could not delete data: ' . mysql_error());
- }
- echo "Deleted data successfullyn";
- mysql_close($conn);
- ?>
新聞熱點
疑難解答