當前位置:編程學習大全網 - 源碼下載 - 語句錯誤?為什麽?

語句錯誤?為什麽?

由於MySQL服務器具有多種安裝分發,而且能夠運行在多種操作平臺之上,因此它的啟動與停止的方法也多種多樣。妳可以根據實際情況使用其中的壹種。在妳安裝、升級或者維護系統時,妳可能需要多次啟動和終止服務器,妳需要了解啟動和終止服務器的方方面面。

3.1.1 直接運行守護程序

1、妳可以采用的方法

壹般的,妳可以有以下幾種選擇啟動MySQL服務器,它們的功能和用法幾乎是相同的,所以壹起在這裏介紹:

直接使用MySQL守護程序mysqld啟動數據庫系統,尤其是Win32平臺上的分發,這是因為,在Win32平臺上沒有mysql.server等服務器腳本可用。

通過調用safe_mysqld腳本,它接受與mysqld相同的參數,並試圖為mysqld決定正確的選項,然後選擇用那些運行它。

2、腳本或者守護程序的存放位置

對於二進制分發的安裝,mysqld守護程序安裝在MySQL安裝目錄的bin目錄下,或者可在MySQL源代碼分發的libexec目錄下找到,缺省為/usr/local/libexec/。對於rpm分發,mysqld應該位於PATH變量決定的程序搜索路徑中,因此可以直接引用。

safe_mysqld仍舊是壹個腳本,並且只存在於Unix平臺的分發中。safe_mysqld腳本安裝在MySQL安裝目錄的bin目錄下,或可在MySQL源代碼分發的scripts目錄下找到。對於rpm分發,該腳本應該位於PATH變量決定的程序搜索路徑中,因此可以直接引用。

3、為什麽要使用safe_mysqld腳本

safe_mysqld接受和mysqld同樣的參數,並試圖確定服務器程序和數據庫目錄的位置,然後利用這些位置調用服務器。safe_mysqld將服務器的標準錯誤輸出重定向到數據庫目錄中的錯誤文件中,並以記錄的形式存在。啟動服務器後,safe_mysqld還監控服務器,並在其死機時重新啟動。safe_mysqld通常用於Unix的BSD風格的版本。

如果,妳曾經為root或在系統啟動程序中啟動safe_mysqld,其錯誤日誌將有root擁有。如果再用非特權的用戶身份調用safe_mysqld,則可能引起“Access Denied”(即,“所有權被拒絕”)的錯誤。此時可以刪除錯誤文件在試壹次。

由於safe_mysqld腳本的功能,使用safe_mysqld腳本明顯比直接啟動mysqld守護程序來得有效。

4、啟動服務器的完整過程

對於Unix平臺上的分發,如果妳以root或在系統引導期間啟動sqfe_mysqld,出錯日誌由root擁有,這可能在妳以後試圖用壹個非特權用戶調用safe_mysqld時將導致“permission denied”(權限拒絕)錯誤,刪除出錯日誌再試壹下。因此建議妳在啟動服務器前,首先切換到壹個專門的用戶mysql。

具體方法如下:

Unix平臺

$ su mysql

$ safe_mysql & (或者 mysqld & ,不推薦)

Win32平臺

C: mysqlin>mysqld --standalone

或者C: mysqlin>mysqld-nt –standalone

如果妳使用mysqld並且沒有把mysql安裝在標準的位置,通常需要提供—basedir選項妳的數據庫的安裝位置。

$safe_mysqld --basedir=”/path/to/mysql” &(Unix平臺)

c:mysqlin>mysqld --basedir=”x:/path/to/mysql” (Win32平臺)

5、使用safe_mysqld腳本實現服務器的自動啟動

同樣妳可以利用safe_mysqld和mysqld實現服務器隨操作系統自動啟動。對於Linux系統以及BSD風格的系統(FreeBSD,OpenBSD等)),通常在/etc目錄下有幾個文件在引導時初始化服務,這些文件通常有以“rc”開頭的名字,且它有可能由壹個名為“rc.local”的文件(或類似的東西),特意用於啟動本地安裝的服務。

