內容簡介:
一旦學會了如何輸入SQL語句,就能夠訪問數據庫了!
假如你家裏有幾個寵物,而且但願記錄關於它們的各類信息,你能夠建立數據表來存儲這些信息。以後你就能夠經過檢索這些信息來回答各類關於你的動物的問題。
menagerie數據庫很簡單,可是經過它咱們不難了解到現實世界中的相似狀況。例如,農民可使用相似的數據庫來記錄牲畜數據,獸醫使用數據庫記錄動物的病例。如下部分用到的數據庫能夠在這個網站獲取:https://dev.mysql.com/doc/mysql
用 SHOW 語句能夠查出當前服務器上有哪些數據庫:sql
mysql> SHOW DATABASES; +----------+ | Database | +----------+ | mysql | | test | | tmp | +----------+
mysql數據庫描述了用戶訪問權限。test 數據庫一般做爲用戶測試使用。以上sql語句列出的數據庫可能因機器而有所不一樣。SHOW DATABASES 語句並不會列出你無權訪問的數據庫。若是test數據庫存在,能夠嘗試訪問它:shell
mysql> USE test Database changed
USE 和 QUIT 類似,不須要分號結尾(固然若是你喜歡加分號,也沒有關係), USE 語句還有另一個特殊之處:它必須在一行內。
後面的示例可使用 test 數據庫,可是你在這個庫裏建立的任何數據均可能會被其餘訪問者刪除。所以,你應該聯繫管理員受權使用你本身的數據庫,例如你想訪問 menagerie 數據庫,管理員會執行以下語句給你受權:數據庫
mysql> GRANT ALL ON menagerie.* TO 'your_mysql_name'@'your_client_host';
your_mysql_name 是你的MySQL用戶,your_client_host 是主機地址,你從這個主機鏈接服務器。服務器
1. 建立並選定數據庫ide
mysql> CREATE DATABASE menagerie;
在UNIX環境中,數據庫名稱是區分大小寫的,所以必定要注意,須要一直使用 menagerie, 不能使用相似於 Menagerie, MENAGERIE 等變體,表名稱也是如此。(在Windows系統中沒有這個限制,可是由於種種緣由,最佳實踐仍是推薦使用在建立時用的名稱)
建立了一個數據庫並不會自動選中它,必須明確指定數據庫。要使 menagerie 成爲當前數據庫,使用以下語句:佈局
mysql> USE menagerie Database changed
數據庫只需建立一次,可是在每次開始mysql會話時,要使用數據庫都須要先選中它。除了使用USE語句,還能夠在啓動mysql時,在命令行中選擇數據庫:測試
shell> mysql -h host -u user -p menagerie Enter password: ********
2. 建立表
建立數據庫很簡單,但此時它是空的,使用SHOW TABLES語句結果以下:網站
mysql> SHOW TABLES; Empty set (0.00 sec)
考慮數據庫結構是有些複雜的,這時須要考慮要包含什麼表,以及每一個表都須要什麼列。
咱們須要一個表來記錄各類寵物,能夠命名爲 pet,最低限度上,它應該包含每一個動物的名字。可是名字自己並無什麼意思,表應該包含更多其餘信息。例如,若是家庭中不止一人飼養寵物,你可能須要列出每一個動物的主人,你可能還想記錄其餘信息,好比物種和性別。年齡信息也頗有意思,可是並不適合存在數據庫中,由於它會隨着時間變化,所以,存儲一個固定值,好比出生日期,可能會更合適!
使用CREATE TABLE語句指定表的佈局:命令行
mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20), species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
對於name, owner 和species 列,VARCHAR是比較適合的,由於列的內容長度是變化的,能夠不用都設定爲20,通常能夠設定爲1-65535之間的任何長度。若是設置的長度不合理,之後須要修改,可使用ALTER TABLE語句。
建立表以後,使用 SHOW TABLES 語句能夠看到相似以下結果:
mysql> SHOW TABLES; +---------------------+ | Tables in menagerie | +---------------------+ | pet | +---------------------+
若要驗證表是否正確建立,可使用 DESCRIBE 語句:
mysql> DESCRIBE pet; +---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | name | varchar(20) | YES | | NULL | | | owner | varchar(20) | YES | | NULL | | | species | varchar(20) | YES | | NULL | | | sex | char(1) | YES | | NULL | | | birth | date | YES | | NULL | | | death | date | YES | | NULL | | +---------+-------------+------+-----+---------+-------+
能夠在任什麼時候候使用DESCRIBE查詢表中列的名稱或者類型。