要連接到mysql 服務器,你需要用戶名user, password 如果你別的電腦上登陸,那麼你還需要主機名。你 應該這樣登陸:
shell>mysql -h
host
-u
Enter password:user
-p********
host表示你主機的地址,user是你的賬號。
shell>mysql -h
Enter password:host
-uuser
-p********
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 25338 to server version: 5.5.50-standard Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
Themysql>
表示mysql已經准備就緒。
如果你在自己登陸的電腦上安裝的mysql,你只需要下面的命令:
shell>mysql -u
user
-p
如果你遇到:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'說明你的mysql服務沒有運行,你得先啟動它。
有些mysql 安裝版本允許匿名登陸,輸入下面的命令即可
shell>mysql
登陸成功後你隨時都可以輸入:QUIT或者(q)退出,本人實測中exit()也可以。
本節前提是你已經連接上mysl
下面是一個簡單的查詢實例:
mysql> SELECT VERSION(), CURRENT_DATE;
這條查詢語句說明了mysql的幾個特點:
1.每條語句後面都加上分號“;”,有少數例外,如果退出時輸入QUIT
2.當你輸入一條查詢語句時,mysql將其發送給服務器執行並返回結果
3.mysql總是以表格的形式返回結果,第一行是這些列的標簽,如果你只是想得到值,mysql也會將其貼上標簽,如上面的例子那樣。
關鍵詞大小寫不敏感:下面三種情況都是可行的。
mysql>SELECT VERSION(), CURRENT_DATE;
mysql>select version(), current_date;
mysql>SeLeCt vErSiOn(), current_DATE;
下面是另一條語句 ,它說明你可以
把mysql當作一處簡單的計算器來使用
mysql>SELECT SIN(PI()/4), (4+1)*5;
下面這樣會單
列
輸出,只要你喜歡,你可以輸入行多條語句
mysql> SELECT VERSION(); SELECT NOW();
查詢語句如果需要多行,mysql是根據你結束的分號來識別的不,而不是換行。換句話說就是,mysql的輸入格式自由,它接收這些語句,但並不執行,直到看到分號為止。
下面是一個簡單的例子:
mysql>SELECT
->USER()
->,
->CURRENT_DATE;
在這條語句中注意Mysql的提示,由mysql>變成了-->這是在告訴你,沒有看到結束的分號,它在等待你輸入剩下的語句,好好利用這些提示吧。
如果你不想執行你輸入的語句,那就用"\c"來取消它
mysql>SELECT
->USER()
->\c
mysql>
同樣的注意看提示,-->變成了mysql>說明,你可以重新輸入查詢語句了。
下面這張表是可能的mysql的提示:
mysql>
准備就緒
->
等待輸入多條語句的一下一句
'>
等待輸入由單引號開頭語句的結束
">
雙引號,同上
`>
反撇號,同上
/*>
同上
多行輸入經常發生於 由於你輸入單條語句而忘記加上分號的情況下
mysql>SELECT USER()
->
如果發生了這種情況,你輸入了語句,但mysql在等待你的輸入。而你沒有意識到發生了什麼,你可能停在這裡等待,其實你只需要輸入分號,mysql就會執行你的語句。
mysql>SELECT USER()
->;
'>
和">說明你的語句中輸入了引號的開頭,卻沒輸入結尾,這經常發生在你不小心輸入了半邊引號導致
(博主推薦成對輸入,即(),'',""等成對輸入,這能有效防止忘記關閉,同樣適用於編程)
mysql>SELECT * FROM my_table WHERE name = 'Smith AND age < 30;
'>
如果你輸入了這條語句,按下Enter鍵,什麼也沒發生,你可能會奇怪怎麼這條查詢語句要執行那麼久,那麼你應該看下'>這條線索。(它說明mysql在等待你的輸入,你沒注意到它在說,你伢的,怎麼不給我加個反引號啊)
如果發生了這種情況,要怎麼辦呢,這還不簡單,輸入\c,取消不就行了。事實是這樣還真不行,因為mysql會把\c解釋成''的一部分,所以最好的辦法就是:先加上反引號,再加\c
mysql>SELECT * FROM my_table WHERE name = 'Smith AND age < 30;
'>'\c
mysql>
此時,提示又回到了mysql>,說明你可以接著輸入了。`>
重音符的提示和單雙引號的類似,說明你虎頭蛇尾,只記得開始,卻不結束,做事三分鐘熱情。
這三種情況非常重要 ,因為如果發生了這種情況,後面不管你輸入多少都會被mysql忽略掉(不執行),即使你輸入了QUIT也一樣,這肯定讓人火大。特別是在你以為不能取消這條語句但你又不知道要輸入結束的引號的情況下。3.3 Creating and Using a Database
現在你知道怎麼輸入sql語句了,那你就可以創建數據庫了。
現在假設你有一些寵物,而且你希望能保存一些它們的信息,那麼,你就可以大材小用的建立一張表來保存數據,下面來是步驟:
a.創建數據庫
b.創建數據表
c.通過不同的方式從表中取回數據
d.使用多重表格
這個動物園的數據庫很簡單,但在卻不難想到它在現實中的應用。
通過show命令查看有哪些數據庫(注意database加了s)
其中的mysql數據庫保存了用戶的權限信息,test數據庫一般都會存在,為用戶做一些測試用的。
這條命令不會顯示那些你沒有權限查看的數據庫
如果你的機器上也有test數據庫,通過下面的命令使用它
mysql>USE test
USE和QUIT一樣,不需要分號,當然,如果你有強迫症,為了你的性命著想就加上分號吧,反正加上也沒有害處。
USE特殊的另一點是,它不能跨行。
如果你能使用test數據,那就用吧,但是test數據庫上的數據可能被任何其他有權限使用test數據的人刪除掉,所以最好建立自己的數據庫。
假設你需要使用你的數據庫(上面建立的動物園),管理員需要執行下面的命令:
mysql> GRANT ALL ON menagerie.* TO 'your_mysql_name'@'your_client_host';
your_mysql_n
ame 就是你的賬戶名,your_client_host是你用來登陸服務器的機器地址
如果管理員已經為你建好了數據庫,那你只需要用就行了,如果沒有,那你得自己動手創建
mysql>CREATE DATABASE menagerie;
注意:在unix上,它是大小寫敏感的,在創建數據表時也一樣,也就是說,你創建時用的大寫使用時也得是大寫,在win上,不存在這個問題,但是最好還是保持一致,不要忽大忽小。
如果你遇到了這種錯誤提示:
ERROR 1044 (42000): Access denied for user 'micah'@'localhost' to database 'menagerie'
說明那個你相信的管理員陰了你一把,沒有給你足夠的權限,帶上磚頭找他去吧。
創建數據庫並不是說就選擇了它,要使用它,你還得選擇它
mysql>USE menagerie
你的數據庫只需要創建一次,但是每次使用前你都得選擇它才能用。
當然你也可以在登陸時直接選擇它:
shell>mysql -h
Enter password:host
-uuser
-p menagerie********
注意,menagerie不是你的密碼,如果你非要在第一行輸入密碼,那麼你就不要用空格。
不要寫:mysql -h host -u user -p mima 而應該:mysql -h host -u user -pmima 但是,這種寫在同一行是不推薦使用的。
任何時候你都可以通過下面這條命令來查看,當前被選擇的數據庫:
SELECT
DATABASE()
;
建表是很容易的,但它是空的,可以通過這條命令查看到:
mysql>SHOW TABLES;
難的是,要怎麼組織數據庫的結構,建哪些表格,
列。
你想保存你寵物的數據庫,那可以建個名叫pet的表,最少也要包含名字,還就包含一些其他信息,比如,如果你家人也養寵物,那你可能想保存主人的信息。
要不要保存年齡呢,事實上建議你保存,生日更合適,因為,年齡會隨著時光的飛逝而增加,但生日永遠無法改變,而年齡可以通過生日計算出來,blablablabla
我們這裡保存的信息包括:name, owner, species, sex, birth, and death.
通過Create Table命令創建這張表的樣式
mysql>CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
->species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
VARCHAR這種數據類型對name,owner,species是不錯的選擇,因你它們的長度是變化不定的。你可以任意指定從1~65535的值,如果你事先指定的短了,mysql有ALTER TABL
E 命令
表示性別的方式有好幾種,比如 f,m 或者 female ,male,
最簡潔的方式是 f ,m
.
birth ,death 用DAT
E格式
當你創建數據表後,show tables就能有結果了 :
為了確認你的數據表是你想創建的樣子,用DESCRIBE命令:
只要你願意,DESCEIBE命令隨便用。
為了填充數據表,Load 或者Insert 都可以
因為剛建表,你可以將數據寫入一個txt文件中,每一條數據之間用tab隔開,然後執行下面的語句導入數據:
mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet;
我的這個文件在我桌面上:
結果:
如果你的編輯器中用的是\r\n來換行,那你應該用下面這條命令:
mysql>LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet
->LINES TERMINATED BY '\r\n';
在蘋果上,你應該換成:TERMINATED BY '\r'
如果命令失敗了,應該是你mysql安裝時沒有選擇默認本地文件處理能力。
當你想一條一條輸入時,Insert 命令有用武之地了。
mysql>INSERT INTO pet
->VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);
字符串,日期,要用引號,空白用NULL
剩下的有時間再譯....