在這樣的系統上,妳可能將類似於下列的行加入rc.local文件中以啟動服務器(如果safe_mysqld的目錄在妳的系統上不同,修改它即可):

if [ -x /usr/local/bin/safe_mysqld ]; then /usr/local/bin/safe_mysqld & fi

由於這樣在引導時啟動,將使用root身份啟動數據庫,在某些時候可能會產生問題和麻煩。這是妳可以指定--user選項,因此可以將上面的代碼修改為:

if [ -x /usr/local/bin/safe_mysqld ]; then

/usr/local/bin/safe_mysqld --user=mysql --datadir=/path/to/data &

fi

3.1.2 使用腳本mysql.server啟動關閉數據庫

對於Unix平臺上的分發,比較好的辦法是使用數據庫腳本mysql.server,啟動和關閉數據庫。

1、mysql.server腳本的存放位置

mysql.server腳本安裝在MySQL安裝目錄下的share/mysqld目錄下或可以在MySQL源代碼分發的support_files目錄下找到。對於rpm分發,該腳本已經改名mysql位於/etc/rc.d/init.d目錄中,另外在….中存在壹個副本mysql.server。下文的討論對RPM分發來說,都在安裝中完成了。如果妳想使用它們,妳需要將它們拷貝到適當的目錄下。

2、如何使用mysql.server腳本啟動停止服務器

mysql.server腳本可以被用來啟動或停止服務器,通過用start或stop參數調用它:

$ mysql.server start

$ mysql.server stop

3、mysql.server的功能簡述

在mysql.server啟動服務器之前,它把目錄改變到MySQL安裝目錄,然後調用safe_mysqld。如果妳有在壹個非標準的地點安裝的二進制分發,妳可能需要編輯mysql.server。修改它,運行safe_mysqld前,cd到正確的目錄。

4、讓mysql.server以特定的用戶啟動服務器

如果妳想要作為壹些特定的用戶運行服務器,妳可以改變mysql_daemon_user=root行使用其他用戶,妳也能修改mysql.server把其他選項傳給safe_mysqld。

當然妳也可以利用選項文件給mysql.server腳本提供參數。

妳也可以在壹個全局“/etc/my.cnf”文件中增加mysql.server的選項。壹個典型的“/etc/my.cnf”文件可能看起來像這樣:

[mysqld]

datadir=/usr/local/mysql/var

socket=/tmp/mysqld.sock

port=3306

[mysql.server]

user=mysql

basedir=/usr/local/mysql

mysql.server腳本使用下列變量:user、datadir、basedir、bindir和pid-file。

5、利用mysql.server腳本讓服務器自動啟動

mysql.server腳本的重要性在於妳可以使用它配置壹個隨操作系統自動啟動的數據庫安裝,這是壹個實際的系統中常用的方法。

把mysql.server復制到/etc/rc.d/init.d目錄裏面:

# cd /etc/rc.d/init.d

# cp /usr/local/mysql/support-files/mysql.server mysql

接著把它的屬性改為“x”(executable,可執行)

# chmod +x mysql

最後,運行chkconfig把MySQL添加到妳系統的啟動服務組裏面去。

# /sbin/chkconfig --del mysql

# /sbin/chkconfig --add mysql

妳也可以這樣做,手工建立鏈接:

#cd /etc/rc.d/rc3.d (根據妳的運行級不同而不同,可以是rc5.d)

#ln –s ../init.d/mysql S99mysql

在系統啟動期間,S99mysql腳本利用start參數自動啟動。

3.1.3 使用mysqladmin實用程序關閉、重啟數據庫

日常維護數據庫,經常需要關閉或者重新啟動數據庫服務器。mysql.server stop只能用於關閉數據庫系統,並不方便,而且mysql.server腳本用特定用戶身份啟動服務器,因此使用該教本需要超級用戶的權限。相比之下mysqladmin就方便的多,並且適用於MySQL所有類型、平臺的安裝。

關閉數據庫服務器

mysqladmin shutdown

重啟數據庫服務器

mysqladmin reload

