数据修改
在SQL语言中,数据修改包括INSERT\、UPDATE、DELETE
插入数据(INSERT)
用来增加一个符合表结构的数据行
命令格式:INSERT [INTO] <表名> [(<列名表>[,...n])] VALUES (值列表)
解释: 列名表:的列名必须是表定义中已有的列名
值列表:可以是常量也可以是NULL,按照表中列定义顺序或者列名表指定的顺序,
若表名后无列名则必须按照表中列的定义顺序且每一列均有一个值
更新数据(UPDATE)
用来增加一个符合表结构的数据行
命令格式:UPDATE <表名> SET <列名> = 表达式 [,...n] [WHERE 更新条件]
解释: SET:指定要修改的列
表达式:指定修改后的新值
删除数据(DELETE)
命令格式:DELETE [FROM] <表名> [WHERE 删除条件]
解释: 若没有WHERE子句,即是无条件删除(全部删除),但是保留表的结构
-
1、无条件删除
-
插入新生数据方式一
INSERT INTO Student VALUES('1521104','陈冬','男',18,'信息系');
-
插入新生数据方式二
INSERT INTO Student (Sno,Sname,Ssex,Sage,Sdept) VALUES('1521104','陈冬','男',18,'信息系');
-
插入新生数据方式三
INSERT INTO Student (Sno,Ssex,Sname,Sdept,Sage) VALUES('1521104','男','陈冬','信息系',18);
-
基于本表的有条件更新-整体某列数据更新加1
UPDATE Student SET Sage+=1;
-
基于其它表的的有条件更新-子查询-将某系的成绩加5
UPDATE SC SET Grade +=5 WHERE Sno IN (SELECT Sno FROM Student WHERE Sdept='计算机系');
-
基于其它表的的有条件更新-多表连接-将某系的成绩加5
UPDATE SC SET Grade+=5 FROM SC INNER JOIN Student ON SC.Sno=Student.Sno WHERE Sdept='计算机系';
-
无条件删除
DELETE FROM SC;
-
基于本表的有条件删除
DELETE FROM SC WHERE Grade<60;
-
基于其它表的有条件删除-子查询
DELETE FROM SC WHERE Grade <60 AND Sno IN ( SELECT Sno FROM Student WHERE Sdept='计算机系';
-
基于其它表的有条件删除-多表连接
DELETE FROM SC FROM SC INNER JOIN Student ON SC.Sno=Student.Sno WHERE Sdept ='计算机系' AND Grade<60;