春满大地,富贵花开。微雨众卉新,一雷惊蛰始。敬请关注微信公众号:AiryData。

MySQL中表的操作

SQL Airy 875℃ 0评论

预备阅读:MySQL中如何定义数据库  MySQL中常用的数据类型

前言

前面学习了MySQL的常用数据类型,接下来就开始进入正题吧,来对表进行操作,在关系数据库中,最基本最常用的就是数据表。今天来学习一下表的常用操作。

创建表

在MySQL中,创建数据表使用CREATE TABLE语句,基本语法格式如下:

CREATE TABLE tb1_name

(

字段名1 数据类型 [列级完整性约束条件] [默认值]

[, 字段名2 数据类型 [列级完整性约束条件] [默认值] ]

[, … …]

[, 表级完整性约束条件]

)[ENGINE=引擎类型];

前面我们已经创建了数据库db_school,我们就使用这个数据库,然后创建一张学生表tb_student,表结构如下,要求使用InnoDB引擎存储表数据。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
USE db_school;

CREATE TABLE tb_student(

studentNo CHAR(10) NOT NULL UNIQUE,

studentName VARCHAR(20) NOT NULL,

sex CHAR(2),

birthday DATE,

native VARCHAR(20),

nation VARCHAR(20),

classNo CHAR(6)

)ENGINE=InnoDB;

语法说明:

1、指定表名和字段名

CREATE TABLE创建表时,必须指定表名,且必须符合标志符的命名规则。表中每个字段的定义是以字段名开始的,后跟字段的数据类型以及可选参数,如果创建多个字段,必须用逗号分隔。字段名必须唯一。

2、完整性约束条件

创建表时,可以定义与该表有关的完整性约束条件。如实体完整性、参照完整性、用户自定义约束。如果完整性约束条件涉及该表的多个字段,则其必须定义在表级上,否则可以定义在表级上,也可以定义在列级上。

3、NULL与NOT NULL

NULL值就是没有值或值空缺,NOT NULL值的列则不接受该列没有值的记录,即该列必须要有值。NULL为默认设置。

4、AUTO_INCREMENT

将字段设置为自增属性可以给记录一个唯一而又容易确定的ID号,该字段可以唯一标识表中的每条记录。MySQL中,使用AUTO_INCREMENT为列设置自增属性,只有整型列才能设置这个属性。默认初始值为1。每个表只能定义一个AUTO_INCREMENT列,并且必须在该列定义主键约束(PRIMARY KEY)或候选键约束(UNIQUE)。我们可以直接在上面的学生表的学生学号列设置这个属性,但是类型一定要替换,可以设置为整型INT(10)。

5、DEFAULT

默认值是指在插入数据的时候,没有明确给出某个字段对应的值,DBMS允许为这个字段指定一个值。MySQL中使用DEFAULT关键字来指定,比如学生表,我们指定民族默认为“汉”,则nation VARCHAR(20) DEFAULT ‘汉’,。

注意:没有声明AUTO_INCREMENT属性的数值类型,默认值是0,对于一个AUTO_INCREMENT列,默认值是在顺序中的下一个值。对于除TIMESTAMP以外的日期和时间类型,默认值是该类型适当的“零”值;对于表中第一个TIMESTAMP列,默认值是当前日期和时间。

6、存储引擎类型

存储引擎就是如何存储数据,如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。关系数据库中,存储引擎简而言之就是指表的类型,数据库的存储引擎决定了表在计算机中的存储方式。

MySQL的核心就是存储引擎,Oracle和SQL server等数据库只有一种存储引擎。使用SHOW ENGINES可以查看系统所支持的引擎类型和默认引擎。

MySQL5.5.5以上版本,InnoDB是系统默认的存储引擎,支持可靠的事务处理,是事务型数据库的首选引擎。

查看表

1、查看表的名称

1
SHOW TABLES [ { FROM | IN } db_name ];

使用后面的可选项可以显示非当前数据库中的数据库表名称。

2、查看数据表的基本结构

在MySQL中,可以使用DESCRIBE/DESC或者SHOW COLUMNS来查看指定数据表的结构。

1
2
3
[ DESCRIBE | DESC ] tb_name;

SHOW COLUMNS  [ { FROM | IN } ] tb_name [ { FROM | IN } db_name ];

3、查看数据表的详细结构

在MySQL中可以使用SHOW CREATE TABLE查看创建表时的建表语句。

SHOW CREATE TABLE tb_name;

修改表

MySQL中使用ALTER TABLE 来修改原有表的结构。

1、添加字段

添加新字段时

ALTER TABLE tb_name ADD [ COLUMN ] 新字段名 数据类型 [约束条件] [FIRST | AFTER 已有字段名];

FIRST表示将新添加的字段设置为第一个字段,AFTER表示将新添加的字段加到指定的已有字段的后面。没有参数时,默认添加到最后一列。

2、修改字段

三种方式:

说明:CHANGE可同时修改指定列的名称和数据类型,同时添加多个CHANGE,只需彼此间用逗号分隔。

ALTER可以修改或删除表中国指定列的默认值。

MODIFY只会修改列的数据类型,还可以通过FIRST或AFTER修改指定列在表中的位置。

1
2
3
4
5
ALTER TABLE tb_name CHANGE [COLUMN] 原字段名 新字段名 数据类型 [约束条件];

ALTER TABLE tb_name ALTER [COLUMN] 字段名 {SET | DROP} DEFAULT;

ALTER TABLE tb_name MODIFY [COLUMN] 字段名 数据类型 [约束条件] [FIRST | AFTER 已有字段名];

3、删除字段

ALTER TABLE tb_name DROP  [COLUMN] 字段名;

重命名表

MySQL可以使用alter table修改,也可以使用rename修改表名。

1
2
3
ALTER TABLE 原表名 RENAME [TO] 新表名;

RENAME TABLE 原表名1 TO 新表名1 [, 原表名2 TO 新表名2] ... ...;

删除表

删除表可以使用drop table。删除多个表时,表之间用逗号分隔。IF EXISTS用来在删表之前判断表是否存在,可避免报错。

1
DROP TABLE [IF EXISTS]1 [,2]...;

小结

今天主要讲一下MySQL中表的常用操作,方便下面的学习,熟悉之后,我们才能更好的应用于我们的数据库,用合适的存储引擎来存储合适的数据,这样不仅节省空间和资源,也方便后期的维护和优化。

希望通过上面的操作能帮助大家。如果你有什么好的意见,建议,或者有不同的看法,我都希望你留言和我们进行交流、讨论。

如果想快速联系我,欢迎关注微信公众号:AiryData。

转载请注明:数据之美 » MySQL中表的操作

喜欢 (6)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址