搜尋此網誌

顯示具有 SQL 標籤的文章。 顯示所有文章
顯示具有 SQL 標籤的文章。 顯示所有文章

2015年9月3日 星期四

CentOS7 - MariaDB 10 資料庫加密


MariaDB 從 10.1.3版開始支援table encryption,官方建議使用mariadb 10.1.4以上版本。

MariaDB Encryption 以table為最小的加密單位,據官方文件說啟用加密效能約下降10%,目前支援的 storage engine有InnoDB、XtraDB 和Aria。

雖然說它是加密的,但原理似乎跟Linux的LUKS硬碟加密差不多,在啟動MariaDB的時候需要有加密的Key檔,沒有Key檔就不能啟動,跟LUKS一樣都是在防止硬碟遭竊取時被打開來看,這樣說起來不是用硬碟加密就好了?(誤


環境準備

首先要先準備MariaDB官方的Yum Repository File :


目前(20150903)官方預設是使用Mariadb 10.0版,因此我們要將baseurl修改一下:

[root@jyc-blog ~]# cat /etc/yum.repos.d/mariadb.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

安裝

用Yum安裝:
[root@jyc-blog ~]# yum install MariaDB-server MariaDB-client

啟動

跟Mariadb 5版不同,10版的服務名稱為mysql,且要用chkconfig設定開機啟動:
[root@jyc-blog ~]# systemctl start mysql.service
[root@jyc-blog ~]# chkconfig mysql on

接下來做一些簡單的設定:
[root@jyc-blog ~]# mysql_secure_installation

產生Key檔

首先用openssl這個指令產生:
[root@jyc-blog ~]# openssl enc -aes-256-cbc -k YOURPASSWORD -P -md sha1
salt=A1A4F8EF1CC6D09E
key=5D56081334F9252ABD4D641AC640907317604A8B3CA92BC94FD6769C0F746628
iv =F39393DD5C735D2B0614356C413569D4

Key檔的格式為: <key-id>;<iv>;<key> 

預設MariaDB會找編號為"1"的Key,因此我們將這把Key的id指定為"1",並將Key檔儲存在/etc/my.cnf.d :
[root@jyc-blog ~]# cd /etc/my.cnf.d/
[root@jyc-blog my.cnf.d]# vim keys.txt

#add following
1;F39393DD5C735D2B0614356C413569D4;5D56081334F9252ABD4D641AC640907317604A8B3CA92BC94FD6769C0F746628


再來將keys.txt加密,後面MariaDB讀取的就是加密後的Key檔:
[root@jyc-blog my.cnf.d]# openssl enc -aes-256-cbc -md sha1 -k YOURPASSWORD -in keys.txt -out keys.enc


MariaDB支援兩種加密演算法: AES_CBC和AES_CTR,官方建議使用AES_CTR,但需要較新的openssl版本 。


修改mariadb設定檔

編輯/etc/my.cnf.d/server.conf :
[root@jyc-blog my.cnf.d]# vim server.conf

# line 12 add following
default-storage-engine = innodb

plugin_dir=/usr/lib64/mysql/plugin
plugin-load-add=file_key_management.so

file-key-management
file_key_management_encryption_algorithm=aes_cbc
file_key_management_filename = /etc/my.cnf.d/keys.enc
file_key_management_filekey = YOURPASSWORD 
innodb-encrypt-log=ON
innodb-encryption-threads=4
innodb-encrypt-tables=FORCE
innodb-default-encryption-key-id=1


說明:
file_key_management.so : MariaDB Encryption的Plugin。
innodb-encrypt-log : 官方建議啟用,似乎比較安全。
innodb-encrypt-tables : [ON | OFF | FORCE],若設定成FORCE,建立table時設定ENCRYPTED=NO會建立失敗。


設定完後儲存,再將MariaDB重新啟動:
[root@jyc-blog ~]# systemctl restart mysql.service

測試

檢查是否有載入file_key_management plugin:
[root@jyc-blog ~]# mysql -u root -p -e "SHOW PLUGINS SONAME 'file_key_management.so';"
Enter password:
+---------------------+--------+------------+------------------------+---------+
| Name                | Status | Type       | Library                | License |
+---------------------+--------+------------+------------------------+---------+
| file_key_management | ACTIVE | ENCRYPTION | file_key_management.so | GPL     |
+---------------------+--------+------------+------------------------+---------+


查看plugin的各個參數:
[root@jyc-blog ~]# mysql -u root -p -e "show variables like '%encrypt%';"
Enter password:
+------------------------------------------------------+------------+
| Variable_name                                                 | Value      |
+-------------------------------------------------------+-----------+
| aria_encrypt_tables                                           | OFF        |
| encrypt_tmp_disk_tables                                  | OFF        |
| encrypt_tmp_files                                              | ON         |
| file_key_management_encryption_algorithm  | aes_cbc   |
| innodb_default_encryption_key_id                  | 1              |
| innodb_encrypt_log                                          | ON          |
| innodb_encrypt_tables                                      | FORCE   |
| innodb_encryption_rotate_key_age                  | 1              |
| innodb_encryption_rotation_iops                     | 100          |
| innodb_encryption_threads                               | 4              |
+-------------------------------------------------------+------------+


建立資料庫和資料表: 
[root@jyc-blog ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 14
Server version: 10.1.6-MariaDB MariaDB Server

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> CREATE DATABASE encrypted;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> use encrypted;
Database changed
MariaDB [encrypted]> CREATE TABLE test (id INTEGER NOT NULL PRIMARY KEY, col1 VARCHAR(100)) ENGINE=Innodb ENCRYPTED=YES ENCRYPTION_KEY_ID=1;
Query OK, 0 rows affected (0.02 sec)


#查看table是不是有加密: 
MariaDB [encrypted]> SHOW TABLE STATUS ;
+-----------------------------------------------------------------+
| Create_options                                                               |
+-----------------------------------------------------------------+
| `ENCRYPTED`=YES `ENCRYPTION_KEY_ID`=1  |
+-----------------------------------------------------------------+

# 測試innodb-encrypt-tables=FORCE是否生效,將ENCRYPTED修改為NO:
MariaDB [encrypted]> ALTER test ENCRYPTED=NO;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'test ENCRYPTED=NO' at line 1












2011年5月6日 星期五

SQL基礎語法

★設定MySQL密碼<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#mysqladmin password "<em>newpassword</em>"<br />
★進入資料庫<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.使用PHPMyAdmin登入修改。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.使用Linux文字界面登入修改。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#mysql -u  root -p<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(-u:後面接帳號,-p:輸入密碼)<br />
★SHOW指令<br />
&nbsp;&nbsp;&nbsp;&nbsp;.顯示資料表<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> SHOW TABLES;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> SHOW TABLES FROM <em>database_name</em>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;.顯示資料欄位<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> SHOW COLUMNS FROM <em>table_name</em>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;.顯示InnoDB的狀態<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> SHOW ENGINE INNODB STATUS;<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<strong>一、資料定義語言(Data Definition Language,DDL)</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;.<strong>DDL的主要功能</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.新增、刪除、修改資料庫和資料表。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.主要語法<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CREATE:建立資料庫<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ALTER:修改資料庫<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DROP:刪除資料庫<br />
&nbsp;&nbsp;&nbsp;&nbsp;.<strong>CREATE</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1)建立資料庫<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> CREATE DATABASE <em>database_name</em>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(2)建立資料表<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> CREATE TABLE <em>table_name</em>(<em>column1_name column1_type column1_option, column2_name column2_type column2_option, ......, index</em>(<em>column_name</em>));<br />
<table align="center" border="1" style="width: 357px;"><tbody>
<tr>     <td align="center" colspan="4" valign="middle">Column_Type</td>   </tr>
<tr>     <td align="center" valign="middle" width="110">數字</td>     <td align="center" valign="middle" width="47">字元</td>     <td align="center" valign="middle" width="53">時間</td>     <td align="center" valign="middle" width="119">其它</td>   </tr>
<tr>     <td align="center" valign="middle">int (4 bytes)</td>     <td align="center" valign="middle">char</td>     <td align="center" valign="middle">date</td>     <td align="center" valign="middle">Boolean</td>   </tr>
<tr>     <td align="center" valign="middle">smalling (2 bytes)</td>     <td align="center" valign="middle">varchar</td>     <td align="center" valign="middle">datetime</td>     <td align="center" valign="middle"></td>   </tr>
<tr>     <td align="center" valign="middle">int8 (8 bytes)</td>     <td align="center" valign="middle">text</td>     <td align="center" valign="middle"></td>     <td align="center" valign="middle"></td>   </tr>
<tr>     <td align="center" valign="middle">float</td>     <td align="center" valign="middle"></td>     <td align="center" valign="middle"></td>     <td align="center" valign="middle"></td>   </tr>
<tr>     <td align="center" valign="middle">small float</td>     <td align="center" valign="middle"></td>     <td align="center" valign="middle"></td>     <td align="center" valign="middle"></td>   </tr>
<tr>     <td align="center" valign="middle">money</td>     <td align="center" valign="middle"></td>     <td align="center" valign="middle"></td>     <td align="center" valign="middle"></td>   </tr>
</tbody></table>
<br />
<center>
註:資料型態的說明可到<a href="http://publib.boulder.ibm.com/infocenter/idshelp/v10/topic/com.ibm.ddi.doc/ddi57.htm">此網站</a>查詢</center>
<br />
<table align="center" border="1"><tbody>
<tr>       <td align="center" colspan="2" valign="middle"><strong>Column_Option</strong></td>     </tr>
<tr>       <td width="214">NULL</td>       <td width="301">欄位可以沒有資料。</td>     </tr>
<tr>       <td>NOT NULL</td>       <td>欄位一定要有資料。</td>     </tr>
<tr>       <td>DEFAULT '<em>default</em>'</td>       <td>如果欄位沒資料就會使用default。</td>     </tr>
<tr>       <td align="center" colspan="2" valign="middle"><strong>Index</strong></td>     </tr>
<tr>       <td>aoto_increment</td>       <td>自動將編號加一。</td>     </tr>
<tr>       <td>PRIMARY KEY(<em>column_name</em>)</td>       <td>主索引鍵,每個資料表只能有一個主索引鍵。通常配合aoto_increment一起使用。</td>     </tr>
<tr>       <td>KEY(<em>column_name</em>)</td>       <td>索引鍵,每個資料表可以有多個索引鍵。</td>     </tr>
<tr>       <td>INDEX(<em>column_name</em>)</td>       <td>與KEY的功用相同。</td>     </tr>
<tr>       <td>UNIQUE</td>       <td>唯一值,同一欄位的其他資料不可以重複。</td>     </tr>
</tbody> </table>
<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;.<strong>ALTER</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1)修改資料表名稱<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> ALTER TABLE <em>old_table_name</em> RENAME <em>new_table_name</em>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(2)修改欄位名稱<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> ALTER TABLE <em>table_name</em> CHANGE <em>old_column_name new_column_name column_type</em>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(3)修改欄位型態<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> ALTER TABLE <em>table_name</em> MODIFY <em>column_name</em> <em>column_type</em> <em>column2_option</em>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(4)新增欄位、索引<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> ALTER TABLE <em>table_name</em> ADD <em>new_column_name</em> <em>new_column_type</em>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> ALTER TABLE <em>table_name</em> ADD <em>index</em>(<em>column_name</em>);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(5)刪除欄位、索引<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> ALTER TABLE <em>table_name</em> DROP <em>column_name</em>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> ALTER TABLE <em>table_name</em> DROP <em>index</em>(<em>column_name</em>);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(6)新增欄位時調整欄位順序<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> ALTER TABLE <em>table_name</em> ADD <em>new_column_name</em> <em>column_type</em> AFTER <em>old_column_name</em>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> ALTER TABLE <em>table_name</em> ADD <em>new_column_name</em> <em>column_type</em> FIRST;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(7)設置Foreign Key,以確保資料的一致性與完整性<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> ALTER TABLE <em>database_name</em> ENGINE=INNODB;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(8) 新增關聯限制 (CREATE和ALTER皆可使用)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> ALTER TABLE <em>database_name</em> ADD FOREIGN KEY(<em>column_name</em>) REFERENCES <em>database_name</em>(<em>column_name</em>) <em>trigger_condition</em> <em>action</em>;<br />
<table align="center" border="1"><tbody>
<tr>       <td align="center" colspan="2" valign="middle">Trigger_Condition(觸發條件)</td>     </tr>
<tr>       <td width="172">ON DELETE</td>       <td width="107">刪除資料時</td>     </tr>
<tr>       <td>ON UPDATE</td>       <td>更新資料時</td>     </tr>
</tbody> </table>
<table align="center" border="1"><tbody>
<tr>       <td align="center" colspan="2" valign="middle">Action(動作)</td>     </tr>
<tr>       <td width="171">CASCADE</td>       <td width="305">將所有關聯的欄位進行刪除或修改</td>     </tr>
<tr>       <td>NO ACTION</td>       <td>當欄位有其它的關聯時,會禁止父資料表的刪除或修改</td>     </tr>
<tr>       <td>RESTRICT</td>       <td>與NO ACTION的功用相同</td>     </tr>
<tr>       <td>SET NULL</td>       <td>將所有關聯的欄位設定成NULL</td>     </tr>
</tbody> </table>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(8) 刪除關聯限制<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> ALTER TABLE <em>database_name</em> DROP FOREIGN KEY`<em>database_name</em>`;<br />
&nbsp;&nbsp;&nbsp;&nbsp;.<strong>DROP</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1)刪除資料庫<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> DROP <em>database_name</em>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1)刪除資料表<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> DROP <em>table_name</em>;<br />
<br />
<br />
<br />
<strong>二、資料操縱語言(Data Manipulation Language,DCL)</strong><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.DDM的主要功能<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.操作資料庫資料內容的語法。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.主要語法<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INSERT:新增資料到資料表中。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UPDATE:修改資料表的資料。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DELETE:刪除資料表的資料。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SELECT:選取資料表的資料。<br />
&nbsp;&nbsp;&nbsp;&nbsp;.<strong>INSERT</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1)新增資料<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> INSERT INTO <em>database_name</em>(<em>column1_name, column2_name, ...</em>) VALUES ('column1_data', 'column2_data', '...');<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(2)資料庫閒置時才新增資料<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> INSERT LOW_PRIORITY <em>database_name</em>(<em>column1_name, column2_name, ...</em>) VALUES ('column1_data', 'column2_data', '...');<br />
&nbsp;&nbsp;&nbsp;&nbsp;.<strong>SELECT</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1)查詢資料表的所有欄位資料<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> SELECT * FROM <em>table_name</em>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(2)指定要查詢的欄位資料<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> SELECT <em>column1_name,column2_name,....</em> FROM <em>table_name</em>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(3)指定篩選條件查詢欄位資料<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> SELECT * FROM <em>table_name</em> WHERE <em>column_name</em> <em>filter</em>;<br />
<table align="center" border="1"><tbody>
<tr>       <td align="center" colspan="2" valign="middle">Filter</td>     </tr>
<tr>       <td width="200"><em>column_name</em> = '條件'</td>       <td width="248">EX:book_no = 'B001'</td>     </tr>
<tr>       <td><em>column_name</em> LIKE '條件'</td>       <td>EX:book_no = '1%'</td>     </tr>
<tr>       <td>條件1 AND 條件2</td>       <td>兩個條件都要符合才會顯示</td>     </tr>
<tr>       <td>條件1 OR 條件2</td>       <td>符合兩個條件的其中一個就會顯示</td>     </tr>
<tr>       <td align="center" colspan="2" valign="middle">其它</td>     </tr>
<tr>       <td align="center" valign="middle">%</td>       <td>萬用字元。EX:'B%'</td>     </tr>
<tr>       <td align="center" valign="middle">_</td>       <td>一個字元。EX:'B00_'</td>     </tr>
</tbody> </table>
&nbsp;&nbsp;&nbsp;&nbsp;.<strong>UPDATE</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1)更新欄位資料<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> UPDATE <em>table_name</em> SET <em>column_name</em>='<em>data</em>' WHERE <em>column_name</em>&nbsp;= '條件';<br />
&nbsp;&nbsp;&nbsp;&nbsp;.<strong>DELETE</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1)刪除資料<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> DELETE FROM <em>table_name</em> WHERE  <em>column_name</em>&nbsp;= '條件';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(2)刪除資料後釋放記憶空間<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> OPTIMIZE TABLE <em>table_name</em>;