SQL 学习笔记:数据的增删改

1. 插入数据

插入单条记录

示例:

INSERT INTO student_table (id, name, age)
VALUES (1, 'John', 18);

其中,紧跟表名后面的括号用于指定要插入的列,顺序可以任意,括号中没有指定的列将为空值。该括号也可省略,这种情况下插入的值需要与列的顺序一一对应,且每一列都要有值。

例如:

INSERT INTO student_table
VALUES (1, 'John', 'male', 18);

插入多条记录

示例:

INSERT INTO student_table(id, name)
VALUES (1, 'John'),
       (2, 'Tom'),
       (3, 'Dan');

插入多条记录的语法与前面基本相同,只是 VALUES 后面的记录之间用逗号分隔。

插入查询结果

示例:

INSERT INTO new_table(name, age)
    SELECT name, age
    FROM student_table
    WHERE age > 16;

通过 SELECT ... FROM ... 语句查询到的结果,将会被插入到 new_table 中。查询结果的列将与待插入的列按从左到右的顺序一一对应。

2. 修改数据

修改单列的值

示例:

UPDATE student_table
SET age = 16
WHERE name = 'Jack'

还可以同时对所有记录修改某一列的值:

UPDATE student_table
SET id = id + 1;

修改多列的值

示例:

UPDATE student_table
SET name = 'Peter', age = 16
WHERE id = 1;

修改多列的值,只需要在 SET 后面将每一列的赋值用逗号分隔开。

修改条件带查询语句

示例:

UPDATE score_table
SET score = 90
WHERE name IN
    ( SELECT name
      FROM student_table
      WHERE id > 5 );

这条修改语句涉及到 score_tablestudent_table 两个表。意思是查询 student_tableid 大于5的学生,在 score_table 中将他们的成绩修改为90分。

3. 删除数据

删除指定记录

示例:

DELETE FROM student_table
WHERE age > 18;

删除所有记录

示例:

DELETE FROM student_table;

删除条件带查询语句

与修改条件中嵌套查询语句一样,我们同样可以在删除条件中嵌套查询语句。

示例:

DELETE FROM student_table
WHERE name IN
    ( SELECT name
      FROM score_table
      WHERE score < 60 );

该条语句含义为,查询 score_talbe 表中不及格学生的名字,在 student_table 中删除这些学生的记录。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注