獲得幫助

mysqladmin –help

mysqladmin實用程序非常有使用價值,仔細閱讀幫助輸出,妳會得到更多的用法。

如果出現下面的錯誤:

mysqladmin: connect to server at ’localhost’ failed

error: ’Access denied for user: ’root@localhost’ (Using password: YES)’

表示妳需要壹個可以正常連接的用戶,請指定-u -p選項,具體方法與3.2節介紹相同,在第七章中妳將會學到用戶授權的知識。例如,妳現在可以:

shell>mysqladmin -u root -p shutdown

Enter Password:***********

輸入妳在閱讀第二章時修改過的密碼即可。

3.1.4 啟動或停止NT平臺上的系統服務

上面幾節介紹了Unix平臺上使數據庫服務器自動啟動的方法,而在windows(NT)平臺上為了讓MySQL數據庫自動啟動,妳需要將MySQL服務器安裝成NT系統的壹種服務。

1、將MySQL安裝成系統服務

對於NT,服務器名字是mysqld-nt。

C:mysqlin> mysqld-nt --install

(妳可以在 NT 上使用mysqld或mysqld-opt服務器,但是那些不能作為壹種服務啟動或使用命名管道。)

2、修改選項文件

如果妳的mysql沒有安裝缺省的位置c:mysql,那麽因為數據庫將無法確定數據庫目錄的位置,而無法啟動。這種情況下,妳需要提供壹個全局的選項文件c:my.cnf。將安裝目錄中的my-example.cnf文件拷貝到c盤根目錄下。修改或加入:

[mysqld]

basedir = x:/path/to/mysql/

3、啟動、停止服務器的方法

妳可以用下列命令啟動和停止MySQL服務:

NET START mysql

NET STOP mysql

註意在這種情況下,妳不能對mysqld-nt使用任何其他選項!妳需要使用選項文件提供參數。可以在選項文件中提供合適的參數。

3.1.5 使用選項文件提供服務器的參數

本節介紹守護程序需要的比較重要的選項。

對於全局選項文件(windows:c:/my.cnf 或者 unix:/etc/my.cnf),比較重要的選項有:

user 運行守護程序的用戶,如果妳使用mysql.server,並且在[mysql.server]中指定了user,那麽這個選項沒有必要。

log-update=file 更新日誌名,對於恢復數據庫有重要意義,數據庫服務器將生成file.n為名的更新日誌文件。

-l, --log[=file] 指定常規日誌名

--log-bin[=file] 指定使用的二進制日誌文件,應用於服務器復制。

-Sg, --skip-grant-tables 啟動時不加載授權表,維護時使用。

-u, --user=user_name 啟動服務器使用的Unix帳戶

--socket=... 指定是用的Unix套接字文件名,在同時運行多個服務器時使用。

-P, --port=... 指定服務器使用的端口,在同時運行多個服務器時使用。

3.1.6 總結

作為MySQL的管理員,妳平時的指責就是確保服務器盡可能的正常運行,使得客戶機能夠正常訪問。本章討論了如何啟動和重啟、關閉服務器,如果妳具備了這個能力,就可以更好的維護服務器安裝。本章介紹的方法,多數適合於Unix系統,讀者請仔細分辨。

3.2 MySQL與客戶機的連接

本章通過演示如何使用mysql客戶程序與數據庫服務器連接。mysql(有時稱為“終端監視器”或只是“監視”)是壹個交互式程序,允許妳連接壹個MySQL服務器,運行查詢並察看結果。mysql可以用於批模式:妳預先把查詢放在壹個文件中,然後告訴mysql執行文件的內容。使用mysql的兩個方法都在這裏涉及。

為了看清由mysql提供的壹個選擇項目表了,用--help選項調用它:

shell> mysql --help

本章假定mysql已經被安裝在妳的機器上,並且有壹個MySQL服務器妳可以連接。如果這不是真的,聯絡妳的MySQL管理員。(如果妳是管理員,妳將需要請教這本手冊的其他章節。)

3.2.1建立和中止與服務器的連接

1、如何使用客戶機建立連接

