阅读 115

数据库使用实例

数据库使用实例

查询实例

  1. 查询学生选课表中的全部数据。

    select *
    from SC
    
  2. 查询计算机系学生的姓名,年龄。

    select Sname,age
    from Student
    where Sdept=‘CS‘
    
  3. 查询成绩在 70~80 分之间的学生的学号,课程号和成绩。

    select Sno,Cno,grade
    from SC
    where grade between 70 and 80
    
  4. .查询计算机系年龄在 18~20 之间且性别为"男"的学生的姓名和年龄。

    select name,age
    from Student
    where Sdept=‘CS‘ and age between 18 and 20 and sex=‘男‘
    
  5. 查询课程号为"C01"的课程的最高分数。

    select max(grade)
    from SC
    where Cno=‘C01‘
    
  6. 查询计算机系学生的最大年龄和最小年龄。

    select max(age),min(age)
    from Student
    where Sdept=‘CS‘
    
  7. 统计每个系的学生人数。

    select count(*)
    from Student
    group by Sdept
    
  8. 统计每门课程的选课人数和考试最高分。

    select count(*),max(grade)
    from SC
    
  9. 查询每个学生的选课门数和考试总成绩,并按选课门数的升序显示结果。

    select count(*),sum(grade)
    from SC
    group by Sno
    order by count(*) asc
    
  10. 查询总成绩超过 200 分的学生,要求列出学号,总成绩。

    select Sno,grade
    from SC
    having sum(grade)>200
    
  11. 查询选修了"C02"的学生的姓名和所在系。

    select Sname,Sdept
    from Student
    where Sdept=‘C02‘
    
  12. 查询成绩在 80 分以上的学生的姓名,课程号和成绩,并按成绩的降序排列。

    select Sname,Cno,grade
    from SC,Student S
    where SC.Sno=S.Sno and grade>80 
    order by grade desc
    
  13. 查询那些课程没有人选修.要求列出课程号和课程名。

    select Cno,Cname
    from C
    where Cno not in(select SC.Cno
    				from SC)
    
  14. 要求用子查询

    1. 查询选修了课程"C01"的学生的姓名和所在系。

      select Sname,Sdept
      from Student
      where Sno in(select Sno
               from SC
               where Cno=‘C01‘)
      
    2. 查询数学系成绩在 80 分以上的学生的学号,姓名。

      select Sno,Sname
      from Student
      where Sdept=‘数学系‘and Sno in(select Sno
                  					from SC
                  					where grade>80)
      
  15. 求数学系学生的学号和姓名。

    select Sno,Sname
    from Student
    where Sdept=‘数学系‘
    
  16. 求选修了课程的学生学号。

    select Sno
    from SC
    
  17. 求选修了数学课的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。

    select Sno,grade
    from SC,C
    where Cname=‘数学课‘
    order by grade desc ,Sno asc
    
  18. 求选修数学课其且成绩在 80-90 之间的学生学号和成绩,并将成绩乘以系数 0.8 输出。

    select Sno,grade*0.8
    from SC,C
    where Cname=‘数学课‘ and grade between 80 and 90
    
  19. 求数学系或计算机系姓刘的学生的信息。

    select *
    from Student
    where (Sdept=‘CS‘ or Sdept=‘数学系‘) and Sname=‘刘%‘ 
    
  20. 求缺少了成绩的学生的学号和课程号。

    select S.Sno,Cno
    from Student S,SC
    where grade is null)
    
  21. 查询每个学生的情况以及他(她)所选修的课程。

    select S.Sno,Sname,Cno
    from Student S,SC,C
    where S.Sno=SC.Sno 
    
  22. 求学生的学号、姓名、选修的课程名及成绩。

    select S.Sno,Sname,Cname,grade
    from Student S,SC,C
    where S.Sno=SC.Sno and SC.Cno=C.Cno
    
  23. 求选修数学课且成绩为 90 分以上的学生学号、姓名、及成绩。

    select S.Sno,Sname,grade
    from Student S,SC,C
    where Cname=‘数学课‘ and grade>90
    
  24. 查询每一门课的间接先行课(即先行课的先行课)。

    select C1.cno,C2.cpno
    from C1,C2
    where c1.cpno=c2.cno
    
  25. 检索王老师所授课程的课程号和课程名。

    select Cno,Cname
    from C
    where Teacher=‘王%‘
    
  26. 检索年龄大于 22 岁的男学生的学号和姓名。

    select Sno,Sname
    from Student
    where sex=‘男‘ and age>22
    
  27. 检索学号为 10001 学生所学课程的课程名与任课教师。

    select Cname Teacher
    from SC,C
    where Sno=‘10001‘ and SC.Cno=C.Cno 
    
  28. 检索至少选修王老师所授课程中一门课程的女学生姓名。

    select Sname
    from Student,SC,C
    where sex=‘女‘ and Sno in(select Sno
                            from SC
                            where Cno in(select Cno
                                        from C
                                        where Teacher=‘王%‘))
    
  29. 检索张同学不学的课程的课程号。

    select Cno
    from C
    where Cno not in(select Cno
                    from SC
                    where Sno in(select Sno
                                from S
                                where Sname=‘张%‘))
    
  30. 检索至少选修两门课程的学生学号。

    select Sno
    from SC
    group by Sno
    having count(Sno)>1
    
  31. 检索全部学生都选修的课程的课程号与课程名。

    select Cno,Cname
    from C
    where not exists(select *
                      from Student S
                      where Sno not exists(select *
                                            from SC
                                            where SC.Cno=C.Cno and S.Sno=SC.Sno))
    
  32. 检索选修课程包含王老师所授课程的学生学号。

    select Sno
    from SC S1
    where not exists(select *
                      from C
                      where Teacher=‘王%‘ and not exists(select *
                                                          from SC S2
                                                          where S2.Cno=C.Cno and S1.Sno=S2.Sno))
    

