5. SQL 的数据操纵功能

SQL 语言的数据操纵语句DML主要包括插入数据,修改数据 和删除数据三种语句。

1. 插入数据记录

INSERT INTO <表名> [(<列名 1> [,<列名 2>···])] VALUES (<>)

其中:

  1. <表名>是指要插入新纪录的表
  2. <列名>是可选项,指定待添加数据的列,列出列名,则 VALUES 子句中值的排列顺序必须和列名名表中的列名排列顺序一致,个数相等,数据 类型一一对应;若省略列名,则 VALUES 子句中值的排列顺序必须和定义表时的列名顺序一致,个数相等,数据类型 一一对应。
  3. VALUES 子句指定待添加数据的具体值。

在student表中插入一条学生记录:

INSERT INTO student VALUES ('161155426','马小梅','女','2002-06-18','1102','商务1601')

插入部分值:

INSERT INTO sc (Sno, Cno) VALUES ('1418855212' ,'58130540')

插入多行记录:

可以从一个表中抽取数据插入另一个表中,这通过子查询来实现。

INSERT INTO <表名> [(<列名>[,<列名2>···])]
子查询

建一张表 studentlist(Sno, Sname, Ssex),其中字段含义分别是学号,姓名,性别,并把学生表中的相关数据插入到点名表中。

CREATE TABLE studentlist
(Sno CHAR(10)),
Sname VARCHAR(20),
Ssex VARCHAR(10));
INSERT INTO studentlist (Sno, Sname, Ssex) SELECT Sno, Sname,Ssex FROM student;

2. 修改数据记录

UPDATE <表名>
SET <列名>==<表达式> [,<列名>=<表达式>...]
[WHERE <条件>]

其中:

  1. <表名>:是指要修改的表
  2. SET子句:给出要修改的列及其修改后的值
  3. WHERE 子句指定待修改的记录应当满足的条件,WHERE 子句省略时,则修改表中的所有记录

把‘郭爽’同学的专业从‘食品1401’转到‘商务1401’

UPDATE student SET Sclass='商务1401' WHERE Sname='郭爽'

所有课程的学分加一:

UPDATE course SET Ccredit=Ccredit+1

把选修表中每个同学的成绩提高5分

UPDATE sc Grade=Grade+5

3. 删除数据记录

DELETE
FROM <表名>
[WHERE <条件>]

其中:

  1. <表名>: 要删除数据的表
  2. WHERE 子句:指定待删除的记录应当满足的条件,WHERE 子句缺省时,则删除表中所有记录

删除马祺同学的记录:

DELETE FROM student WHERE Sname='马祺'

从学生表中删除所有工商1401班同学的记录

DELETE FROM student WHERE Sclass='工商1401'

删除学生表中所有记录

DELETE FROM studnet

4. 使用 TRUNCATE 清空表数据

TRUNCATE [table] 表名

注意:TRUNCATE TABLE 与 DELETE 的区别如下:

  1. TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:两者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务资源少。DELETE 语句每次删除一行,会在事务日志中为所删除的每一行记录一项。
  2. TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
  3. TRUNCATE TABLE:删除内容,释放空间但不删除定义。
  4. DELETE TABLE:删除内容不删除定义,不释放空间。
  5. DROP TABLE:删除内容和定义,释放空间。

你可能感兴趣的:(MySQL从入门到跑路)