為了連接到服務器,從外殼程序(即從 UNIX 提示符,或從 Windows 下的 DOS 控制臺)激活 mysql 程序。命令如下:

shell>mysql

又如,直接連接壹個數據庫:

shell> mysql db_name

其中的“$”在本書中代表外殼程序提示符。這是 UNIX 標準提示符之壹;另壹個為“#”。在 Windows 下,提示符類似 “c:>”。

2、客戶機最常使用的選項:主機、用戶和密碼

為了連接服務器,當妳調用mysql時,妳通常將需要提供壹個MySQL用戶名和很可能,壹個口令。如果服務器運行在不是妳登錄的壹臺機器上,妳也將需要指定主機名。聯系妳的管理員以找出妳應該使用什麽連接參數進行連接(即,那個主機,用戶名字和使用的口令)。壹旦妳知道正確的參數,妳應該能象這樣連接:

shell> mysql -h host -u user -p

Enter password: ********

********代表妳的口令;當mysql顯示Enter password:提示時輸入它。

在剛開始學習 MySQL 時,大概會為其安全系統而煩惱,因為它使您難於做自己想做的事。(您必須取得創建和訪問數據庫的權限,任何時候連接到數據庫都必須給出自己的名字和口令。)但是,在您通過數據庫錄入和使用自己的記錄後,看法就會馬上改變了。這時您會很欣賞 MySQL 阻止了其他人窺視(或者更惡劣壹些,破壞!)您的資料。

下面介紹選項的含義:

-h host_name(可選擇形式:--host=host_name)

希望連接的服務器主機。如果此服務器運行在與 mysql 相同的機器上,這個選項壹般可省略。

-u user_name(可選擇的形式:--user=user_name)

您的 MySQL 用戶名。如果使用 UNIX 且您的 MySQL 用戶名與註冊名相同,則可以省去這個選項;mysql 將使用您的註冊名作為您的 MySQL 名。

在 Windows 下,缺省的用戶名為 ODBC。這可能不壹定非常有用。可在命令行上指定壹個名字,也可以通過設置 USER 變量在環境變量中設置壹個缺省名。如用下列 set 命令指定 paul 的壹個用戶名:

-p(可選擇的形式:--password)

這個選項告訴 mysql 提示鍵入您的 MySQL 口令。註意:可用 -pyour_password 的形式(可選擇的形式:--password=your_password)在命令行上鍵入您的口令。但是,出於安全的考慮,最好不要這樣做。選擇 -p 不跟口令告訴 mysql 在啟動時提示您鍵入口令。例如:

在看到 Enter password: 時,鍵入口令即可。(口令不會顯到屏幕,以免給別人看到。)請註意,MySQL 口令不壹定必須與 UNIX 或 Windows 口令相同。

如果完全省略了 -p 選項,mysql 就認為您不需要口令,不作提示。

請註意:-h 和 -u 選項與跟在它們後面的詞有關,無論選項和後跟的詞之間是否有空格。而 -p 卻不是這樣,如果在命令行上給出口令,-p 和口令之間壹定不加空格。

例如,假定我的 MySQL 用戶名和口令分別為 tom 和 secret,希望連接到在我註冊的同壹機器上運行的服務器上。下面的 mysql 命令能完成這項工作:

shell>mysql –u tom -p

在我鍵入命令後,mysql 顯示 Enter password: 提示鍵入口令。然後我鍵入口令(****** 表明我鍵入了 secret)。

如果壹切順利的話,mysql 顯示壹串消息和壹個“mysql>”提示,表示它正等待我發布查詢。完整的啟動序列如下所示:

為了連接到在其他某個機器上運行的服務器,需要用 -h 指定主機名。如果該主機為 mysql.domain.net,則相應的命令如下所示:

shell>mysql –h mysql.domain.net –u tom -p

在後面的說明 mysql 命令行的多數例子中,為簡單起見,我們打算省去 -h、-u 和 -p 選項。並且假定您將會提供任何所需的選項。

