这里写目录标题
实验二
第一关:插入数据
插入功能格式
insert into 表名 values("....")
注意:括号内的值如果不规定顺序就是默认顺序
 
例题
实验完成要求
根据代码区的提示,将插入数据的SQL语句书写在对应的代码区中。
1、为Student表添加两行记录如下表所示。
sno	sname	ssex	sage	sdept
001	Smith	m	18	CS
002	Ketty	f	19	MA
 
insert into Student(sno,sname,ssex,sage,sdept) 
values('001','Smith','m',18,'CS')
或者
insert into Student 
values('002','Ketty','f',19,'MA')
 
第二关:更新数据(修改数据)
修改数据格式
UPDATE语句由三部分组成:
 要更新的表;
 列名和它们的新值;
 要更新行的过滤条件。
更新单个列
update sc
set grade=grade+5
where grade<60
 
更新多个列
update sc
set ssex=ssex+5,grade=grade+5
where grade<60
 
删除列
update sc
set ssex=null(如果可以取值为null的话)
where grade<60
 
例题
将不及格的学生成绩加5分。
 
update Sc
set grade=grade+5
where grade<60 
 
字符串拼接
concat函数
语法格式
CONCAT(char c1, char c2, ..., char cn) 
其中char代表字符串,定长与不定长均可以
 
+
直接将两个字符串相加
Sno(char)='S'+Sno(char)
 
字符串修改
substring函数
语法
substring(字符串,x,y)
从第x位开始取,一直取到y位
 
例题
将学生的学号前的‘S’删掉
 
update Student
set Sno=substring(Sno,2,len(Sno)-1)
 
注意:数据库中的起始序号是1不是0
rtrim函数
rtrim是一个函数,返回删除字符串右边的空格后的字符串
 语法
rtrim(字符串)
 
例题
在学生学号的后面加上‘S’(注:**‘S’要大写,学号的类型是char(10))
 
update Student set Sno=RTRIM(Sno)+'S';
 
注意:一定要先去掉空格才能+‘S’,否则会加到后面没有用到的空格上
第三关:删除数据
数据的删除
delete函数
语法:
 DELETE FROM 表名称 WHERE 列名称 = 值
delete from sc
where grade is null;
 
注意:数据库中判断值是否为空可以的语法是xx is null
例题
删除年龄等于18岁的女(f)同学
 
delete from Student
where sage=18 and ssex='f'
 
实验三:简单查询
第一关 简单查询
select函数
语法
select 数据类型
from 表名
where 条件
 
例题
查询先行课程不为空的课程。(使用*表示查询结果)
 
select * 
from course
where cpno <> ''
 
注意:
 数据库中的不等于可以用!=也可以用<>表示
 数据库中”空“值得单引号内不用加空格
like语句
% :代表一串字符串
 _:代表一个字符
 当所查询的字符中有%或者_时,可以用escape‘\’来表示‘\’后面的一个字符为转义字符
 语法:
'DV\_%i_ _' escape '\'
 
表示的意思就是查找DV_…i_ _得字符串
distinct关键字
取出重复的数据
 语法
例题
使用distinct关键字查询学生表中不同的系
并列出系
 
select distinct sdept 
from student 在这里插入代码片
 
数据之间有交集的查找
例题
查询90分以上学生的选课信息,
列出学号,姓名,课程号,成绩。
 
SELECT A.sno,A.sname,C.cno,C.grade
FROM Student A,SC C
WHERE grade>90 and A.Sno=C.Sno
 
其中得A.Sno=C.Sno意思就是:先在c中查到的grade>90的学生学号,因为sc表中没有存储姓名,姓名存储在student表中,所以需要用学号(sc和student的公共项数)进行映射
为什么不能这样
查询90分以上学生的选课信息,列出学号,姓名,课程号,成绩。
select student.sno,sname,cno,grade
from sc,student
where student.sno in
(
   select sno 
    from sc
    where grade>90 
)
 

 
 










