表的删除与更新
表的删除
DROP 删除表
执行此操作一定要慎重!!!!因为表在删除后想要恢复是费时费力的工作,可以说是很难很难。
删除表的语法为:
sql
DROP TABLE 数据表名;
示例:
sql
DROP TABLE students;
这将删除名为 students
的表。务必谨慎使用 DROP TABLE
命令,因为它会永久删除表及其所有数据,且无法撤销。
表的更新
ALTER 修改表
如果你已经创建了一张数据表,却发现缺少了一些字段,或者需要修改某些字段的约束,你可能会担心是否需要删除并重新创建整个表。其实,完全没有这个必要,因为 ALTER
可以直接对表进行修改。这样就可以避免大量的工作量。
-
添加列:
假设我们需要向学生表中添加一个新的列
age
,用于存储学生的年龄:sqlALTER TABLE students ADD age INT;
-
修改列:
假设我们需要修改学生表中的
age
列,将其数据类型改为TINYINT
并添加NOT NULL
约束:sqlALTER TABLE students MODIFY age TINYINT NOT NULL;
-
重命名列:
假设我们需要将学生表中的
age
列重命名为student_age
:sqlALTER TABLE students CHANGE age student_age TINYINT NOT NULL;
-
删除列:
假设我们需要删除学生表中的
student_age
列:sqlALTER TABLE students DROP COLUMN student_age;
-
添加主键约束:
假设我们需要将
id
列作为学生表的主键:sqlALTER TABLE students ADD PRIMARY KEY (id);
-
添加外键约束:
假设我们有一个名为
departments
的表,其中包含学生所属系别的信息,并且我们希望在学生表中添加一个外键约束,将department_id
列与departments
表中的id
列关联起来:sqlALTER 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 的结构信息:
sqlDESC 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
的副本。
创建新表:
sqlCREATE TABLE students_copy LIKE students;
复制数据:
sqlINSERT INTO students_copy SELECT * FROM students;