《Mysql實例MySQL新手入門指南--快速參考》要點:
本文介紹了Mysql實例MySQL新手入門指南--快速參考,希望對您有用。如果有疑問,可以聯系我們。
一、SQL速成?
以下是一些重要的SQL快速參考,有關SQL的語法和在標準SQL上增加的特性,請查詢MySQL手冊.?
1.創建表?
表是數據庫的最基本元素之一,表與表之間可以相互獨立,也可以相互關聯.創建表的基本語法如下:?
create?table?table_name?
(column_name?datatype?{identity?|null|not?null},?
…)?
其中參數table_name和column_name必須滿足用戶數據庫中的識別器(identifier)的要求,參數datatype是一個標準的SQL類型或由用戶數據庫提供的類型.用戶要使用non-null從句為各字段輸入數據.?
create?table還有一些其他選項,如創建臨時表和使用select子句從其他的表中讀取某些字段組成新表等.還有,在創建表是可用PRIMARY?KEY、KEY、INDEX等標識符設定某些字段為主鍵或索引等.?
書寫上要注意:?
在一對圓括號里的列出完整的字段清單.?
字段名間用逗號隔開.?
字段名間的逗號后要加一個空格.?
最后一個字段名后不用逗號.?
所有的SQL陳述都以分號";"結束.?
例:?
mysql>?CREATE?TABLE?test?(blob_col?BLOB,?index(blob_col(10)));?
2.創建索引?
索引用于對數據庫的查詢.一般數據庫建有多種索引方案,每種方案都精于某一特定的查詢類.索引可以加速對數據庫的查詢過程.創建索引的基本語法如下:?
create?index?index_name?
on?table_name?(col_name[(length)],...?)?
例:?
mysql>?CREATE?INDEX?part_of_name?ON?customer?(name(10));?
3.改變表結構?
在數據庫的使用過程中,有時需要改變它的表結構,包括改變字段名,甚至改變不同數據庫字段間的關系.可以實現上述改變的命令是alter,其基本語法如下:?
alter?table?table_name?alter_spec?[,?alter_spec?...]?
例:?
mysql>?ALTER?TABLE?t1?CHANGE?a?b?INTEGER;?
4.刪除數據對象?
很多數據庫是動態使用的,有時可能需要刪除某個表或索引.大多數數據庫對象可以下面的命令刪除:?
drop?object_name?
mysql>?DROP?TABLE?tb1;?
?
5.執行查詢?
查詢是使用最多的SQL命令.查詢數據庫需要憑借結構、索引和字段類型等因素.大多數數據庫含有一個優化器(optimizer),把用戶的查詢語句轉換成可選的形式,以提高查詢效率.?
值得注意的是MySQL不支持SQL92標準的嵌套的where子句,即它只支持一個where子句.其基本語法如下:?
SELECT?[STRAIGHT_JOIN]?[SQL_SMALL_RESULT]?[SQL_BIG_RESULT]?[HIGH_PRIORITY]?[DISTINCT?|?DISTINCTROW?|?ALL]?
select_expression,...?[INTO?{OUTFILE?|?DUMPFILE}?'file_name'?export_options]?[FROM?table_references?[WHERE?where_definition]?[GROUP?BY?col_name,...]?[HAVING?where_definition]?[ORDER?BY?{unsigned_integer?|?col_name?|?formula}?[ASC?|?DESC]?,...]?[LIMIT?[offset,]?rows]?[PROCEDURE?procedure_name]?]?
其中where從句是定義選擇標準的地方,where_definition可以有不同的格式,但都遵循下面的形式:?
字段名操作表達式?
字段名操作字段名?
在第一種形式下,標準把字段的值與表達式進行比較;在第二種形式下,把兩個字段的值進行比較.根據所比較的數據類型,search_condition中的操作可能選以下幾種:?
=?檢查是否相等?
!=?檢查是否不等?
>?(或>=)?檢查左邊值是否大于(或大于等于)右邊值?
<?(或<=)?檢查左邊值是否小于(或小于等于)右邊值?[not]?between?檢查左邊值是否在某個范圍內?[not]?in?檢查左邊是否某個特定集的成員?[not]?like?檢查左邊是否為右邊的子串?
is?[not]?null?檢查左邊是否為空值?
在這里,可以用通配符_代表任何一個字符,%代表任何字符串.使用關鍵字、和可以生成復雜的詞,它們運行檢查時使用布爾表達式的多重標準集.?
例:?
mysql>?select?t1.name,?t2.salary?from?employee?AS?t1,?info?AS?t2?where?t1.name?=?t2.name;?
mysql>?select?college,?region,?seed?from?tournament?
ORDER?BY?region,?seed;?
mysql>?select?col_name?from?tbl_name?WHERE?col_name?>?0;?
6.修改表中數據?
在使用數據庫過程中,往往要修改其表中的數據,比如往表中添加新數據,刪除表中原有數據,或對表中原有數據進行更改.它們的基本語法如下:?
數據添加:?
insert?[into]?table_name?[(column(s))]?
values?(s))?
例:?
mysql>?INSERT?INTO?tbl_name?(col1,col2)?VALUES(15,col1*2);?
數據刪除:?
delete?from?table_name?where?search_condition?
數據更改:?
update?table_name?
set?column1=expression1,?
column2=expression2,…?
where?search_condition?
7.數據庫切換?
當存在多個數據庫時,可以用下面的命令定義用戶想使用的數據庫:?
use?database_name?
8.統計函數?
SQL有一些統計函數,它們對于生成數據表格很有幫助.下面介紹幾個常用的統計函數:?
sum?(exepression)?計算表達式的和?
avg?(exepression)?計算表達式的平均值?
count?(exepression)?對表達式進行簡單的計數?
count?(*)?統計記錄數?
max?(exepression)?求最大值?
min?(exepression)?求最小值?
其中exepression為任何有效的SQL表達式,它可以是一個或多個記錄,也可以是別的SQL函數的組合.?
?
二、MySQL使用導引?
1.運用MySQL建立新數據庫?
在shell下運行:?
$>mysqladmin?create?database01?
Database?"database01"?created.?
2.啟動MySQL?
在shell下運行:?
$>mysql?
Welcome?to?the?MySQL?monitor.?Commands?end?with?;?or?g.?
Your?MySQL?connection?id?is?22?to?server?version:?3.21.?29a-gamma-debug?
Type?'help'?for?help.?
3.更換數據庫?
mysql>use?database01?
database?changed.?
4.創建表?
mysql>create?table?table01?(field01?integer,?field02?char(10));?
Query?OK,?0?rows?affected?(0.00?sec)?
5.列出表清單?
mysql>show?tables;?
Tables?in?database01?
Table01?
table02?
6.列出表中的字段清單?
mysql>show?columns?from?table01;?
Field?Type?Null?Key?Default?Extra?
field01?int(11)?YES?
field02?char(10)?YES?
7.表的數據填寫?
插入數據?
mysql>insert?into?table01?(field01,?field02)?values?(1,?'first');?
Query?OK,?1?row?affected?(0.00?sec)?
8.字段的增加?
...一次一個字段?
mysql>alter?table?table01?add?column?field03?char(20);?
Query?OK,?l?row?affected?(0.04?sec)?
Records:?1?Duplicates:?0?Warnings:?0?
...一次多個字段?
mysql>alter?table?table01?add?column?field04?date,?add?column?field05?time;?
Query?OK,?l?row?affected?(0.04?sec)?
Records:?1?Duplicates:?0?Warnings:?0?
注意:每一列都必須以"add?column"重新開始.?
它運行了嗎?讓我們看看.?
mysql>select?*?from?table01;?
field01?field02?field03?field04?field05?
1?first?NULL?NULL?NULL?
?
9.多行命令輸入?
MySQL命令行界面允許把陳述作為一行輸入,也可以把它展開為多行輸入.這兩者之間并沒有語法上的區別.使用多行輸入,你可以將SQL陳述一步步分解,從而使你更容易理解.?
在多行方式下,注釋器把每一行都添加到前面的行后,直到你用分號";"來結束這個SQL陳述.一旦鍵入分號并按回車鍵,這個陳述即被執行.?
下面的例子是同一個嚴格的SQL陳述的兩種輸入方法:?
單行輸入?
Mysql>create?table?table33?(field01?integer,?field02?char(30));?
多行輸入?
Mysql>create?table?table33?
->(field01?
->integer,?
->field02?
->char(30));?
注意不能將單詞斷開,如:?
正確?
mysql>create?table?table33?
->(?field01?
->integer,?
->field02?
->char(30));?
錯誤?
mysql>create?table?table33?
->(?field01?inte?
->ger,?
->field02?
->char(30));?
當插入或更改數據時,不能將字段的字符串展開到多行里,否則硬回車將被儲存到數據中:?
標準操作?
mysql>insert?into?table33?(field02)?
->values?
->('who?thought?of?foo?');?
硬回車儲存到數據中?
mysql>insert?into?table33?(field02)?
->values?
->('who?thought?
->of?foo?');?
結果如下:?
mysql>select?*?from?table33;?
field01?field02?
NULL?who?thought?of?foo??
NULL?who?thought?
Of?foo??
10.表的數據嵌入?
mysql>insert?into?table01?(field01,?field02,?field03,?field04,?field05)?values?
->(2,?'second',?'another',?'1999-10-23',?'10:30:00');?
Query?OK,?1?row?affected?(0.00?sec)?
標準日期格式是"yyyy-mm-dd".?
標準時間格式是"hh:mm:ss".?
引號內要求所給的是上述的標準日期和時間格式.?
日期也可以"yyyymmdd"形式,時間也可以"hhmmss"形式輸入,但其值不需要再加引號.?
數字值不需要加引號.這種保存與數據類型無關,這些數據類型都有格式化的專欄來包含(例如:文本,日期,時間,整數等).?
MySQL有一個很有用的命令緩沖區.它保存著你目前已經鍵入的SQL語句利用它,對于相同的命令,你就不必一遍又一遍地重復輸入.下一步我們就來看這樣的一個例子.?
利用命令緩沖區(及任意的日期和時間格式)增加另一個數據?
按兩次鍵盤上的向上箭頭鍵.?
回車.?
在圓括號內輸入新的值,并以分號結尾.?
(3,?'a?third',?'more',?19991024,?103004);?
回車.?
新值存在里面了嗎??
mysql>select?*?from?table01;?
field01?field02?field03?field04?field05?
1?first?NULL?NULL?NULL?
2?second?another?1999-10-23?10:30:00?
3?a?third?more?1999-10-24?10:30:04?
11.表的數據更新?
一次修改一個字段?
再次注意語法.文本需要加引號但數字不要.?
mysql>update?table01?set?field03='new?info'?where?field01=1;?
Query?OK,?1?row?affected?(0.00?sec)?
一次改變多個字段?
記住在每一個更新的字段間用逗號隔開.?
mysql>update?table01?set?field04=19991022,?field05=062218?where?field01=1;?
Query?OK,?1?row?affected?(0.00?sec)?
一次更新多個數據?
mysql>update?table01?set?field05=152901?where?field04>19990101;?
Query?OK,?3?rows?affected?(0.00?sec)?
12.刪除數據?
mysql>delete?from?table01?where?field01=3;?
Query?OK,?1?row?affected?(0.00?sec)?
13.退出?
mysql>quit?
Bye?
現在你已經了解了一些運行MySQL中的數據庫的根本命令.由于MySQL是通過執行SQL調用來操作的,在你的處理過程中需要一個強有力工具的充足的數組.例如,通過聯接相關的字段,你可以同時顯示幾個表中的數據.同樣,SQL允許綜合顯示、更新或者刪除多個符合具體標準的數據.如果你還想精通掌握它,下一步就要學習所有SQL的知識.?
另外說明一下,MySQL提供了很好的網絡操作安全特性.要想了解MySQL的安全及其它特性的詳情,請查詢MySQL網站:http://www.mysql.com?
為了方便大家查詢使用MySQL手冊,?我們將官方手冊(Manaul)做在光盤的/docs/manaul/mysql目錄下.大家可以用瀏覽器瀏覽查詢.
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/3854.html