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表中ID为10001的客户的订单信息
6、在fruits表和suppliers表之间,使用INNER JOIN语法进行内连接查询,并对查询结果排序
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)相关推荐
- 查看oracle数据库启动状态,Oracle数据库的状态查询
1 状态查询 启动状态 SQL语句 结果 nomount select status from v$instance; STARTED select open_mode from v$database ...
- oracle数据库怎么分组查询,oracle数据库之分组查询
本章内容和大家分享的是数据当中的分组查询.分组查询复杂一点的是建立在多张表的查询的基础之上,(我们在上一节课的学习中已经给大家分享了多表查询的使用技巧,大家可以自行访问:多表查询1 多表查询2)而在 ...
- oracle 游标查询数据库,Oracle数据库使用游标查询结果集所有数据
--Oracle使用游标查询结果集所有数据 DECLARE myTabelName NVARCHAR2(200):=''; --表名 myTableRowComment NVARCHAR2(200): ...
- oracle实验七 答案,Oracle表的常用查询实验(七)
Oracle表的常用查询实验(七) 1.问题描述: 有一个商品信息表,该表反应了各种商品的销售情况,一个产品是按照gid和gname两个字段来区分的,一个产品可能会有多个型号. create tabl ...
- MySql实验嵌套查询_实验五 数据库的嵌套查询实验
实验五数据库的嵌套查询实验 本实验需要2学时. 一.实验目的 使学生进一步掌握SQL Server或oracle的企业管理器的使用方法,加深SQL 语言的嵌套查询语句的理解. 二.实验内容 在SQL ...
- oracle 分组 排名,Oracle数据库之分组查询及排序
分组查询:使用 group by 来设置分组,把该列具有相同值的多条记录当成一组记录来处理,然后只会输出一条记录,得到的结果会默认使用升序的方式进行排列. 规则: (1)如果使用了分组函数,或者是 g ...
- Oracle数据库—— 多表查询
Oracle数据库-- 多表查询 (一)笛卡尔问题 1.笛卡尔积会在下面条件下产生: 省略连接条件 连接条件无效 所有表中的所有行互相连接 2.为了避免笛卡尔积,可以在WHERE加入有效的连接条件 ( ...
- Oracle数据库之子查询
Oracle数据库总结: Oracle数据库之基本查询 Oracle数据库之过滤和排序 Oracle数据库之单行函数 Oracle数据库之多行函数 Oracle数据库之多表查询 SQL> 注意的 ...
- oracle数据库查表_【Oracle数据库】表查询(一)
Oracle数据库的简单查询 本文使用到的数据表如下图: 表名为 EMP .其中,empno为员工号,empname为员工姓名,job为员工岗位,mgr为该员工上司的员工号,hiredate是入职日期 ...
最新文章
- python输入输出-python输入与输出
- SQL Server 游标的使用示例
- SQLServer 清空某个库所有表
- 孙丕恕离开浪潮 仪器厂历时60年成为服务器龙头企业
- 【iOS】The run destination iPhone is not valid for Running the scheme .
- AndroidStudio提高编译速度的建议
- IE6下解决select层级高的问题
- webpack 无法加载文件 C:\Users\User\AppData\Roaming\npm\webpack.ps1,因为在此系统上禁止运行脚本。
- MySQL主从介绍及配置
- 苹果系统上安装windows教程(图文详解+工具)一看就会!
- AMCL代码详解(二)位姿初始化
- selenium在爬虫领域的初涉(自动打开网站爬取信息)
- 【随记】Dialog dismiss无法正常关闭问题
- 被开了!!!!!!!!!!
- Android以太坊钱包全部功能-基于web3j实现
- Beta阶段基于NABCD评论作品
- 计算机密码是空的怎么重置,电脑忘记开机登录密码怎么办? Windows 密码重置 - 合一学院...
- rouge 摘要评估_ROUGE简介,以及如何使用它评估摘要
- 【图像几何】基于傅里叶+DCT图像变换matlab代码
- IDEA学生免费申请教程