预备阅读:MySQL中如何定义数据库 MySQL中常用的数据类型
前言
前面学习了MySQL的常用数据类型,接下来就开始进入正题吧,来对表进行操作,在关系数据库中,最基本最常用的就是数据表。今天来学习一下表的常用操作。
创建表
在MySQL中,创建数据表使用CREATETABLE语句,基本语法格式如下:
CREATE TABLE tb1_name
(
字段名1 数据类型 [列级完整性约束条件] [默认值]
[, 字段名2 数据类型 [列级完整性约束条件] [默认值] ]
[, … …]
[, 表级完整性约束条件]
)[ENGINE=引擎类型];
前面我们已经创建了数据库db_school,我们就使用这个数据库,然后创建一张学生表tb_student,表结构如下,要求使用InnoDB引擎存储表数据。
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、查看表的名称
SHOW TABLES [ { FROM | IN } db_name ];
使用后面的可选项可以显示非当前数据库中的数据库表名称。
2、查看数据表的基本结构
在MySQL中,可以使用DESCRIBE/DESC或者SHOW COLUMNS来查看指定数据表的结构。
[ DESCRIBE | DESC ] tb_name;
SHOW COLUMNS [ { FROM | IN } ] tb_name [ { FROM | IN } db_name];
3、查看数据表的详细结构
在MySQL中可以使用SHOW CREATETABLE查看创建表时的建表语句。
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修改指定列在表中的位置。
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修改表名。
ALTER TABLE 原表名 RENAME [TO] 新表名;
RENAME TABLE 原表名1 TO 新表名1 [, 原表名2 TO 新表名2] ... ...;
删除表
删除表可以使用drop table。删除多个表时,表之间用逗号分隔。IF EXISTS用来在删表之前判断表是否存在,可避免报错。
DROP TABLE [IF EXISTS] 表1 [, 表2]...;
小结
今天主要讲一下MySQL中表的常用操作,方便下面的学习,熟悉之后,我们才能更好的应用于我们的数据库,用合适的存储引擎来存储合适的数据,这样不仅节省空间和资源,也方便后期的维护和优化。
希望通过上面的操作能帮助大家。如果你有什么好的意见,建议,或者有不同的看法,我都希望你留言和我们进行交流、讨论。
如果想快速联系我,欢迎关注微信公众号:AiryData。