mysql创建数据库表_mysql基础之创建数据库和表
標簽:
假設你已擁有創(chuàng)建和修改服務器上數據庫所必需的權限,那么我們來看一下如何創(chuàng)建數據庫以及數據庫中的表。在本章的示例中,我們將為一個虛擬的書店建立一個數據庫:
CREATE?DATABASE?bookstore;
通過這條簡單的SQL語句,我們已經創(chuàng)建了名為bookstore的數據庫。另外,MySQL語句以及子句中的保留字對大小寫不敏感。數據庫與表名對大小寫是否敏感取決于你所用的操作系統(tǒng),比如在Linux系統(tǒng)上對大小寫是敏感的,而Window系統(tǒng)對大小寫不敏感。按照通常的習慣,在SQL說明文檔中保留字均使用大寫字母,而數據庫名,表名以及字段名都使用小寫字母。你可能也注意到了SQL語句結尾處的分號。一條完整的SQL語句可能不止一行,直到輸入分號以后,客戶機程序才會將SQL語句發(fā)送到服務器解析執(zhí)行。
創(chuàng)建好數據庫后,這雖然只是空庫,但是我們可通過下面的語句從默認數據庫切換到新數據庫:
USE?bookstore
使用上述語句,就不必在每個SQL語句中都指定所用到的數據庫名了。默認情況下,MySQL會把最后一個指定的數據庫作為當前使用的數據庫。該語句是基于客戶機程序的SQL語句,所以在句尾不必添加分號。
下面,我們將創(chuàng)建第一個表,以后blog將把數據添加到此表中。首先創(chuàng)建一個存放圖書基本信息的數據庫,因為這是書店業(yè)務的核心信息:
CREATE?TABLE?books?(
book_id?INT,
title?VARCHAR(50),
author?VARCHAR(50)
);
上面的SQL語句創(chuàng)建了帶有三個列的圖書信息表。圓括號內是列的全部列表。接下來輸入DESCRIBE語句可查看剛剛創(chuàng)建的表的結果,該結果以表格形式輸出:
DESCRIBE?books;
考慮到書店規(guī)模有點大,我們認為還需要為數據元素多添加幾個列:出版商,出版年份,ISBN碼,圖書類型,圖書描述等等。我們還想讓MySQL自動為book_id列分配一個數字編號,這樣在添加一行新記錄時就不必擔心有重復問題發(fā)生。另外,我們決定將作者字段的真實作者名改為標識碼,通過標識碼可將本表與包含作者名字段的其他表關聯(lián)起來。這種方式將數據統(tǒng)一起來,可以簡化數據的輸入,也使排列查找操作更容易實現(xiàn)。輸入下列SQL語句可在已創(chuàng)建好的數據表中完成修改操作:
ALTER?TABLE?books
CHANGE?COLUMN?book_id?book_id?INT?AUTO_INCREMENT?PRIMARY?KEY,
CHANGE?COLUMN?author?author_id?INT,
ADD?COLUMN?description?TEXT,
ADD?COLUMN?genre?ENUM?(‘novel‘,‘poetry‘,‘drama‘),
ADD?COLUMN?publisher_id?INT,
ADD?COLUMN?pub_year?VARCHAR(4),
ADD?COLUMN?isbn?VARCHAR(20);
在這個SQL語句的起始行后,可以看到每個修改或添加字段的子句都是由一個逗號分開的。第二行子句修改book_id列,即便是使用原來的列名和數據類型,我們也要將其重寫一遍。我們還要為其添加AUTO_INCREMENT標記,它負責執(zhí)行前一段提到的任務,就是將任意一個唯一的值分配給表中的每條記錄。另外,我們還要將該字段設為主鍵,以提高數據檢索的速度。
第一個CHANGE子句可能會讓人感到迷惑,因為其中列名(book_id)出現(xiàn)了二次。當了解CHANGE子句的語法時,你就會明白其中的意義了,第一個book_id表示將要修改的現(xiàn)在列,該子句余下的部分用于指定一個新列。要想更好地理解這個子句的意思,可查看第二條CHANGE子句:該子句用新列author_id替代了現(xiàn)有列author。數據表中不再有名為author的列。
在第三行子句中,我們修改了author列,令其名稱及數據類型與將要創(chuàng)建的authors表中的名稱與類型一致。如同books表中的索引列代表圖書一樣,authors表中也有一個代表每個作者的索引列。我們把books表和authors表關聯(lián)起來做查詢操作,這樣就可通過books表的author_id列找到author表中相應的記錄。由于authors表中相應列的數據類型是INT,所以該子句中author_id列的數據類型也一定是INT。
第四行子句為每本書添加了一個描述列。該列的數據類型是文本類型,文本類型是可變長數據類型,可支持長度小于64千字節(jié)的數據。
在genre列中,為了確保統(tǒng)一性,事先已列舉了幾個可用的值。該字段允許為空值或NULL,空值或NULL并不需要指定。
向books表輸入數據之前,我們先快速建立一個authors表。該表做為備查表。首先要向authors表中添加數據,因為我們向books表中添加數據時,需要知道books表中authors列的標識號:
CREATE?TABLE?authors(
author_id?INT?AUTO_INCREMENT?PRIMARY?KEY,
author_last?VARCHAR(50),
author_first?VARCHAR(50),
country?VARCHAR(50)
);
根據需要,我們還要把books表與authors表通過author_id字段關聯(lián)起來。這個例子先保存起來后面blog再用。
標簽:
總結
以上是生活随笔為你收集整理的mysql创建数据库表_mysql基础之创建数据库和表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初探OAuth2.0第三方认证登录
- 下一篇: SQL Server 2008R2 企业