MySQL知识学习——第二十一天:创建和操纵表

前言

最后九天,继续加油。

我们昨天学习了对数据的基本操作,比如插入数据的INSERT语句,删除数据的DELETE语句已经更新数据的UPDATE语句。

今天我们将继续学习对表格的基本操作。比如表的创建、更改和删除。

创建表

MySQL不仅用于表数据操纵,而且还可以用来执行数据库和表的所有操作,包括表本身的创建和处理。

一般有两种创建表的方法:
 使用具有交互式创建和管理表的工具(如第2章讨论的工具);
 表也可以直接用MySQL语句操纵。

第一种方法是我们在之间的建表时经常用到的,第二种方法我们之前也提到过,就是create table语句。

为了用程序创建表,可使用SQL的CREATE TABLE语句。值得注意的是,**在使用交互式工具时,实际上使用的是MySQL语句。**但是,这些语句不是用户编写的,界面工具会自动生成并执行相应的MySQL语句(更改现有表时也是这样)。

表创建基础

我们将介绍create table语句的基本用法。

为利用CREATE TABLE创建表,必须给出下列信息:
 新表的名字,在关键字CREATE TABLE之后给出;
 表列的名字和定义,用逗号分隔

CREATE TABLE语句也可能会包括其他关键字或选项,但至少要包括的名字和列的细节。

我们看下面最简单的例子
在这里插入图片描述
注意:括号里面给出的是列的信息,要指定列的数据类型,之间用空格分开,列与列之间用逗号分开。

表名紧跟在CREATE TABLE关键字后面。实际的表定义(所有列)括在圆括号之中。各列之间用逗号分隔。

表的主键可以在创建表时用PRIMARY KEY关键字指定。

看下面的例子:

在这里插入图片描述
**要注意的是,我们在创建表时,要确保你的表名之前没有用过,**不然会报错,就像上面一样。所以对表名要注意一下,这一点我们之后会继续讨论。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用NULL值

NULL值就是没有值或缺值。允许NULL值的列也允许在插入行时不给出该列的值。不允许NULL值的列不接受该列没有值的行,换句话说,在插入或更新行时,该列必须有值。

每个表列或者是NULL列,或者是NOT NULL列,这种状态在创建时由表的定义规定。

NULL为默认设置,如果不指定NOT NULL,则认为指定的是NULL。

我们看下面的例子
在这里插入图片描述
我们创建的一个表,有两列,列名为ename的列允许NULL值(因为没有指定,默认为NULL),列名为age的列不允许NULL值,因为我们在创建表的时候指定了NOT NULL。

在这里插入图片描述

主键再介绍

我们在之前学习的时候提到了主键,今天再复习一下。

主键值必须唯一。我们可以使用单列作为主键,也可以使用多列作为主键。但是要保证多列的组合是唯一的。比如看下面的例子
在这里插入图片描述
主键可以在创建表时定义(如这里所示), 或者在创建表之后定义

在这里插入图片描述

使用AUTO_INCREMENT(自增)

AUTO_INCREMENT告诉MySQL,本列每当增加一行时自动增量。每次执行一个INSERT操作时, MySQL自动对该列增量(从而才有这个关键字AUTO_INCREMENT),给该列赋予下一个可用的值。

每个表只允许一个AUTO_INCREMENT列,而且它必须被索引(如,通过使它成为主键。

在这里插入图片描述
在这里插入图片描述

指定默认值

如果在插入行时没有给出值, MySQL允许指定此时使用的默认值。默认值用CREATE TABLE语句的列定义中的DEFAULT关键字指定。

在这里插入图片描述
上面的例子,我们对class列指定了默认值1.

在这里插入图片描述

引擎类型

我们看下面的一个例子。
在这里插入图片描述
最后用一个ENGINE语句,它是用来指定引擎类型的。关于引擎我们了解一下即可。
在这里插入图片描述
在这里插入图片描述

更新表

为更新表定义,可使用ALTER TABLE语句

为了使用ALTER TABLE更改表结构,必须给出下面的信息:
 在ALTER TABLE之后给出要更改的表名(该表必须存在,否则将出错);
 所做更改的列表

在这里插入图片描述
上面的例子就是对表tab10增加了一列grade.

在这里插入图片描述
上面的例子是从表tab10中删除了列grade.

要注意增加列是用关键字ADD加列(包含列名,列的数据类型等,用空格分开),用DROP COLUMN删除列,只需要跟列名即可。

在这里插入图片描述

删除表

删除表(删除整个表而不是其内容)非常简单,使用DROP TABLE语句即可:
在这里插入图片描述
删除表没有确认,也不能撤销,执行这条语句将永久删除该表。

在这里插入图片描述
我们同样可以一次性删除多个表。

重命名表

使用RENAME TABLE语句可以重命名一个表:
在这里插入图片描述
rename table 后面紧跟要修改的表的表名,to后面跟修改后的表名。

同样可以一次更改多个表的表名。

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值