Create database语句是在MySQL实例上创建一个指定名称的数据
库,create schema语句的语义和create database是一样的。
SQL语法基础之create_第1张图片
Create table语句是在数据库中创建表
SQL语法基础之create_第2张图片SQL语法基础之create_第3张图片
Tbl_name表示被创建的表名,默认在当前数据库下创建此表,当
然也可以指定在某个数据库下创建表
If not exists表示当相同的表名存在时,则不执行此创建语句,避
免语句执行错误
SQL语法基础之create_第4张图片
Temporary关键词表示创建的是临时表,临时表仅对本链接可见,另外的数据库链接不可见,
当本链接断开时,临时表也自动被drop掉

SQL语法基础之create_第5张图片
另外一个数据库链接执行相同的查询语句查不到数据
SQL语法基础之create_第6张图片
本链接断开口在链接,临时表也不存在。
• Like关键词表示基于另外一个表的定义复制一个新的空表,空表上的字段属性和索
引都和原表相同
SQL语法基础之create_第7张图片
• Create table … as select语句表示创建表的同时将select的查询结果数据
插入到表中,但索引和主外键信息都不会同步过来

SQL语法基础之create_第8张图片
• Data_type表示定义的字段类型,后续会有详细介绍
• Not null/null表示字段是否允许为空,默认为null表示允许为空,not
null表示需要对此字段明确数值,或者要有默认值,否则报错
SQL语法基础之create_第9张图片
• Auto_increment表示字段为整数或者浮点数类型的value+1递增数值,value为当前表
中该字段最大的值,默认是从1开始递增;一个表中只容许有一个自增字段,且该
字段必须有key属性,不能含有default属性,且插入负值会被当成很大的正数
SQL语法基础之create_第10张图片
Column_format目前仅在ndb存储引擎的表上有用,表示该字段的
存储类型是fixed, dynamic或者是default
• Storage目前也仅在ndb存储引擎的表上有用
• Constraint表示为主键、唯一键、外键等约束条件命名,如果没有
命名则MySQL会默认给一个
• Primary key表示该字段为主键,主键字段必须唯一,必须非空,
一个表中只能有一个主键,主键可以包含一个或多个字段
• Key/index表示索引字段
• Unique表示该字段为唯一属性字段,且允许包含多个null值
• Foreign key表示该字段为外键字段
CREATE TABLE gender`(
gender_id int(11) NOT NULL,
name varchar(10) DEFAULT NULL,
PRIMARY KEY (gender_id)
);
create table students5(sid int not null primary key
auto_increment,sname varchar(10) unique,gender int,constraint
for_5 foreign key (gender) references gender(gender_id));
SQL语法基础之create_第11张图片