Oracle数据库实验四查询实验三(Oracle 11g)

实验要求:

1、在fruits表和suppliers表之间使用等值连接查询。(  s_id   ,s_name,f_name, f_price )   ,

2、在fruits表和suppliers表之间,使用INNER JOIN语法进行内连接查询(  s_id   ,s_name,f_name, f_price )   ,

SELECT suppliers.s_id, s_name,f_name, f_price  FROM fruits INNER JOIN suppliers   ON fruits.s_id = suppliers.s_id;

3、.LEFT JOIN左连接

首先创建表orders,SQL语句如下:

CREATE TABLE orders

(

  o_num  number(9)   NOT NULL,

  o_date  date         NOT NULL,

  c_id    number(9)    NOT NULL,

  PRIMARY KEY (o_num)

) ;

插入需要演示的数据,SQL语句如下:

INSERT INTO orders(o_num, o_date, c_id)VALUES(30001, '01-9月-2008', 10001);

INSERT INTO orders(o_num, o_date, c_id)VALUES (30002, '12-9月-2008', 10003) ;

INSERT INTO orders(o_num, o_date, c_id)VALUES (30003, '30-9月-2008', 10004) ;

INSERT INTO orders(o_num, o_date, c_id)VALUES (30004, '03-10月-2008', 10005) ;

INSERT INTO orders(o_num, o_date, c_id)VALUES (30005, '08-10月-2008', 10001) ;

在customers表和orders表中,查询所有客户,包括没有订单的客户

4、RIGHT JOIN右连接

在customers表和orders表中,查询所有订单,包括没有客户的订单

5、复合条件连接查询

customers表和orders表中,使用INNER JOIN语法查询customers表中ID10001的客户的订单信息

  • SELECT customers.c_id, orders.o_num  FROM customers INNER JOIN orders   ON customers.c_id = orders.c_id AND customers.c_id = 10001;

6、在fruits表和suppliers表之间,使用INNER JOIN语法进行内连接查询,并对查询结果排序

  • > SELECT suppliers.s_id, s_name,f_name, f_price   FROM fruits INNER JOIN suppliers  ON fruits.s_id = suppliers.s_id

7、下面定义两个表tb1和tb2:

CREATE table tbl1 ( num1 INT NOT NULL);

CREATE table tbl2 ( num2 INT NOT NULL);

分别向两个表中插入数据:

I INSERT INTO tbl1 values(1);

INSERT INTO tbl1 values(5);

INSERT INTO tbl1 values(13);

INSERT INTO tbl1 values(27);

INSERT INTO tbl2 values(6);

INSERT INTO tbl2 values(14);

INSERT INTO tbl2 values(11);

INSERT INTO tbl2 values(20);

8、返回tbl2表的所有num2列,然后将tbl1中的num1的值与之进行比较,只要大于num2的任何1个值,即为符合查询条件的结果。

9、返回tbl1表中比tbl2表num2 列所有值都大的值

10、在orderitems表中查询f_id为c0的订单号,并根据订单号查询具有订单号的客户c_id

11、在suppliers表中查询s_city等于“Tianjin”的供应商s_id,然后在fruits表中查询所有该供应商提供的水果的种类

12、查询所有价格小于9的水果的信息,查询s_id等于101和103所有的水果的信息,使用UNION连接查询结果

13、查询所有价格小于9的水果的信息,查询s_id等于101和103的所有水果的信息,使用UNION ALL连接查询结果

create table student(

sno varchar2(10) primary key,

sname varchar2(20),

sage number(2),

ssex varchar2(5)

);

create table teacher(

tno varchar2(10) primary key,

tname varchar2(20)

);

create table course(

cno varchar2(10),

cname varchar2(20),

tno varchar2(20),

constraint pk_course primary key (cno,tno)

);

create table sc(

sno varchar2(10),

cno varchar2(10),

score number(4,2),

constraint pk_sc primary key (sno,cno)

);

/*******初始化学生表的数据******/

insert into student values ('s001','张三',23,'男');

insert into student values ('s002','李四',23,'男');

insert into student values ('s003','吴鹏',25,'男');

insert into student values ('s004','琴沁',20,'女');

insert into student values ('s005','王丽',20,'女');

insert into student values ('s006','李波',21,'男');

insert into student values ('s007','刘玉',21,'男');

insert into student values ('s008','萧蓉',21,'女');

insert into student values ('s009','陈萧晓',23,'女');

insert into student values ('s010','陈美',22,'女');

commit;

/******************初始化教师表***********************/

insert into teacher values ('t001', '刘阳');

insert into teacher values ('t002', '谌燕');

insert into teacher values ('t003', '胡明星');

commit;

/***************初始化课程表****************************/

insert into course values ('c001','J2SE','t002');

insert into course values ('c002','Java Web','t002');

insert into course values ('c003','SSH','t001');

insert into course values ('c004','Oracle','t001');

insert into course values ('c005','SQL SERVER 2005','t003');

insert into course values ('c006','C#','t003');

insert into course values ('c007','JavaScript','t002');

insert into course values ('c008','DIV+CSS','t001');

insert into course values ('c009','PHP','t003');

insert into course values ('c010','EJB3.0','t002');

commit;

/***************初始化成绩表***********************/

insert into sc values ('s001','c001',78.9);

insert into sc values ('s002','c001',80.9);

