MySQL数据库之创建表

通过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 NULLNULL
DEFAULT default_value表示默认值
AUTO_INCREMENT表示是否是自动编号,每个表只能有一个 AUTO_INCREMENT 列,并且必须被索引
PRIMARY KEY表示是否为主键。一个表只能有一个 PRIMARY KEY。如果表中没有一个 PRIMARY KEY,而某些应用程序需要 PRIMARY KEY,MySQL将返回第一个没有任何 NULL 列的 UNIQUE 键,作为 PRIMARY KEY
reference_definition为字段添加注释

type类型

数值类型
字符串类型
日期时间类型
整型
浮点型
定点型
字符型
变长字符型
文本型
日期型
时间型
日期时间型
FieldType
NumericType
StringType
DateTimeType
IntegerType
FloatType
DecimalType
CharType
VarcharType
TextType
DateType
TimeType
DatetimeType

1. table_options
table_options:表的⼀些特性参数,其中⼤多数选项设计的是表数据如何存储及存储在何处。

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值