`
sd8089730
  • 浏览: 258739 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
社区版块
存档分类
最新评论
阅读更多

实验内容:
一、 用SQL语句建表:
Student,sc,course
学生表:Student(Sno,Sname,Ssex,Sdept)
        Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、
所在系(Sdept)五个属性组成,其中Sno为主码,sage取值范围为(18~40),Ssex 默认为男。

 

create table student(
sno  number(5) constraint student_pk primary key,
snmae varchar2(20),
ssex  varchar2(10) default '男',
sage   number(2),
sdept  varchar2(50),
constraint ck_sage check(sage between 18 and 40));

课程表:Course(Cno,Cname,Cpno,Ccredit)
       Course由课程号(Cno)、课程名(Cname)、选修课号(Cpno)、学分(Ccredit)
四个属性组成,其中Cno为主码。

create table course(
cno int primary key,
cname varchar2(20),
cpno int,
ccredit int);

学生选课表:SC(Sno,Cno,Grade)
     SC由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,主码为(Sno,Cno)。
Grade 取值范围为0~100。

create table sc(
sno int ,
cno int,
grade int,
constraint sc_pk primary key(sno,cno),
constraint ck_grade check(grade between 0 and 100))


 二、用SQL语句实现将下列数据插入到相关表中。
student
Sno Sname Ssex Sage Sdept
98001 李勇 男  20 CS(计算机系)
98002 刘晨 女  19 IS(信息系)
98003 王敏 女  18 MA(数学系)
98004 王芳 女  20 IS(信息系)
Course
Cno   Cname         Cpno  Ccredit
 1 数据库          5        4
 2 数学         null    2
 3 信息系统    1    4
 4 操作系统    6    3
 5 数据结构    7    4
 6 数据处理   null    2
 7 PASCAL语言    6    4
Sc

Sc
Sno     Cno      Grade
 98001      1       95
 98001      2       89
 98002      2       90
三、用SQL语句完成以下功能
 1、把98001学生姓名改为王晶。
update student set sname='王晶' where sno=98001;
2、把7号课程名称改为C
update course set cname='C' where cno=7
3、删除98004学生的基本情况
delete from student where sno=98004;

4、删除表course,删除sc中全部的内容
drop table course;

delete from sc;

truncate table sc;

5、给表sc增加字段Scome 日期型
alter table sc add scome date;

6、将student表中sage改为 number型
alter table students modify sage number;

7、删除表student中字段Ssex

alter table student drop(ssex)

8、给student中sno上加入primary key
alter table student add constraint student_pk primary key(sno);


9、给sc上sno加上外键约束,参照student1中的sno
alter table sc add constraint sc_fk foreign key(sno) references student1(sno) on delete cascade|on delete set null;


10、给student 中的sname 加唯一约束
alter table student add constraint  un_sname  unique(sname);

 

11、给 student中的sname加非空约束
alter table student modify sname not null;


12、删除student中的sname 唯一约束
alter table student drop constraint un_sname;

13、给student中年龄增加check约束,取值范围为大于18 ~ 40 
alter table student add constraint ck_sage check(sage between 18 and 40);
14、删除sc表中列scome
alter table sc drop(scome);
---------------------------------------------------------------------------------------------------------------------------

1、查找部门30中员工的详细信息。
select *
from emp
where deptno=30;
2、找出从事clerk工作的员工的编号、姓名、部门号。
select empno,ename,deptno
from emp
where job=upper('clerk');

3、检索出奖金多于基本工资的员工信息。
select *
from emp
where comm >sal

4、检索出奖金多于基本工资60%的员工信息。
select *
from emp
where comm>sal*0.6;

5、找出10部门的经理、20部门的职员 的员工信息。
select *
from emp
where deptno=10 and job='MANAGER'
 or   deptno=20 and job='CLERK'

6、找出10部门的经理、20部门的职员 或者既不是经理也不是职员但是工资高于2000元的员工信息。
select *
from emp
where (deptno=10 and job='MANAGER')
 or  ( deptno=20 and job='CLERK')
 or  ( job not in ('MANAGER','CLERK') and sal>2000)


7、找出获得奖金的员工的工作。
select * from emp where comm is not null;

8、找出奖金少于100或者没有获得奖金的员工的信息。
select * from emp where comm is null or comm<100;

9、查找员工雇佣日期中当月的最后一天雇佣的。
select * from emp where hiredate=last_day(hiredate);

10、检索出雇佣年限超过12年的员工信息。
select * from emp where months_between(sysdate,hiredate)/12>12;

11、找出姓名以A、B、S开始的员工信息。
select * from emp where ename like 'A%' OR ENAME LIKE 'B%' OR ENAME LIKE 'S%';
select * from emp where substr(ename,1,1) in ('A','B','S');

12、找到名字长度为7个字符的员工信息。
select * from emp where length(ename)=7;
select * from emp where ename like '______';

13、名字中不包含R字符的员工信息。
select * from emp where ename not like '%R%';
select * from emp where instr(ename,'R')=0;

14、找出员工名字的前3个字符。
select substr(ename,1,3) from emp;

15、将名字中A改为a。
select replace(ename,'A','a') from emp;

16、将员工的雇佣日期拖后10年。
select add_months(hiredate,120) from emp

17、返回员工的详细信息并按姓名排序。
select * from emp order by ename;

18、返回员工的信息并按员工的工作年限降序排列。
select * from emp order by hiredate asc;

19、返回员工的信息并按工作降序工资升序排列。
select * from emp order by job desc,sal asc;
20、返回员工的姓名、雇佣年份和月份并且按月份和雇佣日期排序。
select ename,to_char(hiredate,'yyyy-mm')
from emp
order by to_char(hiredate,'mm'),hiredate;

21、计算员工的日薪(按30天)。
select floor(sal/30) from emp

22、找出2月份雇佣的员工。
select * from emp where to_char(hiredate,'mm')='02';

23、至今为止,员工被雇佣的天数。
select sysdate-hiredate from emp;

24、找出姓名中包含A的员工信息。
select * from emp where ename like '%A%';

25、计算出员工被雇佣了多少年、多少月、多少日。
select months_between(sysdate,hiredate)/12 year,
       months_between(sysdate,hiredate) month,
       sysdate-hiredate day
from emp;
26、显示如下效果

当前时间是
--------------------------------------------
2010年01月13日 下午  15点39分13秒  星期三

 select to_char(sysdate,'yyyy"年"mm"月"dd"日" am hh24"点"mi"分"ss"秒" day') 当前时间是
 from dual;

分享到:
评论

相关推荐

    适合新手的oracle练习题集合

    这个“适合新手的Oracle练习题集合”旨在帮助初学者巩固理论知识,提高实践技能,同时通过解决实际问题,如安全认证和转账问题,加深对Oracle数据库的理解。 1. **SQL基础**:在Oracle中,SQL(结构化查询语言)是...

    oracle练习

    【Oracle练习】是一个关于数据库管理和开发的主题,主要集中在Oracle这一全球广泛使用的数据库管理系统上。Oracle数据库是企业级的关系型数据库,被广泛应用于大型企业和组织的数据存储和管理。在这个主题中,我们...

    ORACLE练习的三个表 emp dept salgrade

    这里提到的"ORACLE练习的三个表 emp dept salgrade"是指Oracle数据库中的经典示例表,它们常用于教学和实战演练。这三个表分别是: 1. **EMP** 表:这是一个员工信息表,通常包含以下字段: - `EMPNO`:员工编号,...

    Oracle练习题初学者适用

    这份"Oracle练习题初学者适用"的压缩包提供了一系列的DOC文件,旨在帮助初学者系统地学习和巩固Oracle的相关知识。 首先,我们可以从“Oracle习题”这个文件名推测,这些文档可能包含了各种类型的题目,如选择题、...

    Oracle练习用表(DEPT、EMP、BONUS、SALGRADE)的建表语句

    Oracle数据库安装完毕,自带有很实用的练习用表:DEPT、EMP、BONUS、SALGRADE。很方便练习。 但是MySQL数据库安装完毕,却没有练习用表。 特此,把Oracle这4个练习用表的建表语句,分别用Oracle语句和MySQL语句写...

    各种oracle练习(习题+答案)

    针对大三学生的学习需求,这份“各种Oracle练习(习题+答案)”的资源提供了全面的复习材料,涵盖了Oracle数据库的基础知识到高级概念,旨在帮助学生巩固理论知识,提升实际操作技能,以应对考试或未来的职业需求。...

    Oracle练习表MySQL版

    Oracle数据库自带的数据库练习表MySQL版。包含(EMP、DEPT、BONUS、SALGRADE、DUMMY)

    学习oracle练习sql脚本.zip

    这个"学习oracle练习sql脚本.zip"文件显然是为那些希望深入理解和掌握Oracle数据库及SQL语法的人准备的。 在Oracle中,SQL被用来创建和操作数据库对象,如表、视图、索引等,以及查询、更新和管理存储在数据库中的...

    oracle 练习题目2

    从给定的Oracle练习题目中,我们可以提炼出一系列重要的数据库操作和SQL技能点,这些技能对于初学者来说至关重要。下面是对这些知识点的详细说明: ### 基本SQL查询 这是学习SQL的基础,涉及到如何使用`SELECT`, `...

    oracle练习题关于触发器的作业

    在"oracle练习题关于触发器的作业"中,你可能需要设计和实现各种类型的触发器来解决实际问题。例如,你可能需要创建一个触发器来确保表中的某个字段始终具有唯一的值,或者在更新记录时自动更新另一相关表的数据。 ...

    Oracle练习.txt

    3.如何在Oracle服务器上通过SQLPLUS查看本机IP地址 ? select sys_context('userenv','ip_address') from dual; 如果是登陆本机数据库,只能返回127.0.0.1 4.如何给表、列加注释? SQL&gt;comment on table 表 is '表...

    精英班oracle练习.rar

    "精英班Oracle练习"这个压缩包文件显然包含了针对Oracle数据库系统的学习材料,可能是练习题、案例分析或者教程文档,旨在帮助学员提升Oracle相关的技能。下面将详细讨论Oracle数据库的一些核心知识点。 1. **...

    java oracle练习例子

    本示例"java oracle练习例子"旨在提供一个基础的Java程序,演示如何使用JDBC(Java Database Connectivity)API连接到Oracle数据库,执行SQL查询,并处理返回的结果集。下面我们将深入探讨这个主题。 首先,为了...

    经典oracle练习题

    本资料集中的“经典Oracle练习题”旨在帮助你巩固Oracle的基础知识,提高解决实际问题的能力,同时也为面试做好充分准备。 1. **SQL查询基础** - 学习如何使用SELECT语句进行数据检索,包括基本的SELECT语句,如...

    oracle练习题.zip

    这个"oracle练习题.zip"压缩包包含了一些关于Oracle数据库操作的练习资料,主要关注查询语句和基本的数据操作。 首先,"table.sql"文件很可能是创建数据库表的SQL脚本。在Oracle中,创建表是数据库设计的基础,它...

    Oracle 练习题答案

    根据提供的Oracle练习题答案及其描述,我们可以逐一解析并总结出其中涉及的重要知识点: ### 1. 查询所有学生信息以及所有课程信息 ```sql select * from student; select * from course; ``` - **知识点**: `...

    我的oracle练习

    "我的Oracle练习"这个压缩包文件显然包含了针对Oracle数据库初学者的一些练习题目,旨在帮助新手熟悉Oracle的基本操作和概念。"oracle1-9小练习"的标签表明这可能是一个逐步进阶的系列练习,涵盖了从基础到稍高级别...

    oracle练习题 总结了一下几个经典的

    这些练习题涵盖了Oracle数据库的基本查询技巧,包括子查询、连接操作、聚合函数、条件判断以及各种内置函数的使用。通过解决这些问题,可以深入理解Oracle SQL和PL/SQL的用法,并提升在实际数据库管理中的技能。

    oracle 练习题一

    根据给定的Oracle练习题,我们可以提取出一系列与Oracle SQL相关的知识点。这些知识点不仅包括了基本的表结构创建、数据插入等操作,还涉及到了较为复杂的查询语句编写。接下来,我们将逐一分析并解释这些知识点。 ...

    ORACLE练习

    在"Oracle练习"中,我们可以深入学习Oracle的各种特性和功能,包括SQL查询、数据库设计、事务管理、索引优化、存储过程、触发器、视图、备份与恢复等关键知识点。 1. SQL查询:SQL(Structured Query Language)是...

Global site tag (gtag.js) - Google Analytics