通过CREATE TABLE创建表
- TEMPORARY
- IF NOT EXISTS
- create_definition
- type
- table_options
通过CREATE TABLE创建表
创建数据表使⽤CREATE TABLE语句,语法如下
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 数据表名
[(create_definition,...)][table_options][select_statement]
1. TEMPORARY
TEMPORARY:如果使⽤该关键字,表示创建⼀个临时表。临时表的功能如下:
(1).当会话结束或者连接终⽌时,MySQL⾃动删除临时表。当然了,也可以使⽤DROP TABLE将临时表
删除。
(2).临时表仅对创建它的客户端可⽤并且可以访问。不同的客户端可以创建具有相同名称的临时表⽽不会
导致错误,因为只有创建临时表的客户端才能看到它。但是,在同⼀会话中,两个临时表不能共享相同
的名称。
⽐如:当我使⽤DBeaver新建⼀个SQL编辑器,我们将这个SQL编辑器命名为:创建临时表,然后在此
SQL编辑器中执⾏下⾯的代码
#先创建⼀个临时表
CREATE TEMPORARY TABLE run.run_stu1
(ID int);
#再查询该临时表
SELECT * FROM run.run_stu1;
此时,可以顺利的执⾏查询语句,只不过该临时表中没有数据,所以查询的结果只有字段。
当我使⽤DBeaver再新建⼀个SQL编辑器,我们将这个SQL编辑器命名为:查询临时表,然后在此SQL编辑器中执⾏下⾯的代码
SELECT * FROM run.run_stu1;
此时,查询失败,错误信息为:
Table 'run.run_stu1' doesn't exist。
原因就在于两条查询语句并没有在⼀个会话中执⾏。
2. IF NOT EXISTS
IF NOT EXISTS:表示当该表不存在时创建表,当表已经存在时不执⾏该语句。注意:在以后的开发中,
创建表时必须加上IF NOT EXISTS。
3. create_definition
create_definition:这是表的列属性部分。MySQL要求在创建表时,表要⾄少包含⼀列。⽐如:
CREATE TEMPORARY TABLE run.run_stu1
(ID int);
其中的ID int就是create_definition。
create_definition参数如下
col_name type [NOT NULL|NULL] [DEFAULT default_value] [AUTO_INCREMENT]
[PRIMARY KEY] [reference_definition]
create_definition参数说明:
参数 | 说明 |
---|---|
col_name | 字段名 |
type | 字段类型 |
NOT NULL | NULL |
DEFAULT default_value | 表示默认值 |
AUTO_INCREMENT | 表示是否是自动编号,每个表只能有一个 AUTO_INCREMENT 列,并且必须被索引 |
PRIMARY KEY | 表示是否为主键。一个表只能有一个 PRIMARY KEY。如果表中没有一个 PRIMARY KEY,而某些应用程序需要 PRIMARY KEY,MySQL将返回第一个没有任何 NULL 列的 UNIQUE 键,作为 PRIMARY KEY |
reference_definition | 为字段添加注释 |
type类型
1. table_options
table_options:表的⼀些特性参数,其中⼤多数选项设计的是表数据如何存储及存储在何处。