MySQL数据库基础篇(创建、修改、删除表)

创建表


创建一个全新的表

语法格式

create [temporary] table [if not exists] 表名
[([列定义],...|[索引定义])]
[表选项][select 语句];

select 语句:采用select语句描述一个已有表创建表。
列定义:包括表名、数据类型和宽度等,还可以包含是否允许空值和完整性约束。
temporary:该关键字表示用create命令新建的表为临时表。
if not exists:用此选项可避免出现表已经存在无法再新建的错误。

注意事项

  1. 关于‘列定义’的格式:
列名  类型  [not null | null] [default 默认值]
[auto_increment] [unique [key] | [primary] key]
[comment '列注释'] [参照定义]

列名:在表中要唯一
auto_increment:设置自增属性,只有整型列才能设置此属性。
类型:有的数据类型需要指明长度n,用括号括起。如:char(8) not null |
null:指定该列是否允许为空。如果不指定,则默认为null
default 默认值:为列指定默认值,必须是一个常数。其中,blob和text列不能被赋予默认值。
unique key | primary key:都表示字段中的值是唯一的。后者表示设置为主键主键一定要为not null
参照定义:指定参照的表和列。

  1. 关于‘类型’:

MySQL支持两种数据类型选项:character set 和 collate。如果要区分字符的大小写情况,可以在字符类型后面加上bingary.

  1. 关于‘表选项’:

{engine | type} = engine_name 储存引擎
auto_increment = 值 初始值
comment = ‘注释’
data directory = ‘路径’ 数据文件的路径
index directory = ‘路径’ 索引的路径

实战演练

我们来建一个这样子的表(假装不是小新建的):
在这里插入图片描述
这个表的基本结构:
在这里插入图片描述
下面我们开始喽!
在这里插入图片描述
我们要把表格的框架先写出来:

在这里插入图片描述
我们用“describe(desc) 表名;”这个命令查看我们刚才建立的表的框架:

在这里插入图片描述
成功了!!!


复制现成的表

语法格式

create [temporary] table [if not exists] 表名
     [like 源表名[ ]]
     | [as (select 语句)];

用like关键字创建一个与“源表名”相同结构的新表,列名,数据类型,空指针和索引也将复制,但是表的内容不会复制,也就是说复制的是这个表的框架(结构),而新建的该表是一个空表
用as关键字可以复制表的select语句,但索引和完整性约束不会复制

实战演练

我们要复制表temp_2的结构:

在这里插入图片描述

当我们使用了like关键字复制时,表temp_2里的内容并不能被复制过去。

在这里插入图片描述

使用as关键词复制表时,里面的内容会一起被复制过来。
但两者复制过来的表结构都是相同的。

修改表


修改表结构

语法格式

alter [ignore] table 表名
修改项 [,修改项]...

注意事项

关于修改项:

add [column] 列定义 [first | after 列名] -------------添加列
change [column] 旧列名 列定义 [first | after 列名]------------------对列重命名
drop [column] 列名---------------------------------------------删除列
order by 列名-----------------------------------------------------排序

  • ignore: MySQL相对于标准SQL的扩展。若修改后的新表中存在重复关键字,如果没有指定ignore,当重复关键字错误时操作失败;如果指定了ignore,则对于有关键字的行只使用一行,其他有冲突的行被删除。(其实我听不懂,书上的哈哈哈)
  • add [column] 子句:向表中增加新列

在这里插入图片描述
像temp_2表中添加年龄一项:

在这里插入图片描述

可以看到命令中加上了after 姓名这个命令(first | alter
列定义),“年龄”一列则出现在“姓名”之后。若不指定则添加在最后。

  • change [column] 子句:修改列的名称。
  • modify [column] 子句:修改指定列的类型。

若表中该列所存数据的数据类型与将要修改的列的类型冲突,则发生错误。如列值中有字母,但我们像修改列的类型为int,这种骚操作无法实现。

  • order by 子句:用于在创建新表时,让各行按一定的顺序排列。在执行插入和删除操作后,表不会仍保持此顺序。
  • rename 子句:修改表名。
    在这里插入图片描述
    另一种修改表名的命令
rename table 原表名 to 新表名
 [, 原表名 to 新表名]...
  • drop 子句:从表中删除列或约束。

删除表


语法格式

drop [temporary] table [if exists] 表名 [, 表名]...

在这里插入图片描述
现在只要剩下“小新的超级名单”这个表,让我们把其他两个表山删掉吧。

在这里插入图片描述

搞定啦

在这里插入图片描述
那么下次见,拜拜!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值