#mysqladmin password "<em>newpassword</em>"<br />
★進入資料庫<br />
1.使用PHPMyAdmin登入修改。<br />
2.使用Linux文字界面登入修改。<br />
#mysql -u root -p<br />
(-u:後面接帳號,-p:輸入密碼)<br />
★SHOW指令<br />
.顯示資料表<br />
> SHOW TABLES;<br />
> SHOW TABLES FROM <em>database_name</em>;<br />
.顯示資料欄位<br />
> SHOW COLUMNS FROM <em>table_name</em>;<br />
.顯示InnoDB的狀態<br />
> SHOW ENGINE INNODB STATUS;<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<strong>一、資料定義語言(Data Definition Language,DDL)</strong><br />
.<strong>DDL的主要功能</strong><br />
1.新增、刪除、修改資料庫和資料表。<br />
2.主要語法<br />
CREATE:建立資料庫<br />
ALTER:修改資料庫<br />
DROP:刪除資料庫<br />
.<strong>CREATE</strong><br />
(1)建立資料庫<br />
> CREATE DATABASE <em>database_name</em>;<br />
(2)建立資料表<br />
> 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 />
.<strong>ALTER</strong><br />
(1)修改資料表名稱<br />
> ALTER TABLE <em>old_table_name</em> RENAME <em>new_table_name</em>;<br />
(2)修改欄位名稱<br />
> ALTER TABLE <em>table_name</em> CHANGE <em>old_column_name new_column_name column_type</em>;<br />
(3)修改欄位型態<br />
> ALTER TABLE <em>table_name</em> MODIFY <em>column_name</em> <em>column_type</em> <em>column2_option</em>;<br />
(4)新增欄位、索引<br />
> ALTER TABLE <em>table_name</em> ADD <em>new_column_name</em> <em>new_column_type</em>;<br />
> ALTER TABLE <em>table_name</em> ADD <em>index</em>(<em>column_name</em>);<br />
(5)刪除欄位、索引<br />
> ALTER TABLE <em>table_name</em> DROP <em>column_name</em>;<br />
> ALTER TABLE <em>table_name</em> DROP <em>index</em>(<em>column_name</em>);<br />
(6)新增欄位時調整欄位順序<br />
> ALTER TABLE <em>table_name</em> ADD <em>new_column_name</em> <em>column_type</em> AFTER <em>old_column_name</em>;<br />
> ALTER TABLE <em>table_name</em> ADD <em>new_column_name</em> <em>column_type</em> FIRST;<br />
(7)設置Foreign Key,以確保資料的一致性與完整性<br />
> ALTER TABLE <em>database_name</em> ENGINE=INNODB;<br />
(8) 新增關聯限制 (CREATE和ALTER皆可使用)<br />
> 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>
(8) 刪除關聯限制<br />
> ALTER TABLE <em>database_name</em> DROP FOREIGN KEY`<em>database_name</em>`;<br />
.<strong>DROP</strong><br />
(1)刪除資料庫<br />
> DROP <em>database_name</em>;<br />
(1)刪除資料表<br />
> 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 />
.DDM的主要功能<br />
1.操作資料庫資料內容的語法。<br />
2.主要語法<br />
INSERT:新增資料到資料表中。<br />
UPDATE:修改資料表的資料。<br />
DELETE:刪除資料表的資料。<br />
SELECT:選取資料表的資料。<br />
.<strong>INSERT</strong><br />
(1)新增資料<br />
> INSERT INTO <em>database_name</em>(<em>column1_name, column2_name, ...</em>) VALUES ('column1_data', 'column2_data', '...');<br />
(2)資料庫閒置時才新增資料<br />
> INSERT LOW_PRIORITY <em>database_name</em>(<em>column1_name, column2_name, ...</em>) VALUES ('column1_data', 'column2_data', '...');<br />
.<strong>SELECT</strong><br />
(1)查詢資料表的所有欄位資料<br />
> SELECT * FROM <em>table_name</em>;<br />
(2)指定要查詢的欄位資料<br />
> SELECT <em>column1_name,column2_name,....</em> FROM <em>table_name</em>;<br />
(3)指定篩選條件查詢欄位資料<br />
> 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>
.<strong>UPDATE</strong><br />
(1)更新欄位資料<br />
> UPDATE <em>table_name</em> SET <em>column_name</em>='<em>data</em>' WHERE <em>column_name</em> = '條件';<br />
.<strong>DELETE</strong><br />
(1)刪除資料<br />
> DELETE FROM <em>table_name</em> WHERE <em>column_name</em> = '條件';<br />
(2)刪除資料後釋放記憶空間<br />
> OPTIMIZE TABLE <em>table_name</em>;