`
小鑫的java
  • 浏览: 143007 次
  • 性别: Icon_minigender_1
  • 来自: 浙江
社区版块
存档分类
最新评论

SQL_oracle测试及答案

    博客分类:
  • SQL
阅读更多

--学生表                       
create table student(               
    sid number(11),
    sname varchar2(20),
    age number(3),
    enterdate date,
    scid number(11)
);
insert into student values (1,'illu',22,to_date('1998-2-12','yyyy-mm-dd'),1);
insert into student values (2,'nancy',25,to_date('2005-4-15','yyyy-mm-dd'),1);
insert into student values (3,'jack',21,to_date('2002-10-9','yyyy-mm-dd'),2);
insert into student values (4,'stephen',18,to_date('2000-11-4','yyyy-mm-dd'),1);
insert into student values (5,'satan',45,to_date('1997-6-3','yyyy-mm-dd'),2);
insert into student values (6,'panza',27,to_date('2006-7-30','yyyy-mm-dd'),1);
insert into student values (7,'jojo',28,to_date('2008-11-30','yyyy-mm-dd'),2);
insert into student (sid, sname, age, enterdate) values (8,'lucy',17,to_date('2008-6-11','yyyy-mm-dd'));
insert into student (sid, sname, age, enterdate) values (9,'lily',32,to_date('2003-5-2','yyyy-mm-dd'));

--班级表
create table clazz(
    cid number(11),
    cname varchar2(20)
);
insert into clazz values(1,'java');
insert into clazz values(2,'c++');
注:假设有些学生隶属班级id为空


 1.列出所有学生的学生id、学生姓名、学生年龄、入学时间信息,入学时间最早的排在最前,
   如果入学时间相同,则年龄大的排在最前,如果年龄相同,以名字的升序排列
    select sid, sname, age, enterdate from student order by enterdate, age desc,sname;
 2.列出年龄大于20且小于30的学生姓名,学生年龄。
    select sname, age from student where age>20 and age<30;
 3.列出在2003年以前入学的学生姓名和入学时间
    select sname, enterdate from student where to_number(to_char(enterdate,'yyyy'))<2003;
 4.列出所有不姓张的学生姓名。
    select sname from student where sname not like '张%';
 5.列出学生从入学时间到今日共在学校学习了多少年,多少月,多少日。(大概)。
    select enterdate,to_number(to_char(sysdate,'yyyy'))-to_number(to_char(enterdate,'yyyy')) years,months_between(sysdate,enterdate) months,sysdate-enterdate days from student;s
 6.列出年龄大于所有学生平均年龄的学生信息。
    select * from student where age>(select avg(age) from student);
 7.列出学生id,学生姓名,所属班级名称(没有所属班级的学生班级名称显示'no class')。
    select sid, sname, nvl(cname,'no class') from student, clazz where scid=cid(+);
 8.列出每个班的班级名称、学生的最大年龄、最小年龄、平均年龄和年龄之和。
    select cname,max(age),min(age),avg(age),sum(age) from student, clazz where scid=cid group by cname;
 9.列出在java班中年龄大于20或者在c++班中年龄大于25的学生id、学生姓名、学生年龄和所在班级。
    select sid, sname, age, cname from student, clazz where scid=cid and (cname='java' and age>20 or cname='c++' and age>25);
10.列出班级平均年龄大于20的班级名称和平均年龄。
    select cname, avg(age) from student,clazz where scid=cid group by cname having avg(age)>20;
11.写一段plsql程序要求打印所有学生的姓名和入学时间(要求以yyyy-mm-dd格式化时间)
declare
    cursor cur_stu is
    select sname, to_char(enterdate, 'yyyy-mm-dd') enterdate
    from student;
begin
    for cur in cur_stu loop
    dbms_output.put_line(cur.sname||' '||cur.enterdate);
    end loop;
end;
/
12.写一个触发器防止有入学时间大于今天的错误数据录入。
create or replace trigger vali_date
before insert on student
for each row
begin
    if :new.enterdate>sysdate then
        raise_application_error(-20000,'cannot insert');
    end if;
end vali_date;
/

分享到:
评论

相关推荐

    Oracle_PLSQL测试题与答案(绝对经典)

    Oracle_PLSQL测试题与答案(绝对经典)

    oracle进阶测试二答案.sql

    oracle进阶测试二答案.sql

    oracle PL/SQL测试题目和详细答案

    pl/sql存储过程,函数,游标,以及存储过程中的基础知识,绝对值得你收藏的经典题目,让你的pl/sql得到最大的锻炼。让你的数据库逻辑更加灵活。

    ORACLE数据库及SQL语言考试题一含答案.pdf

    ORACLE数据库及SQL语言考试题一含答案.pdf

    oracle综合测试及答案

    oracle 单选 多选 简答 SQL语句

    数据库SQL基础练习题与答案(oracle)

    数据库SQL基础练习题与答案,里面的表是oracle自带的表,还有连接各种数据库方式。

    ORACLE数据库笔试题及答案.doc

    ORACLE数据库笔试题及答案

    oracle PL/SQL测试题目

    oracle PL/SQL测试题目和详细答案

    SQL21日自学通

    第21 天常见的SQL 错误及解决方法471 目标471 介绍471 常见的错误471 Table or View Does Not Exist471 Invalid Username or Password 472 FROM Keyword Not Specified473 Group Function Is Not Allowed Here 474 ...

    SQL机试试卷

    SQL机试试卷,Oracle数据库语句增删改查练习。SQL机试试卷,Oracle数据库语句增删改查练习

    sql学习测试题

    oracle课后练习题目,带答案,自测下

    Oracle Database 11g初学者指南--详细书签版

    在过去的14年中,他与IanAbramson和MichaelCorey为OraclePress合著了一系列图书.Abbey在国际Oracle用户团体非常活跃,经常出席COLLABORATE、OraclecOpenWorld和区域性用户组会议.  Michael J.Corey是Ntirety...

    oracle数据库11G初学者指南.Oracle.Database.11g,.A.Beginner's.Guide

    《Oracle Database 11g初学者指南》能使读者快捷地掌握Oracle Database 11g的基础知识。通过自我评估教程,介绍了核心数据库技术、管理员职责、高可用性以及大型数据库特性。《Oracle Database 11g初学者指南》带领...

    ocp Oracle.1z0-053 - 答案整理

    当部署一个新的应用模块时,...由于存在计划基线,新的SQL 语句最初将与已知在标准测试配置下具有良好性能的计划一起运行。但是,如果客户系统配置与测试配置有很大的差异,则计划基线可随时间演化以产生更好的性能

    ssis,ssas培训

    1、“01 参考资料列表”文件夹——该文件夹包含一个名为“参考资料列表.doc”的文档,文档列出了本次考核所涉及到的五部分内容(SQL管理及T-SQL、SSIS及SSAS、网络及硬件、Oracle及DB2,其他)的知识点和考查点,...

    ACCP4.0Y2复习资料

    ACCP4.0_OOAD&XML&ORACLE_内部测试题.doc ACCP4.0_OOAD&XML&ORACLE_内部测试题-ss.doc ASP.NET.doc ASP.NET.txt EJB答案.txt Linux.txt OOAD.TXT Oracle.doc struts&jsf.txt XML.doc Y2复习题.doc

    牛客网数据库SQL实战题目汇总.zip

    只支持sqlite,不支持mysql,oracle等其他SQL语言。 再讲一讲自己的刷题体会: 比较坑也是一件好事,可以训练思维的全面性,努力去寻找问题的不同切入点。 不要做完了就直接下一题!我个人最喜欢看评论,因为可以...

    OCA认证考试指南1Z0-051

    第1章 Oracle服务器技术与关系范例 1.1 定位服务器技术 1.1.1 Oracle服务器的体系结构 1.1.2 OracleApplicationServer 1.1.3 OracleEnterpriseManager 1.1.4 网格计算 1.1.5 开发工具和语言 1.2 理解...

Global site tag (gtag.js) - Google Analytics