分享

SQL基础入门:第5课:操纵表

 L罗乐 2019-02-06

本节要点

表的关键信息
更改表名
更改字段名
更改字段类型
更改字段NULL值设置
更改字段默认值
更改主键字段
新增字段
删除字段
删除表

表的关键信息

前面我们分别讲了表的字段类型、NULL值设置、默认值、主键以及表注释等知识点。

总结一下,一张完整的表,应该包含如下图中的信息(当然,不同的数据可能还有其特殊的属性,这里暂且不提):

这些信息,对于一张表来说,都是非常重要的,并不是说,某一项可以没有。其实就像前面讲的,在创建表时,某一项虽然没有写出来,但并不代表这一项没有值,而是使用的默认值。比如说,NULL值的设置和默认值。

但有些属性,如果在创建表时没有设置,就真的是没有。比如主键和表注释。

那如果我们创建了一张表,在不删除表重建的前提下,可不可以对表进行一些修改的。

答案是肯定的!

但这里提醒一点,某些语句虽然是标准SQL支持的,但对于不同的数据库,操纵表的语法可能会稍有不同。所以下面讲的一些SQL语法,可能在MySQL里并不能成功执行。我会在语句后特别提醒。

更改表名

更改表名:使用RENAME TABLE关键字。语法如下:

  1. RENAME TABLE 旧表名 TO 新表名;

比如,生产环境投产前备份teacher表,使用如下语句:

  1. RENAME TABLE teacher TO teacher_bak;

更改字段名

更改字段名:使用ALTER TABLE关键字。语法如下:

  1. ALTER TABLE 表名 RENAME COLUMN 旧字段名 TO 新字段名;

比如,修改teacher_name的字段名为teacher_nm,使用如下语句:

  1. ALTER TABLE teacher RENAME COLUMN teacher_name TO teacher_nm; --MySQL不支持

更改字段类型

更改字段类型:使用ALTER TABLE关键字。语法如下:

  1. ALTER TABLE 表名 ALTER COLUMN 字段名 新字段类型;

比如,修改teacher_name的类型为VARCHAR(100),使用如下语句:

  1. ALTER TABLE teacher ALTER COLUMN teacher_name varchar(100); --MySQL不支持

注意:在更改类型的时候,更改前的类型和更改后的类型一定要能显示转换,否则会造成数据丢失。比如INT类型转为DECIMAL(18,2)类型。

更改字段NULL值设置

更改字段类型时,可同时设置字段NULL值、默认值,也是使用ALTER TABLE关键字,语法是一样的。

比如,修改teacher_name的类型为VARCHAR(100) NULL,使用如下语句:

  1. ALTER TABLE teacher ALTER COLUMN teacher_name varchar(100) null DEFAULT ''; --MySQL不支持

更改字段默认值

更改字段默认值:也可使用ALTER TABLE关键字。语法如下:

  1. ALTER TABLE 表名 ALTER COLUMN 字段名 SET DEFAULT 默认值;

比如,修改teacher_name的默认值为’未知’,使用如下语句:

  1. ALTER TABLE teacher ALTER COLUMN teacher_name set default '未知';

删除字段默认值:使用ALTER TABLE关键字。语法如下:

  1. ALTER TABLE 表名 ALTER COLUMN 字段名 DROP DEFAULT;

比如,删除teacher_name的默认值,使用如下语句:

  1. ALTER TABLE teacher ALTER COLUMN teacher_name drop default;

更改主键字段

设置主键:如果表已存在,但没有定义主键字段,可使用ALTER TABLE关键字设置主键。语法如下:

  1. ALTER TABLE 表名 ADD PRIMARY KEY (主键字段列表);

比如,将teacher表的teacher_name和gender两个字段设置为主键,使用如下语句:

  1. ALTER TABLE teacher ADD PRIMARY KEY (teacher_name,gender);

删除主键字段:如果表中已定义主键字段,可使用ALTER TABLE关键字删除主键。语法如下:

  1. ALTER TABLE 表名 DROP PRIMARY KEY;

比如,将teacher表的主键删除,使用如下语句:

  1. ALTER TABLE teacher DROP PRIMARY KEY;

更改主键字段:如果表中已定义主键字段,但想修改主键字段,比如说假如现在teache表的主键字段是teacher_name和gender,现在想修改主键字段为teacher_id,有的数据库也是支持的。但不同的数据库语法差别非常大,这里就不多讲了。具体语法请以实际数据库为准。

新增字段

新增字段:使用ALTER TABLE关键字。语法如下:

  1. ALTER TABLE 表名 ADD COLUMN 新字段名 字段类型及其他属性;

比如,在teache表中新增年龄字段age,使用如下语句:

  1. ALTER TABLE teacher ADD COLUMN age int not null default 0;

删除字段

删除字段:使用ALTER TABLE关键字。语法如下:

  1. ALTER TABLE 表名 DROP COLUMN 字段名;

比如,在teache表中删除年龄字段age,使用如下语句:

  1. ALTER TABLE teacher DROP COLUMN age;

删除表

删除表:使用DROP TABLE关键字。语法如下:

  1. DROP TABLE 表名;

比如,删除teacher表,使用如下语句:

  1. DROP TABLE teacher;

汇总

下面汇总了一下本节课讲解的内容,这些内容,也不需要死记硬背,放在这里,用到的时候查一下就可以了。但是,一定要记住,下面这些SQL语句,有些在MySQL里不支持,这是数据库语法决定的,执行失败的时候,就不要强求了。

  1. 更改表:RENAME TABLE 旧表名 TO 新表名;

  2. 更改字段名:ALTER TABLE 表名 RENAME COLUMN 旧字段名 TO 新字段名;

  3. 更改字段类型:ALTER TABLE 表名 ALTER COLUMN 字段名 新字段类型;

  4. 更改字段NULL值:ALTER TABLE teacher ALTER COLUMN teacher_name varchar(100) null;

  5. 更改字段默认值:ALTER TABLE teacher ALTER COLUMN teacher_name varchar(100) default '';

  6. 删除字段默认值:ALTER TABLE 表名 ALTER COLUMN 字段名 DROP DEFAULT;

  7. 设置主键:ALTER TABLE 表名 ADD PRIMARY KEY (主键字段列表);

  8. 删除主键:ALTER TABLE 表名 DROP PRIMARY KEY;

  9. 新增字段:ALTER TABLE 表名 ADD COLUMN 新字段名 字段类型及其他属性;

  10. 删除字段:ALTER TABLE 表名 DROP COLUMN 字段名;

  11. 删除表: DROP TABLE 表名;



Mac老师个人微信号:201855204

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多