![MySQL数据库应用与管理](https://wfqqreader-1252317822.image.myqcloud.com/cover/953/33892953/b_33892953.jpg)
3.3 创建数据表
数据库创建以后,选定这个新创建的数据库作为当前默认的数据库,然后就可以在该数据库中创建数据表了。
3.3.1 使用Navicat对话方式创建数据表
以在学生管理系统数据库(stuInfo)中创建学生表(student)为例,使用Navicat对话方式创建用户数据表的步骤如下。
1)在“Navicat for MySQL”窗口中,依次展开“LDL”→“stuinfo”,双击“stuinfo”打开该数据库,在“表”上右击,选择“新建表”菜单命令(或者单击工具栏上的“新建表”按钮),显示如图3-1所示的表结构设计窗口。
![](https://epubservercos.yuewen.com/063656/18123625308034706/epubprivate/OEBPS/Images/40_01.jpg?sign=1739284953-BmpcMKYSAkdIWskCphKIczozj8c14TFA-0-2475d149b5e536443cf5de3222bf9473)
图3-1 表结构设计窗口
2)在表结构设计窗口中,通过工具栏上的“添加字段”“插入字段”和“删除字段”等按钮来设置字段名、数据类型、是否允许为空、默认值、为数据类型指定长度、自动递增、主键、注释等。学生表的表结构设计如图3-2所示。
![](https://epubservercos.yuewen.com/063656/18123625308034706/epubprivate/OEBPS/Images/41_01.jpg?sign=1739284953-ojjG56eXZtUJIhTgFLVWa1qiSZsiDjpE-0-c0c062a9bdbdf6d14225f3dec7fe47f6)
图3-2 学生表的表结构设计
3)完成数据表所有列的设置后,单击工具栏上的“保存”按钮,弹出如图3-3所示的“表名”对话框,输入表名“student”,单击“确定”按钮,即完成学生表(student)的创建。
![](https://epubservercos.yuewen.com/063656/18123625308034706/epubprivate/OEBPS/Images/41_02.jpg?sign=1739284953-7aOtNQT6jtB5DIBvpsfo5rkHx5BMxqVB-0-7a5a5bc64571eac5bc7f3dd282867cc2)
图3-3 “表名”对话框
3.3.2 使用SQL语句创建数据表
创建数据表使用CREATE TABLE语句,其语法格式如下:
![](https://epubservercos.yuewen.com/063656/18123625308034706/epubprivate/OEBPS/Images/41_03.jpg?sign=1739284953-dzhHNDhSLrsPqLSz7Io3vvCE58vONXFu-0-06763641fb5406ba76468f7f05b49a12)
![](https://epubservercos.yuewen.com/063656/18123625308034706/epubprivate/OEBPS/Images/42_01.jpg?sign=1739284953-dpMUV5xOU50QFBR9Ct8EadAX2UrSq3dB-0-b9bdd8ce6cf59176e77e1141f7b3aca9)
说明:
● 每一个字段都可以使用属性对其进行限制说明,主要包括AUTO_INCREMENT、NOT NULL、DEFAULT等。其中AUTO_INCREMENT是用来设置字段的自动增量属性,当数值类型的字段设置为自动增量时,每增加一条新记录,该字段的值就自动加1,而且此字段的值不允许重复;插入记录时也可以为自增字段指定某一非零数值,如果标准已经存在,该值将出错,否则使用指定数值作为自增字段的值,并且下次插入时,下条记录中该字段的值将在此值的基础上加1;AUTO_INCREMENT属性只能修饰整数类型的字段。
● 可以使用PRIMARY KEY、UNIQUE、INDEX、KEY等子句为字段定义索引。另外也可以使用FOREIGN KEY子句创建与其他数据表的主键字段的外键约束。这将在第4章中详细介绍。
● MySQL支持多种存储引擎,例如MyISAM、InnoDB、HEAP、BOB、CSV等,其中最重要的是MyISAM和InnoDB这两种存储引擎。如果在创建数据表时没有设置存储引擎,默认的存储引擎是由MySQL配置文件里的default-table-type选项指定的,默认值为InnoDB。当用CREATE TBALE创建新的数据表时,可以通过ENGINE或TYPE选项确定存储引擎。MyISAM和InnoDB存储引擎的比较如下所示。
■ MyISAM:该存储引擎成熟、稳定、易于管理,是最节约空间和响应速度最快的一种存储引擎;但该类型不支持事务操作和外键约束。
■ InnoDB:该存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全存储引擎,也支持外键约束,并且具有更高的安全性。
【示例3-1】在数据库stuInfo中创建学生表(student1),其中id字段为自动增加的无符号整数、主键,sNo、sName字段不允许为空。
![](https://epubservercos.yuewen.com/063656/18123625308034706/epubprivate/OEBPS/Images/42_02.jpg?sign=1739284953-VgU7Eu8nPxCIwpnhHdefaDk2lYerXZoB-0-de845c8f3fce97e75cd33e9c316b1a95)
在“Navicat for MySQL”窗口中,依次展开“LDL”→“stuinfo”,双击“stuinfo”打开该数据库,单击工具栏上的“新建查询”按钮,打开一个查询窗口。在该窗口中输入以上SQL语句,单击工具栏上的“运行”按钮执行该语句。运行结果如图3-4所示。
![](https://epubservercos.yuewen.com/063656/18123625308034706/epubprivate/OEBPS/Images/43_01.jpg?sign=1739284953-L80hV8ulBEekkfJnQYR6z9rymEtM4PpR-0-a3d47f87b9ea613080101b3bd299de71)
图3-4 创建学生表(student1)
然后在“stuinfo”→“表”节点上右击,选择“刷新”菜单命令,则可以看到所创建的“student1”数据表了。
【示例3-2】在数据库stuInfo中创建课程表(course),其中id字段为自动增加的无符号整数、主键,cNo、cName字段不允许为空。运行结果如图3-5所示。
![](https://epubservercos.yuewen.com/063656/18123625308034706/epubprivate/OEBPS/Images/43_02.jpg?sign=1739284953-Jeli0xTsiFJF2BPVkIA1DLMRi2AVI3Y3-0-fc51d1491e8b102d634851f1a50fbcbd)
![](https://epubservercos.yuewen.com/063656/18123625308034706/epubprivate/OEBPS/Images/43_03.jpg?sign=1739284953-5GKAq1fcvhGi70UT4e9SPL2I0EHqddlM-0-56e811c7cbe30d0bba2376a32081c99c)
图3-5 创建课程表(course)
【示例3-3】在数据库stuInfo中创建成绩表(score),其中id字段为自动增加的无符号整数、主键,sId、cId、grade字段不允许为空。运行结果如图3-6所示。
![](https://epubservercos.yuewen.com/063656/18123625308034706/epubprivate/OEBPS/Images/44_01.jpg?sign=1739284953-nGhdW3yAU5Ekl7BMOHYy1DgpEPa5N1TR-0-a0429d62e7fb05c504bf9a5042e5ff34)
![](https://epubservercos.yuewen.com/063656/18123625308034706/epubprivate/OEBPS/Images/44_02.jpg?sign=1739284953-q9JbIBv7G8xHjKe0FEK1VJsUcvfHgLDb-0-4274f50faeecebb0c5a4d5cb2fc1297d)
图3-6 创建成绩表(score)
数据表成功创建后,可以使用“SHOW TABLES;”语句进行查看。
【示例3-4】查看数据库stuInfo中所有数据表。运行结果如图3-7所示。
![](https://epubservercos.yuewen.com/063656/18123625308034706/epubprivate/OEBPS/Images/44_03.jpg?sign=1739284953-6VyAgrUtS78rYPtmdCebNQphS6lW6PF8-0-069abd2dc80fd2f519190819101e219e)
![](https://epubservercos.yuewen.com/063656/18123625308034706/epubprivate/OEBPS/Images/44_04.jpg?sign=1739284953-MYhCPzEzx6zQAK9sz2vyBOJOI0i194r9-0-00c87a904582493271fb83562b84906a)
图3-7 查看数据表