- MySQL數(shù)據(jù)庫(kù)應(yīng)用與管理
- 魯大林主編
- 1361字
- 2020-10-23 14:15:46
3.3 創(chuàng)建數(shù)據(jù)表
數(shù)據(jù)庫(kù)創(chuàng)建以后,選定這個(gè)新創(chuàng)建的數(shù)據(jù)庫(kù)作為當(dāng)前默認(rèn)的數(shù)據(jù)庫(kù),然后就可以在該數(shù)據(jù)庫(kù)中創(chuàng)建數(shù)據(jù)表了。
3.3.1 使用Navicat對(duì)話方式創(chuàng)建數(shù)據(jù)表
以在學(xué)生管理系統(tǒng)數(shù)據(jù)庫(kù)(stuInfo)中創(chuàng)建學(xué)生表(student)為例,使用Navicat對(duì)話方式創(chuàng)建用戶數(shù)據(jù)表的步驟如下。
1)在“Navicat for MySQL”窗口中,依次展開(kāi)“LDL”→“stuinfo”,雙擊“stuinfo”打開(kāi)該數(shù)據(jù)庫(kù),在“表”上右擊,選擇“新建表”菜單命令(或者單擊工具欄上的“新建表”按鈕),顯示如圖3-1所示的表結(jié)構(gòu)設(shè)計(jì)窗口。

圖3-1 表結(jié)構(gòu)設(shè)計(jì)窗口
2)在表結(jié)構(gòu)設(shè)計(jì)窗口中,通過(guò)工具欄上的“添加字段”“插入字段”和“刪除字段”等按鈕來(lái)設(shè)置字段名、數(shù)據(jù)類(lèi)型、是否允許為空、默認(rèn)值、為數(shù)據(jù)類(lèi)型指定長(zhǎng)度、自動(dòng)遞增、主鍵、注釋等。學(xué)生表的表結(jié)構(gòu)設(shè)計(jì)如圖3-2所示。

圖3-2 學(xué)生表的表結(jié)構(gòu)設(shè)計(jì)
3)完成數(shù)據(jù)表所有列的設(shè)置后,單擊工具欄上的“保存”按鈕,彈出如圖3-3所示的“表名”對(duì)話框,輸入表名“student”,單擊“確定”按鈕,即完成學(xué)生表(student)的創(chuàng)建。

圖3-3 “表名”對(duì)話框
3.3.2 使用SQL語(yǔ)句創(chuàng)建數(shù)據(jù)表
創(chuàng)建數(shù)據(jù)表使用CREATE TABLE語(yǔ)句,其語(yǔ)法格式如下:


說(shuō)明:
● 每一個(gè)字段都可以使用屬性對(duì)其進(jìn)行限制說(shuō)明,主要包括AUTO_INCREMENT、NOT NULL、DEFAULT等。其中AUTO_INCREMENT是用來(lái)設(shè)置字段的自動(dòng)增量屬性,當(dāng)數(shù)值類(lèi)型的字段設(shè)置為自動(dòng)增量時(shí),每增加一條新記錄,該字段的值就自動(dòng)加1,而且此字段的值不允許重復(fù);插入記錄時(shí)也可以為自增字段指定某一非零數(shù)值,如果標(biāo)準(zhǔn)已經(jīng)存在,該值將出錯(cuò),否則使用指定數(shù)值作為自增字段的值,并且下次插入時(shí),下條記錄中該字段的值將在此值的基礎(chǔ)上加1;AUTO_INCREMENT屬性只能修飾整數(shù)類(lèi)型的字段。
● 可以使用PRIMARY KEY、UNIQUE、INDEX、KEY等子句為字段定義索引。另外也可以使用FOREIGN KEY子句創(chuàng)建與其他數(shù)據(jù)表的主鍵字段的外鍵約束。這將在第4章中詳細(xì)介紹。
● MySQL支持多種存儲(chǔ)引擎,例如MyISAM、InnoDB、HEAP、BOB、CSV等,其中最重要的是MyISAM和InnoDB這兩種存儲(chǔ)引擎。如果在創(chuàng)建數(shù)據(jù)表時(shí)沒(méi)有設(shè)置存儲(chǔ)引擎,默認(rèn)的存儲(chǔ)引擎是由MySQL配置文件里的default-table-type選項(xiàng)指定的,默認(rèn)值為InnoDB。當(dāng)用CREATE TBALE創(chuàng)建新的數(shù)據(jù)表時(shí),可以通過(guò)ENGINE或TYPE選項(xiàng)確定存儲(chǔ)引擎。MyISAM和InnoDB存儲(chǔ)引擎的比較如下所示。
■ MyISAM:該存儲(chǔ)引擎成熟、穩(wěn)定、易于管理,是最節(jié)約空間和響應(yīng)速度最快的一種存儲(chǔ)引擎;但該類(lèi)型不支持事務(wù)操作和外鍵約束。
■ InnoDB:該存儲(chǔ)引擎提供了具有提交、回滾和崩潰恢復(fù)能力的事務(wù)安全存儲(chǔ)引擎,也支持外鍵約束,并且具有更高的安全性。
【示例3-1】在數(shù)據(jù)庫(kù)stuInfo中創(chuàng)建學(xué)生表(student1),其中id字段為自動(dòng)增加的無(wú)符號(hào)整數(shù)、主鍵,sNo、sName字段不允許為空。

