表的删除与更新

表的删除与更新

表的删除

DROP 删除表

执行此操作一定要慎重!!!!因为表在删除后想要恢复是费时费力的工作,可以说是很难很难。

删除表的语法为:

sql 复制代码
DROP TABLE 数据表名;

示例:

sql 复制代码
DROP TABLE students;

这将删除名为 students 的表。务必谨慎使用 DROP TABLE 命令,因为它会永久删除表及其所有数据,且无法撤销。

表的更新

ALTER 修改表

如果你已经创建了一张数据表,却发现缺少了一些字段,或者需要修改某些字段的约束,你可能会担心是否需要删除并重新创建整个表。其实,完全没有这个必要,因为 ALTER可以直接对表进行修改。这样就可以避免大量的工作量。

  • 添加列:

    假设我们需要向学生表中添加一个新的列 age,用于存储学生的年龄:

    sql 复制代码
    ALTER TABLE students
    ADD age INT;
  • 修改列:

    假设我们需要修改学生表中的 age 列,将其数据类型改为 TINYINT 并添加 NOT NULL 约束:

    sql 复制代码
    ALTER TABLE students
    MODIFY age TINYINT NOT NULL;
  • 重命名列:

    假设我们需要将学生表中的 age 列重命名为 student_age

    sql 复制代码
    ALTER TABLE students
    CHANGE age student_age TINYINT NOT NULL;
  • 删除列:

    假设我们需要删除学生表中的 student_age 列:

    sql 复制代码
    ALTER TABLE students
    DROP COLUMN student_age;
  • 添加主键约束:

    假设我们需要将 id 列作为学生表的主键:

    sql 复制代码
    ALTER TABLE students
    ADD PRIMARY KEY (id);
  • 添加外键约束:

    假设我们有一个名为 departments 的表,其中包含学生所属系别的信息,并且我们希望在学生表中添加一个外键约束,将 department_id 列与 departments 表中的 id 列关联起来:

    sql 复制代码
    ALTER TABLE students
    ADD CONSTRAINT fk_department_id FOREIGN KEY (department_id) REFERENCES departments(id);
  • 删除约束:

假设我们需要删除名为 fk_department_id 的外键约束:

sql 复制代码
ALTER TABLE students
DROP FOREIGN KEY fk_department_id;
  • 查看指定数据库表的结构信息:

    假设我们需要查看数据表 students 的结构信息:

    sql 复制代码
    DESC students;

INSERT 插入数据

以下是 INSERT 命令的基本语法:

sql 复制代码
INSERT INTO 数据表名 (列名1, 列名2, ...)
VALUES (值1, 值2, ...);

也可以省略列名,并为表中的每一列提供值。这种情况下,插入的值的顺序应与表中列的顺序相匹配。

假设我们有一个名为 students 的表,包含以下列:id, name, age, department_id。要向该表中插入一条新的学生记录,可以执行以下操作:

sql 复制代码
INSERT INTO students (name, age, department_id)
VALUES ('John Doe', 20, 101);

如果要插入所有列的值,可以简化为:

sql 复制代码
INSERT INTO students
VALUES (1, 'John Doe', 20, 101);

值的顺序与表中列的顺序相匹配,因此,第一个值将插入到 id 列,第二个值将插入到 name 列,以此类推。

UPDATE 更新数据

UPDATE 是用于更新数据库表中现有行的 SQL 命令。通过 UPDATE 命令,可以修改表中已经存在的记录。

以下是 UPDATE 命令的基本语法:

sql 复制代码
UPDATE 数据表名
SET 列名1 = 值1, 列名2 = 值2, ...
WHERE 可选的筛选条件;

例如,假设我们有一个名为 students 的表,包含以下列:id, name, age, department_id。要更新学生的年龄,可以执行以下操作:

sql 复制代码
UPDATE students
SET age = 21
WHERE name = 'John Doe';

这将更新 students 表中名为 'John Doe' 的学生的年龄为 21 岁。

复制表:

虽然使用频率不高,但在必要时能显著节省我们的时间。

假设我们有一个名为 students 的表,它包含以下列:id, name, age。我们想要复制这个表并创建一个名为 students_copy 的副本。

  • 创建新表

    sql 复制代码
    CREATE TABLE students_copy LIKE students;
  • 复制数据

    sql 复制代码
    INSERT INTO students_copy
    SELECT * FROM students;
相关推荐
Rain的Java大神之路2 小时前
如何快速上传10G文件
java·spring boot·redis·后端·mysql·spring cloud·面试
十二同学啊3 小时前
向量数据库:从核心原理到 RAG 与 Java 实战
数据库
蓝速科技3 小时前
会议室门牌公告通知发布选型与落地指南丨蓝速科技
大数据·运维·数据库·人工智能·科技
大海星辰7984 小时前
一次对账SQL“灵异事件”排查:NOT IN返回空集的坑
mysql
Linux-lucky4 小时前
32-38-Linux学习之旅之MySQL综合
linux·运维·学习·mysql·ubuntu
一 乐6 小时前
二手交易平台|基于springboot + vue二手交易平台(源码+数据库+文档)
java·数据库·vue.js·spring boot·小程序
SelectDB6 小时前
同等资源下 Apache Doris 4.2 vs StarRocks 4.1.1:1TB SSB 与 TPC-H 性能实测
大数据·数据库·数据分析
这个DBA有点耶6 小时前
数据库集群与分布式架构:三条技术路线对比、金仓KES RAC实测数据与决策框架
数据库·程序员·架构
MayBaymax7 小时前
MongoDB 索引与事务
java·数据库·mongodb
SelectDB7 小时前
Doris vs ClickHouse:企业 OLAP 走向下一阶段,两种技术路线如何选择
大数据·数据库·数据分析