实验要求:

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表中ID为10001的客户的订单信息

  • 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!='谌燕'

)

)

);

Oracle数据库实验四查询实验三(Oracle 11g)相关推荐

  1. 查看oracle数据库启动状态,Oracle数据库的状态查询

    1 状态查询 启动状态 SQL语句 结果 nomount select status from v$instance; STARTED select open_mode from v$database ...

  2. oracle数据库怎么分组查询,oracle数据库之分组查询

    本章内容和大家分享的是数据当中的分组查询.分组查询复杂一点的是建立在多张表的查询的基础之上,(我们在上一节课的学习中已经给大家分享了多表查询的使用技巧,大家可以自行访问:多表查询1  多表查询2)而在 ...

  3. oracle 游标查询数据库,Oracle数据库使用游标查询结果集所有数据

    --Oracle使用游标查询结果集所有数据 DECLARE myTabelName NVARCHAR2(200):=''; --表名 myTableRowComment NVARCHAR2(200): ...

  4. oracle实验七 答案,Oracle表的常用查询实验(七)

    Oracle表的常用查询实验(七) 1.问题描述: 有一个商品信息表,该表反应了各种商品的销售情况,一个产品是按照gid和gname两个字段来区分的,一个产品可能会有多个型号. create tabl ...

  5. MySql实验嵌套查询_实验五 数据库的嵌套查询实验

    实验五数据库的嵌套查询实验 本实验需要2学时. 一.实验目的 使学生进一步掌握SQL Server或oracle的企业管理器的使用方法,加深SQL 语言的嵌套查询语句的理解. 二.实验内容 在SQL ...

  6. oracle 分组 排名,Oracle数据库之分组查询及排序

    分组查询:使用 group by 来设置分组,把该列具有相同值的多条记录当成一组记录来处理,然后只会输出一条记录,得到的结果会默认使用升序的方式进行排列. 规则: (1)如果使用了分组函数,或者是 g ...

  7. Oracle数据库—— 多表查询

    Oracle数据库-- 多表查询 (一)笛卡尔问题 1.笛卡尔积会在下面条件下产生: 省略连接条件 连接条件无效 所有表中的所有行互相连接 2.为了避免笛卡尔积,可以在WHERE加入有效的连接条件 ( ...

  8. Oracle数据库之子查询

    Oracle数据库总结: Oracle数据库之基本查询 Oracle数据库之过滤和排序 Oracle数据库之单行函数 Oracle数据库之多行函数 Oracle数据库之多表查询 SQL> 注意的 ...

  9. oracle数据库查表_【Oracle数据库】表查询(一)

    Oracle数据库的简单查询 本文使用到的数据表如下图: 表名为 EMP .其中,empno为员工号,empname为员工姓名,job为员工岗位,mgr为该员工上司的员工号,hiredate是入职日期 ...

最新文章

  1. python输入输出-python输入与输出
  2. SQL Server 游标的使用示例
  3. SQLServer 清空某个库所有表
  4. 孙丕恕离开浪潮 仪器厂历时60年成为服务器龙头企业
  5. 【iOS】The run destination iPhone is not valid for Running the scheme .
  6. AndroidStudio提高编译速度的建议
  7. IE6下解决select层级高的问题
  8. webpack 无法加载文件 C:\Users\User\AppData\Roaming\npm\webpack.ps1,因为在此系统上禁止运行脚本。
  9. MySQL主从介绍及配置
  10. 苹果系统上安装windows教程(图文详解+工具)一看就会!
  11. AMCL代码详解(二)位姿初始化
  12. selenium在爬虫领域的初涉(自动打开网站爬取信息)
  13. 【随记】Dialog dismiss无法正常关闭问题
  14. 被开了!!!!!!!!!!
  15. Android以太坊钱包全部功能-基于web3j实现
  16. Beta阶段基于NABCD评论作品
  17. 计算机密码是空的怎么重置,电脑忘记开机登录密码怎么办? Windows 密码重置 - 合一学院...
  18. rouge 摘要评估_ROUGE简介,以及如何使用它评估摘要
  19. 【图像几何】基于傅里叶+DCT图像变换matlab代码
  20. IDEA学生免费申请教程

热门文章

  1. 虚拟机在线迁移Vmotion
  2. python分析股票主力_筹码分布及计算原理
  3. windows 如何查看、修改MAC地址?
  4. Bluetooth Controller BB Phsical Channel相关基础知识整理
  5. 短波信道模型--多径瑞利信道原理详解及matlab实现
  6. 时频分析:短时傅里叶变换
  7. window磁盘id与序列号
  8. 电子设计中常用的运放电路
  9. excel电子表格插件_电子表格的美好时光
  10. 容联云 PHP 实现短信发送验证码