SQL****数据更新
数据更新有三种:插入,修改,删除
一·插入数据
INSERT
**Into <**表名>[(<属性列1><属性列2><属性列3><属性列4>)]
**Values(<**常量1><常量2><常量3><常量4>);
注:可以写也可以不用写,如果不写,则表示新元组要在所有表的列属性上都有指定值,并且次序与create table****次序相同,值与属性一定要一一对应。
例1:将学生张三信息插入学生表Student当中(原表属性顺序:学号,姓名,性别,年龄,所在院系)
Insert
Into Student
**Values(‘20205831’,’**张三’,’男’,’18’,’CS’);
例2:将一个新元组(学号:20205830,姓名:李东,性别:男,所在系列IS,年龄18)插入学生表Student中
Insert
Into Student(Sno,Sname,Ssex,Sdept,Sage)
Values (‘20205830’,’李东’,’男’,’IS’,’18’);
注:在新增元组中指定了哪些属性要赋值,属性顺序可以不与create table 相同,但是后面赋值一定要与自己指定的属性一一对应。
若新增加元组只插入部分列属性,则其他列属性自动赋予空值
例3:插入一条选课记录(‘20205832’,’1’)表SC属性次序为(Sno,Cno,grade)
第一种:
**Insert
into SC (Sno,Cno) /***表明要赋值得属性*/
Values (‘20205832’,’1’);
其他属性值自动赋值为空
第二种:
Insert
into SC
Values (‘20205832’,’1’,’NULL’);
没有指出赋值属性,所以在其他属性上明确的赋值NUL
Insert
**Into<**表名>[(<属性列1><属性列2><属性列3><属性列4>)]
子查询;
例1:对每一个系,求学生平均年龄,并把结果放入数据库中
首先在数据库中建立一个新表,其中一列放系名,另一列放平均年龄
Create table Dept_age
(Sdept char(15),
Avg_age smallint);
然后对表Student按系分组,再把系名和平均年龄存入新表中
Insert
Into Dwpt_age(Sdept,Avg_age)
Select Sdept,AVG(Sage)
From Student
Group by Sdept;
二.数据修改(更新)
**Update <**表名>
**Set <**列名>=<表达式>[,<列名>=<表达式>]
**[Where <**条件>]
功能是修改指定表中where子句条件中的元组,其中set语句中<表达式>的值用于取代相应的属性列值。如果省略where子句,则表示修改所有元组的值
修改一个元组的值
例1:将学生201215121的年龄改成22岁
Update student
Set Sage=22
Where Sno=’201215121’;
修改多个元组的值
例2:将所有学生的年龄增加一岁
Update Student
Set Sage=Sage+1;
带子查询的修改语句
例3:将计算机系全体学生成绩归0
Update SC
Set grade=0
Where Sno(
Selete Son
From Student
Where Sdept=’CS’);
三:删除
Delete
**From<**表名>
**[where <**条件>]
功能从指定表中删除满足where子句条件的所有元组,如果没有where则删除表中的所有数据
例1:删除学号201215128的学生记录
Delete
From Student
Where Sno=’201215128’;
例2;删除表STUSENT所有数据
Delete
From STUDENT;
例3:删除计算机系所有学生的选课记录
Delete
From SC
Where Son in(
Selete Sno
From Student
Where Sdept=’CS’);
深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
小编已加密:aHR0cHM6Ly9kb2NzLnFxLmNvbS9kb2MvRFVrVm9aSGxQZUVsTlkwUnc==出于安全原因,我们把网站通过base64编码了,大家可以通过base64解码把网址获取下来。