emp

08-oracle统计函数(单组分组函数)

一笑奈何 提交于 2019-11-29 08:59:51
--count时尽量count(列名),count(*)也可以。 --count,max,min,sum,avg,median(中位数) select count(empno),count(distinct job),max(hiredate),min(hiredate),sum(sal),round(avg(sal),2) from emp; --median:中位数(中间值),一组按大小顺序排列的数据,处于中间位置的数。 --行数为奇数时取中间行的数值(19行/2取9行的值),偶数时取中间2行数值的平均值(若18行则中位数的值为(9行+10行)除以2)。 --如sal共15行,第8行即中位数(中间值) select median(sal) from emp; --使用group by统计每个部门的人数 select deptno,count(deptno) from emp where deptno is not null group by deptno; --group by 以职位分组,查询出每个职位的最低和最高工资 select job,min(sal),max(sal) from emp group by job; --数据统计时,语句中没有group by时,select的选项只能出现统计函数(count(),sum(),max(),min(),avg()); -

spring集成mybatis

柔情痞子 提交于 2019-11-29 08:34:37
(1)编程步骤 1.导包。spring-webmvc,mybatis,mybatis-spring,spring-jdbc,dbcp,ojdbc. 2.配置文件 添加spring的配置文件。 注:mybatis的配置信息可以添加到spring的配置文件当中(只需要配置SqlSessionFactoryBean)。 3.实体类 4.映射文件 5.Mapper映射器。 6.在spring的配置文件中,添加MapperScannerConfigurer. 该bean负责调用SqlSession的getMapper方法,创建符合Mapper映射器要求的对象。 注:该bean会将这个对象添加到spring容器里面。 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www

mysql多表查询&&事务

岁酱吖の 提交于 2019-11-29 08:27:26
# 今日内容 1. 多表查询 2. 事务 3. DCL ## 多表查询: * 查询语法: select 列名列表 from 表名列表 where.... * 准备sql # 创建部门表 CREATE TABLE dept( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20) ); INSERT INTO dept (NAME) VALUES ('开发部'),('市场部'),('财务部'); # 创建员工表 CREATE TABLE emp ( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(10), gender CHAR(1), -- 性别 salary DOUBLE, -- 工资 join_date DATE, -- 入职日期 dept_id INT, FOREIGN KEY (dept_id) REFERENCES dept(id) -- 外键,关联部门表(部门表的主键) ); INSERT INTO emp(NAME,gender,salary,join_date,dept_id) VALUES('孙悟空','男',7200,'2013-02-24',1); INSERT INTO emp(NAME,gender,salary,join_date,dept_id)

Python 41 多表查询 和 子查询

梦想的初衷 提交于 2019-11-29 07:39:33
1、查询 完整的查询语句 select [distinct] {* | 字段 | 聚合函数 | 表达式}from 表名 where 筛选数据,过滤数据 group by 分组,为了让聚合函数统计 having 分完组后过滤的条件 order by 字段名,字段名(字段名后面再加字段名) desc | asc limit 限制显示的条数 a | b 第一个是起始位置,默认是0;第二个是显示的记录数, 常用于分页查询 2、多表查询 inner join 内连接 左右两个表仅显示匹配成功的记录 left join 左右全部显示 右边显示匹配 right join 右表全部显示 左边显示匹配 full join mysql 使用 union 间接完成 一:多表查询 1、什么是多表查询? 在多个表中查询需要的数据 例如:有班级表 和学生表 给你已给班级名称 请查询所有的学员数据 先查班级表 得到一个班级的id 再根据id去学院表查询对应的学员 准备数据: create table emp (id int,name char(10),sex char,dept_id int); insert emp values(1,"大黄","m",1); insert emp values(2,"老王","m",2); insert emp values(3,"老李","w",30); create

MySQL子查询

