sal

数据库笔记-SQLday05

匿名 (未验证) 提交于 2019-12-03 00:30:01
数据库day05 --视图: --视图(VIEW)也被称作虚表,即虚拟的表,是一组数据的逻辑表示,其本质是对应于一条SELECT语句,结果集被赋予一个名字,即视图名字 --视图也是数据库对象,视图在SQL语句中体现的样子是表的样子,但是其并不是一张真实存在的表, --而是一个查询语句的结果集。使用视图通常是为了重用子查询。 CREATE VIEW v_emp_wensq AS SELECT empno,ename,sal,deptno FROM emp_wensq WHERE deptno = 10; --视图中对应的SELECT子句中的字段可以使用别名,这样视图对应的该字段的字段名就是别名了。 --当SELECT中的字段是函数或者表达式,那么视图要求该字段必须给别名! CREATE OR REPLACE VIEW v_emp_wensq AS SELECT empno id,ename name,sal salary,deptno FROM emp_wensq WHERE deptno = 10; --对视图进行DML操作,就是对视图数据来源的基表进行的。 --向视图插入数据: --DML只能对简单视图进行,复杂视图不允许进行DML操作。 --向视图插入数据: INSERT INTO v_emp_wensq (id, name,salary,deptno) VALUES

JDBC连接数据库――改进版

