创建表必须是在数据库内创建表才是有效的,所以在创建表之前,你必须先有数据库,然后在数据库中才能创建表,创建表本质上就是在“MySQL -MySQL server -data-数据库名称”下创建的文件,具体创建的文件类型取决于使用的引擎。
在MySQL中支持两种注释格式,以井号键注释内容2111注释内容
以新表的名字,在关键词CREATE TABLE后给出
表列的名字和定义,用逗号分隔
要注意最后一行,不用加逗号
CREATE TABLE语句也可能会包括其他关键字或选项,但至少要包括表的名字和列的细节
下面给出创建表的通用语法:
**
CREATE TABLE 表名
或
CREATE TABLE IF NOT EXISTS 表名
(
列名1 列名1的类型,
。 。 ,
。 。 ,
。 。 ,
列名n 列名n的类型
)(可以选用ENGINE=指定存储引擎 CHAESET=指定编码方式);**
默认的存储引擎为InnoDB,编码方式默认为UTF8
下面在数据库sys中创建一个名为customers表
创建表就是在MySQL -MySQL server -data下创建的文件
**注意:当需要输入中文时,要临时转换客户端的编码方式“SET NAMES GBK;”即先把编码的方式转换为GBK,再输入中文,其有效位置是从“SET NAMES GBK;”往后有效,前面无效。输入完中文后,可用“SET NAMES UTF8;”**把编码方式改回来。
Null值就是没有值或缺值。允许null值的列,也允许在插入行时不给出该列的值。不允许null值的列不接受该列没有值的行,换句话说,在插入或更新行时,该列必须有值。
我们可以使用not null关键字,使得每个列有定义,这将会阻止插入没有值得列,如果插入没有值的列,将返回错误,插入失败。
我们看到上表第二行为NOT NULL所以在给表插入数据时必须指定cust_id的值,否则会插入失败,见下图:
在创建新表时,指定的表名必须不存在,否则将出错。如果要防止意外覆盖已有的表,SQL要求首先,手工删除该表,然后再重建它,而不是简单地用创建表语句覆盖它。如果你仅想在一个表不存在时,创建它,应该在代表名后给出**“IF NOT EXISTS”**.这样做不检查已有表的模式是否与你打算创建的表模式相匹配,他只是查看表名是否存在,并且仅在表名不存在时创建它。