数据库系统概论基础知识(待更新)

1.查询指定列
select sname,sno
from student
(1)查询全部记录
select *
from student
(2)查询不相同的值
select distinct sno(不相同的)
from student
(3)查询经过计算的值
select sname,2014-sage
from student
(4)要求小写字母
select lower(sdept)
from student
(5)改变指定查询结果的列标题//用空格跟在后面
select sname NAME, 2014-sage BIRTHDAY
from student
2.选择表中若干元组
(1)消除重复的行
select distinct sno
from sc
//默认的是all
select all sno
from sc
(2)查询满足条件的元组
【1】比较大小
select sname,sage
from student
where sage<20
【2】确定范围
select sname,sdept,sage
from student
where sagebetween 20 and 23
【3】确定集合
select sname,sdept,sage
from student
where sdept in ('cs','ma','is')
【4】字符匹配(%表示任意长度,_表示单个字符//用like来进行字符串的匹配)
select sname,sno,ssex
from student
where sname like '刘%'

select sname,sno,ssex
from student
where sname like '欧阳_'

【5】如果要查询的字符串本身就含有通配符%或_,这时就需要使用  escape '换码字符' 对通配符进行转义
查询DB_Design课程的课程号和学分
select cno,ccreadit
from course
where cname like 'DB\_Design' escape '\'
【6】涉及空值的查询
查询所有有成绩的学生学号和课程号
select sno,cno
from sc
where grade is not null
【7】多重条件的查询
查询计算机系的年龄在20岁以下的学生姓名
select sname
from student
where sdept='is' and sage<20 
3.排序(order by)默认是升序的
升序(asc)降序(desc)
查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列
select *
from student
order by sdept asc,sage desc
4.聚集函数(做一些统计,对整体性质的描述)
count(*)                 统计元组个数(处理这个操作外,其他都是跳过空值,只处理非空值)
count(列名)           统计一列中值的个数
sum (列名)            计算一列值的总和
avg (列名)             计算一列值的平均值 
max (列名)            求一列值中的最大值
min (列名)            求一列值中的最小值
查询选修了课程的学生人数
select count(distinct sno)
from sc
计算选修了1 号课程的学生的最高值
select max(grade)
from sc
5.分组(group by) 分组后聚集函数将作用于每一个组,即每一个组都有一个函数值(having 是对组的限定)
求各个课程号即相应的选课人数
select cno,count(sno)
from sc
group by cno
查询选修了三门以上课程的学生学号
select sno
from sc
group by sno
having count(*)>3


链接查询
1.等值于非等值连接查询
查询选修2号课程并且成绩在90 分以上的所有学号和姓名
select student,sno,sname
from student,sc
where student.sno=sc.sno and sc.cno='2' and sc.grade>90
2.自身连接
查询每一门课的间接先行选修课
select first.cno, second.cpno
from course first,course second
where first.cpno=second.cno
3.外连接
列出每个学生的基本情况,及其选课情况(若某个学生没有选课,也需要把student 的悬浮元组保存在结果关系中)
select student.sno,sname,ssex,sdept,cno,grade
from student left outer join sc on (student.sno=sc.sno)
4.多表连接


嵌套查询
1.待有in谓词的子查询
查询与'刘晨'在同一系的学生
select sno,sname,sdept
from student
where sdept in (
    select sdept
    from student
    where sname ='刘晨')
查询选修了课程名为'信息系统'的学生学号和姓名
select sno,sname
from student
where sno in (
    select sno
    from sc
    where cno in (
        select cno
        from course
        where cname='信息系统'
        )
    )
2.带比较运算符的子查询//相关子查询
找出每个学生超过自己选修课程平均成绩的课程号
select cno
from sc x
where grade>=(
    select avg(grade)
    from sc y
    where x.sno=y.sno)
3.带any,all 谓词的子查询
查询非计算机科学系中比计算机科学系任意一个学生年龄小的学生姓名和年龄
select sname,sage
from student
where sage<any(
    select sage
    from student
    where sdept='cs')
and sdept!='cs'
4.带有exists(存在)谓词的子查询
带有exists谓词的子查询不返回任何数据,只产生逻辑真或逻辑假
查询所有选修了1号课程的学号是呢过姓名
select sname
from student
where exists(
    select *
    from sc
    where sno=student.sno and cno='1')
***查询选修了全部课程的学生姓名(没有一门课程,是他不选修的)
select sname
from student
where not exists(
    select *
    from course
    where not exists(
        select *
        from sc
        where sno=student.sno and cno=course.cno))

集合查询(注意: 参加集合操作的个查询结果的列数必须相同,对应项的数据类型有必须相同)
并集(union)
查询选修了课程1或者选修了课程2 的学生
select sno
from sc
where cno='1'
union
select sno
from sc
where cno='2'
交集(intersect)
查询计算机科学系的学生与年龄不大于19 岁的学生的交集
select *
from student
where sdept='cs'
intersect
select *
from student
where sage<=19
差集(except)
查询计算机科学系的学生与年龄不大于19岁的学生的差集
select *
from student
where sdept='cs'
except
select *
from student
where sage<=19

插入数据
1.插入元组
insert
into student(sno,sname,ssex,sdept,sage)
values('201215128','陈东','男','is','18')
2.插入子查询结果
求平均值,存入数据库里
insert
into dept(sdept,age)
select sdept,avg(sage)
from student
group by sdept

修改数据

1.修改某一元组的值

将学生201215121的年龄改为22岁

update student

set sage=22

where sno='201215121'

2.修改多个元组的值

update student

set sage=sage+1

3.带子查询的修改语句

update sc

set grade=0

where sno in (

    select sno

    from student
    where sdept='cs')

删除数据
1.删除某一个元组的值
删除学号为201215128的学生纪录
delete
from student 
where sno='201215128'
2.删除多个元组的值
删除所有学生的选课纪录
delete
from cs
3.带子查询的删除语句
删除计算机科学系所有学生的选课纪录
delete
from sc
where sno in(
    selete sno
    from student
    where sdept='cs')
where sno='201215128'

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 .试述数据、数据库、数据库系统、数据库管理系统的概念。 答: ( l )数据( Data ) :描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是不可分的。解析在现代计算机系统中数据的概念是广义的。早期的计算机系统主要用于科学计算,处理的数据是整数、实数、浮点数等传统数学中的数据。现代计算机能存储和处理的对象十分广泛,表示这些对象的数据也越来越复杂。数据与其语义是不可分的。 500 这个数字可以表示一件物品的价格是 500 元,也可以表示一个学术会议参加的人数有 500 人,还可以表示一袋奶粉重 500 克。 ( 2 )数据库( DataBase ,简称 DB ) :数据库是长期储存在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。 ( 3 )数据库系统( DataBas 。 Sytem ,简称 DBS ) :数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。解析数据库系统和数据库是两个概念。数据库系统是一个人一机系统,数据库是数据库系统的一个组成部分。但是在日常工作中人们常常把数据库系统简称为数据库。希望读者能够从人们讲话或文章的上下文中区分“数据库系统”和“数据库”,不要引起混淆。 ( 4 )数据库管理系统( DataBase Management sytem ,简称 DBMs ) :数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。 DBMS 的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。解析 DBMS 是一个大型的复杂的软件系统,是计算机中的基础软件。目前,专门研制 DBMS 的厂商及其研制的 DBMS 产品很多。著名的有美国 IBM 公司的 DBZ 关系数据库管理系统和 IMS 层次数据库管理系统、美国 Oracle 公司的 orade 关系数据库管理系统、 s 油 ase 公司的 s 油 ase 关系数据库管理系统、美国微软公司的 SQL Serve ,关系数据库管理系统等。 2 .使用数据库系统有什么好处? 答: 使用数据库系统的好处是由数据库管理系统的特点或优点决定的。使用数据库系统的好处很多,例如,可以大大提高应用开发的效率,方便用户的使用,减轻数据库系统管理人员维护的负担,等等。使用数据库系统可以大大提高应用开发的效率。因为在数据库系统中应用程序不必考虑数据的定义、存储和数据存取的具体路径,这些工作都由 DBMS 来完成。用一个通俗的比喻,使用了 DBMS 就如有了一个好参谋、好助手,许多具体的技术工作都由这个助手来完成。开发人员就可以专注于应用逻辑的设计,而不必为数据管理的许许多多复杂的细节操心。还有,当应用逻辑改变,数据的逻辑结构也需要改变时,由于数据库系统提供了数据与程序之间的独立性,数据逻辑结构的改变是 DBA 的责任,开发人员不必修改应用程序,或者只需要修改很少的应用程序,从而既简化了应用程序的编制,又大大减少了应用程序的维护和修改。使用数据库系统可以减轻数据库系统管理人员维护系统的负担。因为 DBMS 在数据库建立、运用和维护时对数据库进行统一的管理和控制,包括数据的完整性、安全性、多用户并发控制、故障恢复等,都由 DBMS 执行。总之,使用数据库系统的优点是很多的,既便于数据的集中管理,控制数据冗余,提高数据的利用率和一致性,又有利于应用程序的开发和维护。读者可以在自己今后的工作中结合具体应用,认真加以体会和总结。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值