有很多設置賬號的方法,從而不必在每次運行 mysql 時都在連接參數中進行鍵入。這個問題在前面已經介紹過,妳只需在選項文件中提供參數,具體請看3.2.2。您可能會希望現在就跳到該節,以便找到壹些更易於連接到服務器的辦法。

3、結束會話

在建立了服務器的壹個連接後,可在任何時候鍵入下列命令來結束會話:

quit exit

還可以鍵入 Control-D 來退出,至少在 UNIX 上可以這樣。

3.2.2利用選項文件簡化連接

在激活 mysql 時,有可能需要指定諸如主機名、用戶名或口令這樣的連接參數。運行壹個程序需要做很多輸入工作,這很快就會讓人厭煩。利用選項文件可以存儲連接參數,減少輸入工作。

例如,對於使用mysqladmin客戶機來管理數據庫,那麽妳很快會厭煩每次使用這麽長的命令行:

shell>mysql –u root –p varialbles

Enter password: *********

妳也許會選擇使用全局選項文件來存貯妳的參數:

[mysqladmin]

#也可以用[client],為所有的客戶機存儲參數

user=root

password=yourpassword

這樣執行mysqladmin variables就不會顯示任何存儲拒絕的錯誤,並且妳可以用root用戶身份維護數據庫了。

且慢,妳立刻會發現,這樣做是壹個很大的安全漏洞,因為任何可以讀取選項文件的用戶都可以獲得妳的密碼!解決方法是,只提供password選項不提供密碼:

[mysqladmin]

user=root

password

這樣妳在命令行執行時,會提示妳數據密碼:

shell>mysql varialbles

Enter password: *********

但是,妳不能不提供password選項,否則妳還是要在命令行中提供-p選項。

3.2.3 利用 mysql 的輸入行編輯器

mysql 具有內建的 GNU Readline 庫,允許對輸入行進行編輯。可以對當前錄入的行進行處理,或調出以前輸入的行並重新執行它們(原樣執行或做進壹步的修改後執行)。在錄入壹行並發現錯誤時,這是非常方便的;您可以在按 Enter 鍵前,在行內退格並進行修正。如果錄入了壹個有錯的查詢,那麽可以調用該查詢並對其進行編輯以解決問題,然後再重新提交它。(如果您在壹行上鍵入了整個查詢,這是最容易的方法。)

表2-1中列出了壹些非常有用的編輯序列,除了此表中給出的以外,還有許多輸入編輯命令。利用因特網搜索引擎,應該能夠找到 Readline手冊的聯機版本。此手冊也包含在 Readline 分發包中,可在 http://www.gnu. org/ 的 Gnu Web 站點得到。

表2-1 mysql 輸入編輯命令

鍵 序 列 說 明

Up 箭頭,Ctrl-p 調前面的行

Down 箭頭,Ctrl-N 調下壹行

Left 箭頭,Ctrl-B 光標左移(向後)

Right 箭頭,Ctrl-F 光標右移(向前)

Escape Ctrl-B 向後移壹個詞

Escape Ctrl-F 向前移壹個詞

Ctrl-A 將光標移到行頭

Ctrl-E 將光標移到行尾

Ctrl-D 刪除光標下的字符

Delete 刪除光標左邊的字符

Escape D 刪詞

Escape Backspace 刪除光標左邊的詞

Ctrl-K 刪除光標到行尾的所有字符

Ctrl-_ 撤消最後的更改;可以重復

下面的例子描述了輸入編輯的壹個簡單的使用。假定用 mysql 輸入了下列查詢:

如果在按 Enter 前,已經註意到將“president”錯拼成了“persident”,則可按左箭頭或 Ctrl-B 多次移動光標到“s”的左邊。然後按 Delete 兩次刪除“er”,鍵入“re”改正錯誤,並按 Enter 發布此查詢。如果沒註意到錯拼就按了 Enter,也不會有問題。在 mysql 顯示了錯誤消息後,按上箭頭或 Ctrl-P 調出該行,然後對其進行編輯。

