一般有两种创建表的方法:
1.使用具有交互式创建和管理表的工具;
2.表也可以直接用mysql语句操纵。
为了用程序创建表,可使用sql的 create table 语句。值得注意的是,在使用交互式工具时,实际上使用的是mysql语句。但是,这些语句不是用户编写的,界面工具会自动生成并执行相应的mysql语句(更改现有表时也是这样)。
表创建基础
为利用 create table 创建表,必须给出下列信息:
1.新表的名字,在关键字 create table 之后给出;
2.表列的名字和定义,用逗号分隔。
create table 语句也可能会包括其他关键字或选项,但至少要包括表的名字和列的细节。下面的mysql语句创建本书中所用的 customers 表:
输入:
create table customers ( cust_id int not null auto_increment, cust_name char(50) not null, cust_address char(50) null, cust_city char(50) null, cust_state char(5) null, cust_zip char(10) null, cust_country char(50) null, cust_contact char(50) null, cust_email char(255) null primary key (cust_id) )engine = innodb;
分析:从上面的例子中可以看到,表名紧跟在 create table 关键字后面。实际的表定义(所有列)括在圆括号之中。各列之间用逗号分隔。这个表由9列组成。每列的定义以列名(它在表中必须是唯一的)开始,后跟列的数据类型(关于数据类型的解释,请参阅第1章。此外,附录d列出了mysql支持的数据类型)。表的主键可以在创建表时用primary key 关键字指定。这里,列 cust_id 指定作为主键列。整条语句由 右 圆 括 号 后 的 分 号 结 束 。( 现 在 先 忽 略 engine=innodb 和auto_increment ,后面会对它们进行介绍。)
语句格式化 可回忆一下,以前说过mysql语句中忽略空格。语句可以在一个长行上输入,也可以分成许多行。它们的作用都相同。这允许你以最适合自己的方式安排语句的格式。前面的 create table 语句就是语句格式化的一个很好的例子,它被安排在多个行上,其中的列定义进行了恰当的缩进,以便阅读和编辑。以何种缩进格式安排sql语句没有规定,但我强烈推荐采用某种缩进格式。
处理现有的表 在创建新表时,指定的表名必须不存在,否则将出错。如果要防止意外覆盖已有的表,sql要求首先手工删除该表,然后再重建它,而不是简单地用创建表语句覆盖它。如果你仅想在一个表不存在时创建它,应该在表名后给出 if not exists 。这样做不检查已有表的模式是否与你打算创建的表模式相匹配。它只是查看表名是否存在,并且仅在表名不存在时创建它。
以上就是用mysql语句创建数据表详细教程的详细内容。