Oracle实例

--1. 查询emp表结构
desc emp
--empno 雇员编号
--ename 雇员姓名
--job 雇员工种
--mgr 对应领导编号
--hiredate 雇佣日期
--sal 基本工资
--comm 奖金
--deptno 部门编号

--2.显示当前用户
show user;

--3.查询当前用户下所有的表
select * from tab;

--4.查询每个部门的人数和平均工资
select deptno,count(*),avg(sal)
from emp
group by deptno;

--5.查询emp表中有多少工种
select distinct job  --distinct去除重复的查询结果
from emp;

--6.查询emp表中的总人数
select count(empno)
from emp;

--7.查询emp表中姓名中带国字的员工
select * from emp
where ename=‘%国%‘;

--8.查询emp表中所有员工的年收入
select empno,(sal+nvl(comm,0))*12
from emp;

--9.向表空间users中添加一个大小为10mb的数据文件‘lc233_1.dbf‘
alter tablespace users
add datafile ‘d:\lc233_1.dbf‘ size 10m;

--10.向表空间users中添加一个可以自动扩展的数据文件‘lc233_2.dbf‘,大小5mb,每次扩展1mb,最大容量100mb
alter tablespace users
add datafile ‘d:\lc233_2.dbf‘ size 5m
autoextend on next 1m maxsize 100m;

--11.取消数据文件lc233_2.dbf的自动扩展
alter database
datafile ‘d:\lc233_2.dbf‘
autoextend off;

--12.查询数据库当前所有的数据文件的详细信息
select *
from dba_data_files;

--13.查询数据库当前所有控制文件信息
select *
from v$controlfile;

--14.向数据库中添加一个重做日志文件组(组号为4),包含一个成员文件undo04a.log,大小为4mb
alter database
add logfile group 4
(‘d:\undo04a.log‘)size 4m;

--15.向数据库中的重做日志组4中添加一个成员文件,名称为undo04b.log
alter database
add logfile member
‘d:\undo04b.log‘ to group 4;

原文:https://www.cnblogs.com/hermitlee/p/15131618.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