輸入行編輯在 mysql 的 Windows 版中不起作用,但是可從 MySQL Web 站點取得免費的 cygwin_32 客戶機分發包。在該分發包中的mysqlc 程序與 mysql 壹樣,但它支持輸入行編輯命令。

3.2.4 批處理模式連接

在前面的章節中,妳交互式地使用mysql輸入查詢並且查看結果。妳也可以以批模式運行mysql。為了做到這些,把妳想要運行的命令放在壹個文件中,然後告訴mysql從文件讀取它的輸入:

shell> mysql < batch-file

如果妳需要在命令行上指定連接參數,命令可能看起來像這樣:

shell> mysql -h host -u user -p < batch-file

Enter password: ********

當妳這樣使用mysql時,妳正在創建壹個腳本文件,然後執行腳本。

為什麽要使用壹個腳本?有很多原因:

如果妳重復地運行查詢(比如說,每天或每周),把它做成壹個腳本使得妳在每次執行它時避免重新鍵入。

妳能通過拷貝並編輯腳本文件從類似的現有的查詢生成壹個新查詢。

當妳正在開發查詢時,批模式也是很有用的,特別對多行命令或多行語句序列。如果妳犯了壹個錯誤,妳不必重新打入所有壹切,只要編輯妳的腳本來改正錯誤,然後告訴mysql再次執行它。

如果妳有壹個產生很多輸出的查詢,妳可以通過壹個分頁器而不是盯著它翻屏到妳屏幕的頂端來運行輸出:

$ mysql < batch-file | more

妳能捕捉輸出到壹個文件中進行更壹步的處理:

shell> mysql < batch-file > mysql.out

妳可以散發腳本給另外的人,因此他們也能運行命令。

壹些情況不允許交互地使用,例如, 當妳從壹個cron任務中運行查詢時。在這種情況下,妳必須使用批模式。

當妳以批模式運行mysql時,比起妳交互地使用它時,其缺省輸出格式是不同的(更簡明些)。例如,當交互式運行SELECT DISTINCT species FROM pet時,輸出看起來像這樣:

+---------+

| species |

+---------+

| bird |

| cat |

| dog |

| hamster |

| snake |

+---------+

但是當以批模式運行時,像這樣:

species

bird

cat

dog

hamster

snake

如果妳想要在批模式中得到交互的輸出格式,使用mysql -t。為了回顯以輸出被執行的命令,使用mysql -vvv。

3.2.5 總結

本章中列舉了客戶機與服務器連接的幾種情況,讀者需要註意的是下面幾點:

1、 如何提供參數,以及參數的意義

2、 如何讓客戶機提示輸入密碼

3、 交互模式和批處理模式

4、 mysql客戶機的行編輯功能

3.3 有關數據庫的操作

從本節開始正式介紹各種SQL語句。本節介紹有關數據庫級的SQL以及相關操作,查看、建立和刪除等操作。

3.3.1 用SHOW顯示已有的數據庫

句法:SHOW DATABASES [LIKE wild]

如果使用LIKE wild部分,wild字符串可以是壹個使用SQL的“%”和“_”通配符的字符串。

功能:SHOW DATABASES列出在MySQL服務器主機上的數據庫。

妳可以嘗試下面舉例,觀察輸出結果,例如:

mysql>show databases;

+----------+

| Database |

+----------+

| first |

| mysql |

| mytest |

| test |

| test1 |

+----------+

mysql>show databases like ‘my%’;

+----------------+

| Database (my%) |

+----------------+

| mysql |

| mytest |

+----------------+

用mysqlshow程序也可以得到已有數據庫列表。

3.3.2 用Create Dabase 創建數據庫

句法:CREATE DATABASE db_name

功能:CREATE DATABASE用給定的名字創建壹個數據庫。

如果數據庫已經存在,發生壹個錯誤。

在MySQL中的數據庫實現成包含對應數據庫中表的文件的目錄。因為數據庫在初始創建時沒有任何表,CREATE DATABASE語句只是在MySQL數據目錄下面創建壹個目錄。

例如:

mysql>create database myfirst;

然後利用show databases觀察效果。

3.3.3 用DROP DATABASE刪除數據庫

