0
点赞
收藏
分享

微信扫一扫

头哥数据库实验总结

九月的栩 2022-03-23 阅读 60
数据仓库

这里写目录标题

实验二

第一关:插入数据

插入功能格式

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 
)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

举报

相关推荐

0 条评论