ORACLE----多表查询语句练习
发布时间:2020-12-12 13:44:23 所属栏目:百科 来源:网络整理
导读:一.建表 1.建立两张表CLASSINFO,STUDENTINFO. --建表CLASSINFO; CREATE TABLE CLASSINFO ( CLASSID NUMBER ( 2 ) PRIMARY KEY ,CLASSNAME VARCHAR ( 10 ) NOT NULL ); --建表STUDENTINFO; CREATE TABLE STUDENTINFO ( STUDENTID NUMBER ( 2 ) PRIMARY KEY
一.建表 1.建立两张表CLASSINFO,STUDENTINFO. --建表CLASSINFO; --建表STUDENTINFO; 2.在两张表中插入数据。 --表CLASSINFO; INSERT INTO STUDENTINFO VALUES (1,‘Timmy‘,‘男‘,20,‘13285601693‘,‘suzhou‘,1 ); ALTER TABLE STUDENTINFO MODIFY (STUDENTNAME CHAR(10) );--这里是来修改STUDETNAME字段的数据类型的长度。 INSERT INTO STUDENTINFO VALUES (2,‘Lizmer‘,25,‘18056947153‘,‘anhui‘,1 ); INSERT INTO STUDENTINFO VALUES (3,‘Gray‘,30,‘18056996153‘,‘hubei‘,2 ); INSERT INTO STUDENTINFO VALUES (4,‘Roger‘,31,‘18056886153‘,‘henan‘,2 ); 3.在两张表中添加字段。 ALTER TABLE CLASSINFO ADD (Teacher char(20)); ALTER TABLE CLASSINFO ADD (Leader char(20)); ALTER TABLE STUDENTINFO ADD (SCORE NUMBER(20)); ALTER TABLE STUDENTINFO ADD (Teacher char(20)); 4.在新添加的字段中添加数据。 UPDATE CLASSINFO SET Teacher=‘刘A‘ where CLASSID=‘2‘; UPDATE CLASSINFO SET Leader=‘陈B‘ where CLASSID=‘2‘; UPDATE STUDENTINFO SET Teacher=‘张I‘ where STUDENTID=‘4‘; UPDATE STUDENTINFO SET Leader=‘汤J‘ where STUDENTID=‘4‘; UPDATE STUDENTINFO SET SCORE=‘100‘ where STUDENTID=‘5‘; 5.表CLASSINFO和STUDENTINFO如下所示。 ?ps:score字段的添加和插入数据参考上例。 二.高级多表数据查询。 2.1?RANK() OVERORDER BY/ DENSE_RANK() OVERORDER BY/?RANK() OVER PARTITION BY??ORDER BY; ##我们通常将group by叫做分组,而partition by称作分区,分组返回通常是一行,partition by返回的是多行。 SELECT STUDENTINFO.*,DENSE_RANK() OVER(ORDER BY STUDENTINFO.SCORE DESC ) AS RANKS FROM STUDENTINFO; SELECT STUDENTINFO.*,RANK() OVER(ORDER BY STUDENTINFO.SCORE DESC ) AS RANKS FROM STUDENTINFO; SELECT RANK() OVER(PARTITION BY STUDENTNAME ORDER BY STUDENTINFO.SCORE DESC ) AS RANKS FROM STUDENTINFO;--这里解释一下,假如Timmy有两次得分记录,那么上述语句就是对Timmy的得分排序。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何编译 & 执行 C 程序
- XML文档定义有几种形式?它们之间有何本质区别?解析XML文档
- ruby用 3行代码发送 gmail
- Postgresql: 解决无法安装uuid-ossp的问题
- swift详解之二十六-----------CALayer 判断是否点击hitTest
- metasploit连接postgresql数据库
- ruby-on-rails – 获取(omniauth-facebook)和(omniauth-twi
- reactor和proactor模式
- c# – FluentAssertions无法识别异步方法/ Func的ShouldNot
- iphone – 附件动作segue(UITableViewController)