不想你离开。 提交于 2019-11-29 07:39:05
什么是子查询? 当一个查询是另一个查询的条件时,这个查询称之为子查询(内层查询) 什么时候用? 当查询需求比较复杂,一次性查询无法得到结果,需要多次查询时, 例如:给出一个部门名称,需要获得该部门所有的员工信息 需要先确定部门的id, 然后才能通过id确定员工 解决问题的方式是把一个复杂的问题拆分为若干个简单的问题 如何使用? 首先明确子查询就是一个普通的查询,当一个查询需要作为子查询使用时,用括号包裹即可 案列: 准备数据: create table emp (id int,name char(10),sex char,age int,dept_id int,job char(10),salary double); insert into emp values (1,"刘备","男",26,1,"总监",5800), (2,"张飞","男",24,1,"员工",3000), (3,"关羽","男",30,1,"员工",4000), (4,"孙权","男",25,2,"总监",6000), (5,"周瑜","男",22,2,"员工",5000), (6,"小乔","女",31,2,"员工",4000), (7,"曹操","男",19,3,"总监",10000), (8,"司马懿","男",24,3,"员工",6000); create table dept(id int

数据库操作(二)

我的未来我决定 提交于 2019-11-29 05:02:01
数据库操作(二) 1.MySQL行(记录)操作 插入(增加)数据 1.插入完整数据 语法1: insert into 表名(字段1,字段2..字段n) values(值1,值2..值n); #字段和值要一一对应 语法2: insert into 表名 values(值1,值2..值n); #表名后不定义列名,则按顺序给所有列添加值 2.指定字段插入数据 语法: insert into 表名(字段1,字段2..) values(值1,值2..) 3.插入多条记录 语法: insert into 表名 values (值1,值2,值3...值n), (值1,值2,值3...值n), (值1,值2,值3...值n); #插入多条记录用逗号分隔 4.插入查询结果 语法: insert into 表名(字段1,字段2..字段n) select (字段1,字段2..字段n) from 表2 where 条件; #将从表2中查询的结果插入到表中,查询数据要和指定的字段对应好 5.增加字段 语法: alter table 表名 add 字段名 数据类型 约束条件, add 字段名 数据类型 约束条件; #增加记录 alter table 表名 add 字段名 数据类型 约束条件 first; #增加记录到第一个位置 alter table 表名 add 字段名1 数据类型 约束条件 after

MySQL查询——select

主宰稳场 提交于 2019-11-29 04:57:47
SELECT   select的完整语法: select col1, col2,... # 业务查询的字段 from table_name # 选取的哪张表 [where single_conditions] # single_conditions条件表达式,个体约束(条件) [[group by column_name1] # column_name1以哪个字段名分组 [having group_conditions]] # group_conditionds条件表达式,分组约束 [order by column_name2] # column_name2以哪个字段进行排序 [limit N,M] # 执行完之后,跳过N条记录,选取M条记录   上述如果都有:执行顺序from->where->group by->having->order by->limit->select   列的结果显示       1、去掉重复的数据:distinct(针对于记录而言,不是针对于列的数据而言) # 查看员工的职位 select title from s_emp; select distinct title from s_emp; # 每个部门下有哪些职位 select dept_id,title from s_emp; select distinct dept_id,title from s

Oracle-ocp-051

喜欢而已 提交于 2019-11-29 04:44:29
查看Oracle用户可以使用那些表数据字典表(管理用户所有表) desc user_tables;(查看可以操作的表) select tables_name from user_tables;(SCOTT用户可以使用四个表) 字符类型都是左对齐,数字类型的都是右对齐 空值是不可用的、未分配的、未知的或不使用的值空值不同于零或空格 设置显示行间距 set linesize 200;宽度为200 set pagesize 50;每页现实50行 create table test(hiredate varchar(20));创建表 查看当前用户可以使用的表 select table_name from user_tables; 标题的默认设置 字符和日期列标题的对齐方式为:左对齐 数字列标题的对齐方式:右对齐 默认的标题显示方式:大写 空值不等同于零或者空格 空值带入四则运算仍然还是空值 定义别名 列别名具有以下特征 可重命名标题、有助于计算、紧跟在列名后(列名和别名之间也可以加上可选关键词AS)如果别名包括空格或特殊字符、或者区分大小写则需要双引号 链接字符串 select ename||job from emp; 把两个列名合并一块显示出来 重复行 select distinct deptno from emp; distinct (去重) 只显示空值 select * from

mysql表的连接

一世执手 提交于 2019-11-29 04:38:43
建表前准备 #建表 #部门表 create table department( id int, name varchar(20) ); #员工表,之前我们学过foreign key,强行加上约束关联,但是我下面这个表并没有直接加foreign key,这两个表我只是让它们在逻辑意义上有关系,并没有加foreign key来强制两表建立关系,为什么要这样搞,是有些效果要给大家演示一下 #所以,这两个表是不是先建立哪个表都行啊,如果有foreign key的话,是不是就需要注意表建立的顺序了。那我们来建表。 create table employee( id int primary key auto_increment, name varchar(20), sex enum('male','female') not null default 'male', age int, dep_id int ); #给两个表插入一些数据 insert into department values (200,'技术'), (201,'人力资源'), (202,'销售'), (203,'运营'); #注意这一条数据,在下面的员工表里面没有对应这个部门的数据 insert into employee(name,sex,age,dep_id) values ('egon','male',18,200),

JDBC14 ORM03 JavaBean封装

柔情痞子 提交于 2019-11-29 04:26:04
Javabean 对象封装一条信息(推荐) 让JavaBean的属性名和类型尽量和数据库保持一致 一条记录对应一个对象,将这些查询到的对象放到容器中(List) 表信息如下 List封装多条信息 Connection conn=null; PreparedStatement ps=null; ResultSet rs=null; List<Emp> list=new ArrayList<>(); try { conn=Utils.getConn(); ps=conn.prepareStatement("select Empname,birthday,salary from emp where id>?"); ps.setObject(1, 1); rs=ps.executeQuery(); while(rs.next()) { Emp emp=new Emp(rs.getString(1),rs.getDate(2),rs.getDouble(3)); list.add(emp); } for(Emp emp:list) { System.out.println(emp.getName()+"--"+emp.getBirthday()+"--"+emp.getSalary()); } System.out.println(); } catch (SQLException e) {