《Mysql實(shí)例MySQL新手入門指南--快速參考》要點(diǎn):
本文介紹了Mysql實(shí)例MySQL新手入門指南--快速參考,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
一、SQL速成?
以下是一些重要的SQL快速參考,有關(guān)SQL的語(yǔ)法和在標(biāo)準(zhǔn)SQL上增加的特性,請(qǐng)查詢MySQL手冊(cè).?
1.創(chuàng)建表?
表是數(shù)據(jù)庫(kù)的最基本元素之一,表與表之間可以相互獨(dú)立,也可以相互關(guān)聯(lián).創(chuàng)建表的基本語(yǔ)法如下:?
create?table?table_name?
(column_name?datatype?{identity?|null|not?null},?
…)?
其中參數(shù)table_name和column_name必須滿足用戶數(shù)據(jù)庫(kù)中的識(shí)別器(identifier)的要求,參數(shù)datatype是一個(gè)標(biāo)準(zhǔn)的SQL類型或由用戶數(shù)據(jù)庫(kù)提供的類型.用戶要使用non-null從句為各字段輸入數(shù)據(jù).?
create?table還有一些其他選項(xiàng),如創(chuàng)建臨時(shí)表和使用select子句從其他的表中讀取某些字段組成新表等.還有,在創(chuàng)建表是可用PRIMARY?KEY、KEY、INDEX等標(biāo)識(shí)符設(shè)定某些字段為主鍵或索引等.?
書(shū)寫(xiě)上要注意:?
在一對(duì)圓括號(hào)里的列出完整的字段清單.?
字段名間用逗號(hào)隔開(kāi).?
字段名間的逗號(hào)后要加一個(gè)空格.?
最后一個(gè)字段名后不用逗號(hào).?
所有的SQL陳述都以分號(hào)";"結(jié)束.?
例:?
mysql>?CREATE?TABLE?test?(blob_col?BLOB,?index(blob_col(10)));?
2.創(chuàng)建索引?
索引用于對(duì)數(shù)據(jù)庫(kù)的查詢.一般數(shù)據(jù)庫(kù)建有多種索引方案,每種方案都精于某一特定的查詢類.索引可以加速對(duì)數(shù)據(jù)庫(kù)的查詢過(guò)程.創(chuàng)建索引的基本語(yǔ)法如下:?
create?index?index_name?
on?table_name?(col_name[(length)],...?)?
例:?
mysql>?CREATE?INDEX?part_of_name?ON?customer?(name(10));?
3.改變表結(jié)構(gòu)?
在數(shù)據(jù)庫(kù)的使用過(guò)程中,有時(shí)需要改變它的表結(jié)構(gòu),包括改變字段名,甚至改變不同數(shù)據(jù)庫(kù)字段間的關(guān)系.可以實(shí)現(xiàn)上述改變的命令是alter,其基本語(yǔ)法如下:?
alter?table?table_name?alter_spec?[,?alter_spec?...]?
例:?
mysql>?ALTER?TABLE?t1?CHANGE?a?b?INTEGER;?
4.刪除數(shù)據(jù)對(duì)象?
很多數(shù)據(jù)庫(kù)是動(dòng)態(tài)使用的,有時(shí)可能需要?jiǎng)h除某個(gè)表或索引.大多數(shù)數(shù)據(jù)庫(kù)對(duì)象可以下面的命令刪除:?
drop?object_name?
mysql>?DROP?TABLE?tb1;?
?
5.執(zhí)行查詢?
查詢是使用最多的SQL命令.查詢數(shù)據(jù)庫(kù)需要憑借結(jié)構(gòu)、索引和字段類型等因素.大多數(shù)數(shù)據(jù)庫(kù)含有一個(gè)優(yōu)化器(optimizer),把用戶的查詢語(yǔ)句轉(zhuǎn)換成可選的形式,以提高查詢效率.?
值得注意的是MySQL不支持SQL92標(biāo)準(zhǔn)的嵌套的where子句,即它只支持一個(gè)where子句.其基本語(yǔ)法如下:?
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從句是定義選擇標(biāo)準(zhǔn)的地方,where_definition可以有不同的格式,但都遵循下面的形式:?
字段名操作表達(dá)式?
字段名操作字段名?
在第一種形式下,標(biāo)準(zhǔn)把字段的值與表達(dá)式進(jìn)行比較;在第二種形式下,把兩個(gè)字段的值進(jìn)行比較.根據(jù)所比較的數(shù)據(jù)類型,search_condition中的操作可能選以下幾種:?
=?檢查是否相等?
!=?檢查是否不等?
>?(或>=)?檢查左邊值是否大于(或大于等于)右邊值?
<?(或<=)?檢查左邊值是否小于(或小于等于)右邊值?[not]?between?檢查左邊值是否在某個(gè)范圍內(nèi)?[not]?in?檢查左邊是否某個(gè)特定集的成員?[not]?like?檢查左邊是否為右邊的子串?
is?[not]?null?檢查左邊是否為空值?
在這里,可以用通配符_代表任何一個(gè)字符,%代表任何字符串.使用關(guān)鍵字、和可以生成復(fù)雜的詞,它們運(yùn)行檢查時(shí)使用布爾表達(dá)式的多重標(biāo)準(zhǔn)集.?
例:?
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.修改表中數(shù)據(jù)?
在使用數(shù)據(jù)庫(kù)過(guò)程中,往往要修改其表中的數(shù)據(jù),比如往表中添加新數(shù)據(jù),刪除表中原有數(shù)據(jù),或?qū)Ρ碇性袛?shù)據(jù)進(jìn)行更改.它們的基本語(yǔ)法如下:?
數(shù)據(jù)添加:?
insert?[into]?table_name?[(column(s))]?
values?(s))?
例:?
mysql>?INSERT?INTO?tbl_name?(col1,col2)?VALUES(15,col1*2);?
數(shù)據(jù)刪除:?
delete?from?table_name?where?search_condition?
數(shù)據(jù)更改:?
update?table_name?
set?column1=expression1,?
column2=expression2,…?
where?search_condition?
7.?dāng)?shù)據(jù)庫(kù)切換?
當(dāng)存在多個(gè)數(shù)據(jù)庫(kù)時(shí),可以用下面的命令定義用戶想使用的數(shù)據(jù)庫(kù):?
use?database_name?
8.統(tǒng)計(jì)函數(shù)?
SQL有一些統(tǒng)計(jì)函數(shù),它們對(duì)于生成數(shù)據(jù)表格很有幫助.下面介紹幾個(gè)常用的統(tǒng)計(jì)函數(shù):?
sum?(exepression)?計(jì)算表達(dá)式的和?
avg?(exepression)?計(jì)算表達(dá)式的平均值?
count?(exepression)?對(duì)表達(dá)式進(jìn)行簡(jiǎn)單的計(jì)數(shù)?
count?(*)?統(tǒng)計(jì)記錄數(shù)?
max?(exepression)?求最大值?
min?(exepression)?求最小值?
其中exepression為任何有效的SQL表達(dá)式,它可以是一個(gè)或多個(gè)記錄,也可以是別的SQL函數(shù)的組合.?
?
二、MySQL使用導(dǎo)引?
1.運(yùn)用MySQL建立新數(shù)據(jù)庫(kù)?
在shell下運(yùn)行:?
$>mysqladmin?create?database01?
Database?"database01"?created.?
2.啟動(dòng)MySQL?
在shell下運(yùn)行:?
$>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.更換數(shù)據(jù)庫(kù)?
mysql>use?database01?
database?changed.?
4.創(chuàng)建表?
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.表的數(shù)據(jù)填寫(xiě)?
插入數(shù)據(jù)?
mysql>insert?into?table01?(field01,?field02)?values?(1,?'first');?
Query?OK,?1?row?affected?(0.00?sec)?
8.字段的增加?
...一次一個(gè)字段?
mysql>alter?table?table01?add?column?field03?char(20);?
Query?OK,?l?row?affected?(0.04?sec)?
Records:?1?Duplicates:?0?Warnings:?0?
...一次多個(gè)字段?
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"重新開(kāi)始.?
它運(yùn)行了嗎?讓我們看看.?
mysql>select?*?from?table01;?
field01?field02?field03?field04?field05?
1?first?NULL?NULL?NULL?
?
9.多行命令輸入?
MySQL命令行界面允許把陳述作為一行輸入,也可以把它展開(kāi)為多行輸入.這兩者之間并沒(méi)有語(yǔ)法上的區(qū)別.使用多行輸入,你可以將SQL陳述一步步分解,從而使你更容易理解.?
在多行方式下,注釋器把每一行都添加到前面的行后,直到你用分號(hào)";"來(lái)結(jié)束這個(gè)SQL陳述.一旦鍵入分號(hào)并按回車鍵,這個(gè)陳述即被執(zhí)行.?
下面的例子是同一個(gè)嚴(yán)格的SQL陳述的兩種輸入方法:?
單行輸入?
Mysql>create?table?table33?(field01?integer,?field02?char(30));?
多行輸入?
Mysql>create?table?table33?
->(field01?
->integer,?
->field02?
->char(30));?
注意不能將單詞斷開(kāi),如:?
正確?
mysql>create?table?table33?
->(?field01?
->integer,?
->field02?
->char(30));?
錯(cuò)誤?
mysql>create?table?table33?
->(?field01?inte?
->ger,?
->field02?
->char(30));?
當(dāng)插入或更改數(shù)據(jù)時(shí),不能將字段的字符串展開(kāi)到多行里,否則硬回車將被儲(chǔ)存到數(shù)據(jù)中:?
標(biāo)準(zhǔn)操作?
mysql>insert?into?table33?(field02)?
->values?
->('who?thought?of?foo?');?
硬回車儲(chǔ)存到數(shù)據(jù)中?
mysql>insert?into?table33?(field02)?
->values?
->('who?thought?
->of?foo?');?
結(jié)果如下:?
mysql>select?*?from?table33;?
field01?field02?
NULL?who?thought?of?foo??
NULL?who?thought?
Of?foo??
10.表的數(shù)據(jù)嵌入?
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)?
標(biāo)準(zhǔn)日期格式是"yyyy-mm-dd".?
標(biāo)準(zhǔn)時(shí)間格式是"hh:mm:ss".?
引號(hào)內(nèi)要求所給的是上述的標(biāo)準(zhǔn)日期和時(shí)間格式.?
日期也可以"yyyymmdd"形式,時(shí)間也可以"hhmmss"形式輸入,但其值不需要再加引號(hào).?
數(shù)字值不需要加引號(hào).這種保存與數(shù)據(jù)類型無(wú)關(guān),這些數(shù)據(jù)類型都有格式化的專欄來(lái)包含(例如:文本,日期,時(shí)間,整數(shù)等).?
MySQL有一個(gè)很有用的命令緩沖區(qū).它保存著你目前已經(jīng)鍵入的SQL語(yǔ)句利用它,對(duì)于相同的命令,你就不必一遍又一遍地重復(fù)輸入.下一步我們就來(lái)看這樣的一個(gè)例子.?
利用命令緩沖區(qū)(及任意的日期和時(shí)間格式)增加另一個(gè)數(shù)據(jù)?
按兩次鍵盤上的向上箭頭鍵.?
回車.?
在圓括號(hào)內(nèi)輸入新的值,并以分號(hào)結(jié)尾.?
(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.表的數(shù)據(jù)更新?
一次修改一個(gè)字段?
再次注意語(yǔ)法.文本需要加引號(hào)但數(shù)字不要.?
mysql>update?table01?set?field03='new?info'?where?field01=1;?
Query?OK,?1?row?affected?(0.00?sec)?
一次改變多個(gè)字段?
記住在每一個(gè)更新的字段間用逗號(hào)隔開(kāi).?
mysql>update?table01?set?field04=19991022,?field05=062218?where?field01=1;?
Query?OK,?1?row?affected?(0.00?sec)?
一次更新多個(gè)數(shù)據(jù)?
mysql>update?table01?set?field05=152901?where?field04>19990101;?
Query?OK,?3?rows?affected?(0.00?sec)?
12.刪除數(shù)據(jù)?
mysql>delete?from?table01?where?field01=3;?
Query?OK,?1?row?affected?(0.00?sec)?
13.退出?
mysql>quit?
Bye?
現(xiàn)在你已經(jīng)了解了一些運(yùn)行MySQL中的數(shù)據(jù)庫(kù)的根本命令.由于MySQL是通過(guò)執(zhí)行SQL調(diào)用來(lái)操作的,在你的處理過(guò)程中需要一個(gè)強(qiáng)有力工具的充足的數(shù)組.例如,通過(guò)聯(lián)接相關(guān)的字段,你可以同時(shí)顯示幾個(gè)表中的數(shù)據(jù).同樣,SQL允許綜合顯示、更新或者刪除多個(gè)符合具體標(biāo)準(zhǔn)的數(shù)據(jù).如果你還想精通掌握它,下一步就要學(xué)習(xí)所有SQL的知識(shí).?
另外說(shuō)明一下,MySQL提供了很好的網(wǎng)絡(luò)操作安全特性.要想了解MySQL的安全及其它特性的詳情,請(qǐng)查詢MySQL網(wǎng)站:http://www.mysql.com?
為了方便大家查詢使用MySQL手冊(cè),?我們將官方手冊(cè)(Manaul)做在光盤的/docs/manaul/mysql目錄下.大家可以用瀏覽器瀏覽查詢.
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/3854.html