在“Navicat for MySQL”窗口中,依次展開(kāi)“LDL”→“stuinfo”,雙擊“stuinfo”打開(kāi)該數(shù)據(jù)庫(kù),單擊工具欄上的“新建查詢”按鈕,打開(kāi)一個(gè)查詢窗口。在該窗口中輸入以上SQL語(yǔ)句,單擊工具欄上的“運(yùn)行”按鈕執(zhí)行該語(yǔ)句。運(yùn)行結(jié)果如圖3-4所示。

圖3-4 創(chuàng)建學(xué)生表(student1)
然后在“stuinfo”→“表”節(jié)點(diǎn)上右擊,選擇“刷新”菜單命令,則可以看到所創(chuàng)建的“student1”數(shù)據(jù)表了。
【示例3-2】在數(shù)據(jù)庫(kù)stuInfo中創(chuàng)建課程表(course),其中id字段為自動(dòng)增加的無(wú)符號(hào)整數(shù)、主鍵,cNo、cName字段不允許為空。運(yùn)行結(jié)果如圖3-5所示。


圖3-5 創(chuàng)建課程表(course)
【示例3-3】在數(shù)據(jù)庫(kù)stuInfo中創(chuàng)建成績(jī)表(score),其中id字段為自動(dòng)增加的無(wú)符號(hào)整數(shù)、主鍵,sId、cId、grade字段不允許為空。運(yùn)行結(jié)果如圖3-6所示。


圖3-6 創(chuàng)建成績(jī)表(score)
數(shù)據(jù)表成功創(chuàng)建后,可以使用“SHOW TABLES;”語(yǔ)句進(jìn)行查看。
【示例3-4】查看數(shù)據(jù)庫(kù)stuInfo中所有數(shù)據(jù)表。運(yùn)行結(jié)果如圖3-7所示。


圖3-7 查看數(shù)據(jù)表
- PyTorch深度學(xué)習(xí)實(shí)戰(zhàn):從新手小白到數(shù)據(jù)科學(xué)家
- Java Data Science Cookbook
- Hadoop與大數(shù)據(jù)挖掘(第2版)
- 區(qū)塊鏈:看得見(jiàn)的信任
- 跟老男孩學(xué)Linux運(yùn)維:MySQL入門(mén)與提高實(shí)踐
- 深入淺出 Hyperscan:高性能正則表達(dá)式算法原理與設(shè)計(jì)
- INSTANT Apple iBooks How-to
- 貫通SQL Server 2008數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)
- Unity 2018 By Example(Second Edition)
- 大數(shù)據(jù)數(shù)學(xué)基礎(chǔ)(Python語(yǔ)言描述)
- 智慧城市中的大數(shù)據(jù)分析技術(shù)
- Oracle 11g+ASP.NET數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)案例教程
- 大數(shù)據(jù)數(shù)學(xué)基礎(chǔ)(R語(yǔ)言描述)
- 改進(jìn)的群智能算法及其應(yīng)用
- Hands-On Deep Learning for Games