[1031]XOOPS佈景設計
<!DOCTYPE html>
<html lang="zh-TW">
<head>
<meta charset="utf-8">
<title>HTML5練習</title>
<!-- 頁內樣式表設定 -->
<style type="text/css">
body {
background:rgb(245,245,245);
font-family:微軟正黑體;
margin:0px;
}
h1 {
font-weight:bold;
font-size:36px;
color: #233F69;
text-shadow:2px 2px 4px gray;
border-left:4px solid red;
padding-left: 10px;
line-height: 1em;
}
h2 {
font-size:24px;
color:black;
text-shadow:1px 1px 3px gray;
}
p {
font-size:12pt;
line-height:1.8; /* 行高 */
}
#wrap{
margin:0px;
}
#container{
width:980px;
margin:10px auto;
}
#header{
}
#main{
background:rgb(255,255,255);
/* overflow: auto; 請自行拿掉註解*/
}
#sidebar_left{
width: 200px;
float:left;
}
#content{
float:left;
width:518px;
padding:30px;
border-left: 1px solid #cfcfcf;
border-right: 1px solid #cfcfcf;
}
#sidebar{
float:left;
width: 200px;
}
#footer{
clear: both;
}
ul.nav{
background-color: #EDEDED;
height:40px; /* 讓工具列不要太扁 */
line-height: 40px; /* 讓按鍵垂直置中 */
padding: 0px; /* 取消工具列左邊的空白 */
}
ul.nav li{
display: inline; /* 讓清單變成一橫列 */
list-style-type:none; /* 把項目符號取消 */
}
ul.nav li > a{ /* 正常狀態的連結按鈕 */
color:black; /* 黑色 */
text-decoration: none; /* 去除底線 */
padding: 10px 20px; /* 和隔壁按鈕區隔開來 */
}
ul.nav li > a:hover{ /* 滑鼠移到連結按鈕上時 */
color:white; /* 文字變白色 */
background-color: #B31C1C; /* 背景變紅色 */
}
</style>
</head>
<body>
<div id="wrap">
<div id="container">
<div id="header">
<a name="tool"></a>
<ul class="nav">
<li><a href="#p1">三國演義</a></li>
<li><a href="#p2">MySQL與SQL</a></li>
<li><a href="#p3">OCP MySQL 5 Developer</a></li>
<li><a href="#p4">數學運算</a></li>
</ul>
</div>
<div id="main">
<div id="sidebar_left">
<h1>左側邊欄</h1>
</div>
<div id="content">
<img src="images/MySQLTutorial.jpg" alt="logo圖" title="logo圖" style="width:100%;">
<h1>MySQL 超新手入門(1)重新開始</h1>
<div>
<h2><a name="p1">三國演義</a></h2>
<a href="#tool">回工具列</a>
<p>三國演義是一部在華人世界非常普及的歷史小說,是由羅貫中根據元朝的三國志平話改編,他以東漢末年魏、蜀、吳三國鬥爭為主題,收集歷史資料和說書人的故事,成為這一部大家都非常熟悉的故事。或許我們現在覺得這些歷史已經跟我們沒什麼關係了,不過大家都知道關公過五關斬六將,劉備三顧茅蘆,諸葛孔明的空城記。這些老掉牙的故事,總是不斷的出現在電影、電視劇和各種平台的遊戲,一代又一代的傳承下去。這應該是因為三國演義的確是一個好故事,很多很精采的好故事,就像美國暢銷作家史帝芬金所說的,一個好故事是不會寂寞的。</p>
<p>三國演義的普及,讓人認為裡面講的故事其實就是真的歷史,羅貫中在編這本書的時候,大概是為了讓它可以比較戲劇化一些,採用了很多當時說書人的內容,這些內容是在民間流傳或由說書人編造的,跟歷史並不一樣。例如大家熟悉的關公斬華雄,在三國演義中是一段非常的精采故事,作者使用很短的內容讓關雲長的豪勇,簡單、清楚而且非常震憾的呈現給讀者。不過根據史料的考證,其實華雄的頭是被孫堅砍掉的。這也是為什麼清朝的時候就有人評論三國演義是「七實三虛,惑亂觀者」。</p>
<p>提倡白話文的胡適之,對三國演義的批評更是激烈,他認為三國演義把諸葛亮的足智多謀寫成一個呼風喚雨的妖道;張飛在歷史上其實是一個很有君子風度的武將,可是卻被寫成粗魯的莽夫。雖然有很多精采的故事,可是沒有經過更好的整理,所以三國演義在華人古典文學上的地位,一直不如紅樓夢(註),甚至連水滸傳都比不上。</p>
</div>
<div>
<h2><a name="p2">MySQL與SQL</a></h2>
<a href="#tool">回工具列</a>
<p><a href="files/南台科大.docx">MySQL</a>在資訊應用的角色,好像跟三國演義這本著作有點類似。MySQL是目前最普及的資料庫伺服器,可是大家也最不在意它,可能因為它是一套免費的軟體,如果不要對它太過份,它會默默的在電腦中為你服務,在一般情況下都不太會出問題。MySQL跟其它一般的資料庫一樣,同樣支援ANSI SQL92,也加入少許MySQL自己特別的指令。不論是網頁或應用程式的開發人員,當你第一次接觸資料庫,學習SQL這種古老的指令,應該不會覺得太難。如果你正要進入開發應用程式的領域,在學習的路上,你會分配給SQL的時間應該也不會太多,因為它跟程式語言比較起來是比較單純一些的。</p>
<p>因為MySQL和SQL幾乎是最常見的應用,而且大家也覺得它們是簡單的,當然就不會在它們身上花太多時間。所以慢慢的我們會發現一些情況,有一些應用程式發生的問題,其實是來自MySQL資料庫伺服器和應用程式中的SQL敘述,這些問題相對是比較單純的,只是大家忽略了。</p>
<p>例如MySQL提供方便好用的「LIMIT」子句,在應用程式中讓開發人員可以很容易完成一些特定的功能,例如網頁應用程式中的分頁查詢。不過LIMIT子句是MySQL才有的,如果應用程式更換資料庫伺服器,例如Oracle,應用程式就會產生一堆錯誤了。還有資料庫的交易(transaction)管理,MySQL預設的MYISAM儲存引擎並沒有支援交易管理,因為比較簡單一些,所以運作的效率也會比較好;如果應用程式需要執行交易管理,就要在建立資料庫的時候指定儲存引擎為InnoDB。</p>
<p>各種關於MySQL資料庫管理和SQL的問題,開發人員通常在遇到錯誤的時候,才會開始尋求解決問題的方法。這似乎也是MySQL的宿命,因為我們雖然一直在使用它,可是卻不太重視它,也認為這本來就是合理的,開發人員不應該分配太多時間給它。有一個很明顯的情況,在逛書局的時候,你應該已經看不到只有討論關於MySQL和SQL的書籍了。</p>
</div>
<div>
<h2><a name="p3">OCP MySQL 5 Developer</a></h2>
<a href="#tool">回工具列</a>
<p>在我們台灣這裡,跟開發人員相關的認證考試,這應該算是最冷門的OCP認證科目之一。這個認證考試的主要內容是MySQL的SQL,通過這個考試的人,表示它具備在應用程式中使用SQL的技能。你應該會覺的這是一個有點詭異的認證考試,它好像沒有存在的必要。對一個有經驗的開發人員來說,使用SQL的技能就像是本來就應該存在的,你甚至已經忘記當初是怎麼學會SQL;對一個新手來說,不會有人建議你去買一本關於SQL的書籍來學習這方面的技能,因為可能也買不到了,不過有各種網站提供SQL的學習,認識一些基礎的敘述後,遇到問題再說吧!</p>
<p>SQL在目前的環境下,越來越不受到開發人員的關愛,尤其是現在各種關於資料庫應用的框架,例如Hibernate和MyBatis,它們的任務就是要殺死SQL這隻遠古巨獸,讓開發人員不用受到SQL的煎熬。我也認為開發應用程式一直是一件很困難的事情,各種越來越進步的科技讓生活更方便,可是應用程式開發技術卻越來越複雜,開發人員必須具備的技能也更多,如果真的能有一種技術可以完全消滅SQL,那絕對是一件非常美好的事情。不過目前的情況應該還是有很多困難,就以大約十年前的應用程式來說,SQL還是一個必要的成員,除非放棄原來已經運作正常的程式,否則你還是要面對這些冗長的SQL敘述。</p>
<p>這就是「MySQL超新手入門」系列文章的目的,內容的範圍涵蓋OCP MySQL 5 Developer認證考試,因為它的範圍也是一個開發人員必須具備的SQL技能。從安裝MySQL資料庫與相關的工具程式開始,到學習所有MySQL提供的SQL,雖然是針對MySQL資料庫撰寫的,不過絕大部份都符合ANSI SQL92的標準,也就是在其它資料庫產品也可以正確的運作。</p>
</div>
<div>
<h2><a name="p4">數學運算</a></h2>
<a href="#tool">回工具列</a>
<p>除了查詢表格中的欄位外,你可以加入任何需要的運算,這裡先討論一般常見的數學運算。下列是很常用來執行數學運算的運算子:</p>
<table border=1>
<tr>
<th>優先順序</th>
<th>運算子</th>
<th>說明</th>
<th>範例</th>
<th>運算結果</th>
</tr>
<tr>
<td>1</td>
<td>%</td>
<td>餘數</td>
<td>7 % 3</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>MOD</td>
<td>餘數</td>
<td>7 MOD 3</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>* </td>
<td>乘</td>
<td>7 * 3</td>
<td>21</td>
</tr>
<tr>
<td>1</td>
<td>/</td>
<td>除</td>
<td>7 / 3</td>
<td>2.333</td>
</tr>
<tr>
<td>1</td>
<td>DIV</td>
<td>除(整數)</td>
<td>7 DIV 3</td>
<td>2</td>
</tr>
<tr>
<td>2</td>
<td>+</td>
<td>加</td>
<td>7 + 3</td>
<td>10</td>
</tr>
<tr>
<td>2</td>
<td>-</td>
<td>減</td>
<td>7 – 3</td>
<td>4</td>
</tr>
</table>
</div>
<div>
內容規劃為19章:
<ol>
<li>資料庫概論與 MySQL 安裝</li>
<li>SELECT 基礎查詢</li>
<li>運算式與函式</li>
<li>JOIN 與 UNION 查詢</li>
<li>CRUD 與資料維護</li>
<li>字元集與資料庫</li>
<li>儲存引擎與資料型態</li>
<li>表格與索引</li>
<li>子查詢</li>
<li>Views</li>
<li>Prepared Statements</li>
<li>Stored Routines入門</li>
<li>Sotred Routines的變數與流程</li>
<li>Stored Routines進階</li>
<li>Triggers</li>
<li>資料庫資訊</li>
<li>錯誤處理與查詢</li>
<li>匯入與匯出資料</li>
<li>效率</li>
</ol>
</div>
<div>
參考資料:
<ul>
<li>三國演義校注,羅貫中原著,吳小林校註,里仁書局</li>
<li>三國演義的文學特質及其悲劇藝術,羅龍治</li>
<li><a href="http://www.oracle.com" target="_blank">http://www.oracle.com</a></li>
</ul>
</div>
</div>
<div id="sidebar">
<h1>右側邊欄</h1>
</div>
</div>
<div id="footer">
<ul class="nav">
<li><a href="#p1">三國演義</a></li>
<li><a href="#p2">MySQL與SQL</a></li>
<li><a href="#p3">OCP MySQL 5 Developer</a></li>
<li><a href="#p4">數學運算</a></li>
</ul>
<div>
<a href="mailto:[email protected]?subject=我有意見或建議">寄信給站長</a>
</div>
</div>
</div>
</div>
</body>
</html>