句法:DROP DATABASE [IF EXISTS] db_name

功能:DROP DATABASE刪除數據庫中的所有表和數據庫。要小心地使用這個命令!

DROP DATABASE返回從數據庫目錄被刪除的文件的數目。通常,這3倍於表的數量,因為每張表對應於壹個“.MYD”文件、壹個“.MYI”文件和壹個“.frm”文件。

在MySQL 3.22或以後版本中,妳可以使用關鍵詞IF EXISTS阻止壹個錯誤的發生,如果數據庫不存在。

3.3.4 使用mysqladmin工具創建和刪除

在命令行環境下可以使用mysqladmin創建和刪除數據庫。

創建數據庫:

shell> mysqladmin create db_name

刪除數據庫:

shell> mysqladmin drop db_name

如果出現下面的錯誤:

mysqladmin: connect to server at ’localhost’ failed

error: ’Access denied for user: ’root@localhost’ (Using password: YES)’

表示妳需要壹個可以正常連接的用戶,請指定-u -p選項,具體方法與3.2節介紹相同,在第七章中妳將會學到用戶授權的知識。

3.3.5 直接在數據庫目錄中創建或刪除

用上述方法創建數據庫,只是MySQL數據目錄下面創建壹個與數據庫同名目錄,同樣刪除數據庫是把這個目錄刪除。

所以,妳可以直接這麽做,創建或刪除數據庫,或者給數據庫更名。這對備份和恢復備份有壹定意義。

3.3.6 用USE選用數據庫

句法:USE db_name

USE db_name語句告訴MySQL使用db_name數據庫作為隨後的查詢的缺省數據庫。數據庫保持到會話結束,或發出另外壹個USE語句:

mysql> USE db1;

mysql> SELECT count(*) FROM mytable; # selects from db1.mytable

mysql> USE db2;

mysql> SELECT count(*) FROM mytable; # selects from db2.mytable

如果妳不是用USE語句,那麽上面的例子應該寫成:

mysql> SELECT count(*) FROM db1.mytable;

mysql> SELECT count(*) FROM db2.mytable;

由於use也是壹個mysql客戶程序的命令,所以妳可以在命令行最後不加分號,客戶程序可以得到結果。

3.3.7 總結

本節介紹了有關數據庫操作的SQL語句、實用程序,其中包括:

SQL語句:CREATE/DROP DATABASE,SHOW DATABASES,USE

程序mysqladmin

直接創建或刪除數據庫的目錄

3.4 有關數據表的操作

用MySQL,目前(版本 3.23)妳可以在三種基本數據庫表格式間選擇。當妳創建壹張表時,妳可以告訴MySQL它應該對於表使用哪個表類型。MySQL將總是創建壹個.frm文件保存表和列定義。視表類型而定,索引和數據將在其他文件中存儲。

妳能用ALTER TABLE語句在不同類型的表之間變換。見7.8 ALTER TABLE語法。

MyISAM

在MySQL 3.23中,MyISAM是缺省表格類型,它是基於ISAM代碼並且有很多有用的擴展。索引存儲在壹個有.MYI(MYindex)擴展名的文件並且數據存儲在有.MYD(MYData)擴展名的文件中。妳能用myisamchk實用程序檢查/修復MyISAM表。

ISAM

妳也可以使用放棄的ISAM。這將在不久消失,因為MyISAM是同壹個東西的更好實現。ISAM使用壹個B-tree索引,這個索引存儲在壹個有.ISM擴展名的文件中並且數據存儲在有.ISD擴展名的文件中,妳可用isamchk實用程序檢查/修復ISAM表。ISAM表不是跨OS/平臺二進制可移植的。

HEAP

HEAP表格使用壹個雜湊(hashed)索引並且存儲在內存中。這使他們更快,但是如果MySQL崩?

  • 上一篇:現在用wordpress做網站,都用什麽廣告聯盟?
  • 下一篇:電腦被小朋友玩的團團轉,桌面上的快捷方式都沒有了。我能在哪裏把他們弄出來?
  • copyright 2024編程學習大全網