匿名 (未验证) 提交于 2019-12-03 00:30:01
package JDBC; import java.sql.*; public class JDBCDemon1 { public static void JDBCStep(){ Connection connection = null; try { Class.forName("com.mysql.jdbc.Driver"); // DriverManger连接mysql时路径格式:jdbc:mysql://<host>:<port>/<dbname> msql端口号通常为3306 connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/scott?user=root&password=100521"); /* 通过Connection创建Statement来执行SQL语句 */ Statement statement = connection.createStatement(); /* execute用于执行DDL语句返回的结果为是否执行成功 executeQuery用于执行DQL(select)语句,返回一个结果集resultSet executeUpdate用于执行DML(增删改操纵)返回int值为影响数据库多少条数据 */ /* 通过Statment执行SQL语句,查询语句emp表中的信息

Oracle 查询练习

匿名 (未验证) 提交于 2019-12-03 00:27:02
--1. -- select * from (select emp.deptno no,dept.dname name,avg(sal) avgsal (select max(AVGSAL) from -- select * from --2 select empno,ename,sal,dname --3 select ename,e.job,e.sal from emp e,(select job,min(sal) minsal --4 select t.ename mgr,e.ename from emp e, --5 select t1.empno,t1.ename,t1.mgr,t2.sal mgrsal from emp t1,emp t2 where t1.mgr=t2.empno order by mgrsal desc --6 select count(*) ,avg(sal) from (select sal,comm,nvl2(comm,1,0) nvl from emp) group by nvl order by nvl desc --7 2500 2500 select * from where rownum=1 --8 select t.empno,t.ename,d.dname from dept d, (select t1.empno,t1

Oracle 之 SQL 面试题 录(转)

匿名 (未验证) 提交于 2019-12-03 00:17:01
多上网查查 SQL  面试题 2. 数据库 有3个表 teacher表 student表 tea_stu关系表 teacher表 teaID name age student表 stuID name age teacher_student表 teaID stuID 要求用一条sql查询出这样的结果: 1.显示的字段要有老师id age 每个老师所带的学生人数 2.只列出老师age为40以下 学生age为12以上的记录。 select a.teaID,a.age count(*) from teacher a,student b,teacher_student c where a.teaID=c.teaID and b.stuID=c.stuID and a.age>40 and b.age>12 group by a.teaID,a.age; select a.department,count from tA a,tB b where a.id=b.id group by b.id,a,deparment 方法1: select Sname,sum(Ccredit) as totalCredit from Student,Course,SC where Grade>=60 and Student.Sno=SC.Sno and Course.Cno=SC.Cno group by

Oracle分析函数FIRST_VALUE、LAST_VALUE

匿名 (未验证) 提交于 2019-12-02 23:52:01
FIRST_VALUE、LAST_VALUE分析函数可以按照特定分组和排序去除组内首尾值,语法 FIRST_VALUE { (expr) [ {RESPECT | IGNORE} NULLS ] | (expr [ {RESPECT | IGNORE} NULLS ]) } OVER (analytic_clause) 测试下 10:48:07 SCOTT@study> SELECT EMPNO, 10:48:15 2 DEPTNO, 10:48:15 3 SAL, 10:48:15 4 FIRST_VALUE(SAL) IGNORE NULLS OVER(PARTITION BY DEPTNO ORDER BY SAL) AS LOWEST_IN_DEPT, 10:48:15 5 FIRST_VALUE(SAL) IGNORE NULLS OVER(PARTITION BY DEPTNO ORDER BY SAL ROWS 1 PRECEDING) AS PRECEDING_IN_DEPT, 10:48:15 6 LAST_VALUE(SAL) IGNORE NULLS OVER(PARTITION BY DEPTNO ORDER BY SAL) AS HIGHEST_IN_DEPT, 10:48:15 7 LAST_VALUE(SAL) IGNORE NULLS OVER

子查询

匿名 (未验证) 提交于 2019-12-02 23:49:02
select * from emp; --查询薪水比allen高的员工信息 -- (1)查询allen的薪水 select sal from emp where ename='ALLEN'; -- (2)查询比薪水高于1600的员工信息 select * from emp where sal>1600; --总结 select * from emp where sal >(select sal from emp where ename='ALLEN'); --案例: oracle支持,mysql不支持 select deptno,count(*)as num ,avg(sal) as avgsal from emp where deptno is not null select d.deptno,dname,num,avgsal from dept d, where d.deptno=t.deptno --查询本部门最高工资的员工 --(2)查询20号最门的员工的最高工资 --(3)查询300号最门的员工的最高工资 --相关子查询 select * from emp e1 where sal=(select max(sal) from emp e2 where e1.deptno=e2.deptno); 查询本部门工资高于平均工资的那些员工 select * from emp

Spark学习之路(十一)―― Spark SQL 聚合函数 Aggregations

匿名 (未验证) 提交于 2019-12-02 23:38:02
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37809146/article/details/91282135 一、简单聚合 1.1 数据准备 // 需要导入spark sql内置的函数包 import org.apache.spark.sql.functions._ val spark = SparkSession.builder().appName("aggregations").master("local[2]").getOrCreate() val empDF = spark.read.json("/usr/file/json/emp.json") // 注册为临时视图,用于后面演示SQL查询 empDF.createOrReplaceTempView("emp") empDF.show() 注:emp.json可以从本仓库的 resources 目录下载。 1.2 count // 计算员工人数 empDF.select(count("ename")).show() 1.3 countDistinct // 计算姓名不重复的员工人数 empDF.select(countDistinct("deptno")).show() 1.4 approx_count_distinct 通常在使用大型数据集时

Oracle 关联查询

匿名 (未验证) 提交于 2019-12-02 23:36:01
版权声明:分享是一种品质,开源是一种精神。 https://blog.csdn.net/wangmx1993328/article/details/90664207 Ŀ¼ 笛卡尔积 隐式内连接 显式内连接 左/右外连接 子查询 exists 查询 rownum 行号 union 并集运算 minus 差集运算 集合运算注意事项 笛卡尔积 1、两张表数据的乘积,实际基本用不上,只是助于理解。 select * from emp;--查询所有员工 select * from dept;--查询所有部门 select * from emp,dept;--多表查询,没加 where 条件,此时就是笛卡尔积 隐式内连接 1、在笛卡尔积的基础上加上 where 条件后就是隐式内连接。(比较常用的操作) select * from emp;--查询所有员工 select * from dept;--查询所有部门 --笛卡尔积加上 where 条件就是隐式内连接。查询员工及其所在的部门信息 select * from emp,dept where emp.deptno = dept.deptno; --查询员工姓名及其所在部门的位置 select e1.ename,d1.loc from emp e1,dept d1 where e1.deptno = d1.deptno; 显式内连接 1

数据共享与整合技术-PLSQL练习

匿名 (未验证) 提交于 2019-12-02 23:36:01
1、编写一个存储过程,根据输入的工作类型,输出该工作的平均工资。 命令如下: 创建存储过程: create or replace procedure avgsal(v_job in emp.job%type) is avgsal2 number begin select avg(sal) into avgsal2 from emp where job=v_job; dbms_output.put_line(v_job || '---' || avgsal2) end; 调用存储过程: Begin avgsal('MANAGER'); end; 程序截图: 运行结果: 2、创建一个存储过程,以员工号为参数,输出该员工的工资。 命令如下: 创建存储过程: create or replace procedure p_sxtl(v_empno in emp.empno%type,v_sal out emp.sal%type) is begin select sal into v_sal from emp where empno=v_empno; end; 调用存储过程: declare v_empno emp.empno%type :=7369; v_sal emp.sal%type; begin p_sxtl(v_empno,v_sal); dbms_output.put_line(v

K3CLOUD表关联

匿名 (未验证) 提交于 2019-12-02 23:34:01
销售订单关联发货通知单 销售订单表 T_SAL_ORDERENTRY B 发货通知单表 T_SAL_DELIVERYNOTICE D T_SAL_DELIVERYNOTICEENTRY E T_SAL_DELIVERYNOTICEENTRY_LK F F.FENTRYID = E.FENTRYID