日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql创建数据库表_mysql基础之创建数据库和表

發(fā)布時間:2023/12/16 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql创建数据库表_mysql基础之创建数据库和表 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

標簽:

假設你已擁有創(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基础之创建数据库和表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。