insert into sc values ('s003','c001',81.9);

insert into sc values ('s004','c001',60.9);

insert into sc values ('s001','c002',82.9);

insert into sc values ('s002','c002',72.9);

insert into sc values ('s003','c002',81.9);

insert into sc values ('s001','c003','59');

commit;

14、查询“c001”课程比“c002”课程成绩高的所有学生的学号;

15、查询平均成绩大于60 分的同学的学号和平均成绩;

16、查询所有同学的学号、姓名、选课数、总成绩;

17、查询姓“刘”的老师的个数

18、查询没学过“谌燕”老师课的同学的学号、姓名;

代码如下:

1.

select fruits.s_id,suppliers.s_name,fruits.f_name,fruits.f_price

from fruits,suppliers

where fruits.s_id=suppliers.s_id;

2.

SELECT suppliers.s_id, s_name,f_name, f_price  

FROM fruits INNER JOIN suppliers ON fruits.s_id=suppliers.s_id;

3.

select customers.c_id

from customers left outer join orders on (customers.c_id=orders.c_id);

4.

select orders.o_num

from customers right outer join orders on (customers.c_id=orders.c_id);

5.

SELECT customers.c_id, orders.o_num  

FROM customers INNER JOIN orders ON customers.c_id = orders.c_id AND customers.c_id = 10001;

6.

SELECT suppliers.s_id, s_name,f_name, f_price   

FROM fruits INNER JOIN suppliers ON fruits.s_id = suppliers.s_id;

7.

CREATE table tbl1 ( num1 INT NOT NULL);

CREATE table tbl2 ( num2 INT NOT NULL);

INSERT INTO tbl1 values(1);

INSERT INTO tbl1 values(5);

INSERT INTO tbl1 values(13);

INSERT INTO tbl1 values(27);

INSERT INTO tbl2 values(6);

INSERT INTO tbl2 values(14);

INSERT INTO tbl2 values(11);

INSERT INTO tbl2 values(20);

8.

select num1

from tbl1

where num1>any(

select num2

from tbl2

);

9.

select num1

from tbl1

where num1>all(

select num2

from tbl2

);

10.

select c_id

from orders

where o_num in

(

select o_num

from orderitems

where f_id='c0'

);

11.

select f_id

from fruits

where s_id in

(

select s_id

from suppliers

where s_city='Tianjin' or s_city='tianjin'

);

12.

select *

from fruits

where f_price<9

union

select *

from fruits

where s_id=101 and s_id=103;

13.

select *

from fruits

where f_price<9

union all

select *

from fruits

where s_id=101 and s_id=103;

14.

select a.sno

from sc a,sc b

where a.sno=b.sno and a.cno='c001' and b.cno='c002' and a.score>b.score;

15.

select sno,avg(score)

from sc

group by sno

having avg(score)>60;

16.

select a.sno,b.sname,count(a.cno),sum(a.score)

from student b left outer join sc a on a.sno=b.sno  

group by a.sno,b.sname;      

17.

select count(tname)

from teacher

where tname like '刘%';

18.

select sno,sname

from student

where sno in

(

select sno

from sc

where cno in

(

select cno

from course

where tno in

(

select tno

from teacher

where tname!='谌燕'

)

)

);

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验一 PL/SQLPL/SQLPL/SQLPL/SQLPL/SQLPL/SQL开发环境的使用 [实验目的 ] 1.掌握建立本地 Net服务名( TNS)的方法; 2.熟悉和掌握使用 SQL Plus工具操作数据库; 3.熟悉 TOAD工具。 [实验内容 ] 1.使用 Oracle 的 TNS配置程序建立本地服务名; a.运行 Oracle的 TNS配置程序;(程序里面的 oracle目录下的 Net Configuration Assistant) b.输入远程数据库服务名——orcl; c.输入远程数据库 IP地址(192.168.128.8)和端口(1521); d. 使用自己的姓名作为帐户和学号作为密码测试; e.输入一个自己容易记住的名字命名 TNS,如 orcl之类的。 f.完成配置。 2.使用 SQL Plus 工具登陆远程数据库; a.运行 OracleSQL Plus工具; b. 使用自己的姓名作为帐户和学号作为密码,主机字符串为刚才自己配置的 TNS登陆; c.记录程序信息; d.键入“create table taba(cola int,colb int);”,记录 SQL语句运行结果; e.键入“insert into taba values(1,1);”,记录 SQL语句运行结果; f.键入“commit;”,提交插入操作; g.退出应用程序。 3.在命令行下使用 SQL Plus登陆远程数据库; a.点击运行菜单(或者按 Win+R键); b.输入 cmd; c.在命令行窗口下输入 sqlplus 用户名/密码@TNS,如 sqlplus scott/tiger@orcl; d.记录程序信息; e.键入“select * from taba;”,记录 SQL语句运行结果; f.退出程序。 4.使用 TOAD工具登陆远程数据库。 a.运行 TOAD程序(双击桌面的青蛙图标); b.选择刚才设定的 TNS,使用自己的姓名作为帐户和学号作为密码登陆; c.打开 SQL Editer,键入“select * from taba;”,按 F9,记录 SQL运行结果; d.退出程序。 [实验报告 ] 1. 记录所有的操作和操作结果; 2. 比较三种不同方式使用数据库的不同。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值