emp

oracle中的函数

拟墨画扇 提交于 2020-04-04 10:28:08
一、单行函数 1.定义: 作用于一行,返回值为一个 注:以下所有的操作的表是Oracle数据库中自带的用户scott下的表 2.字符函数 --小写变大写 select upper('yes') from dual;--YES select lower('YES') from dual;--yes 3.数值函数 select round(26.18,1) from dual;--四舍五入,后面的参数为保留几位小数,26.2 select trunc(26.18,1) from dual;--直接截取,不在看后面面的位数,26.1 select mod(10,3) from dual;--求余,1 4.日期函数 系统时间:sysdate --查询emp表中所有员工入职距离现在几天 select sysdate-e.hiredate from emp e; --算出明天此刻 select sysdate+1 from dual; --查询emp表中所有员工入职距离现在几个月 select months_between(sysdate,e.hiredate) from emp e; --查询emp表中所有员工入职距离现在几个年 select months_between(sysdate,e.hiredate)/12 from emp e; --查询emp表中所有员工入职距离现在几周

SQL限定查询

◇◆丶佛笑我妖孽 提交于 2020-04-03 17:06:14
在很多时候并不需要查询所有数据行内容,此时就可以通过WHERE子句筛选要显示的数据行。语法结构: SELECT [DISTINCT] * | 列名称 [别名],列名称 [别名],... FROM 表名称[别名] [WHERE 过滤条件(s)]; 如果要想实现限定查询,那么需要掌握一些列的限定查询的符号,有如下几种: ●关系运算符:>、<、>=、<=、<>(!=) ●逻辑运算符:AND、OR、NOT ●范围运算符:BETWEEN...AND... ●谓词运算符:IN、NOT IN ●空判断:IS NULL、IS NOT NULL ●模糊查询:LIKE 1.关系运算符 范例: 1)要求查询出所有基本工资高于1500的雇员信息 SQL> SELECT * FROM emp WHERE sal>1500; 2)查询Smith的基本信息 SQL> SELECT * FROM emp WHERE ename='SMITH';   在Oracle数据库之中,所有数据需要区分大小写 3)查询职位不是销售人员的雇员编号、姓名、职位 SQL> SELECT empno,ename,job FROM emp WHERE job<>'SALESMAN'; 2.逻辑运算符 范例: 1)查询出工资范围在1500-3000之间的雇员信息 SQL> SELECT * FROM emp WHERE sal>

MyBatis基本应用

微笑、不失礼 提交于 2020-04-02 09:25:40
Mybatis(iBatis)简介 : (前身为iBatis)MyBatis是一个可以自定义SQL,存储过程和高级映射的持久层框架。MyBatis消除了几乎所以是JDBC代码和参数的手工设置以及结果集的检索。MyBatis可以使用简单的XML或注解用于配制和原始映射,将接口和JavaPOJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 作用:封装了JDBC操作,简化了数据库的访问 功能如下:——封装了获取连接,执行SQL,释放连接 ——封装了SQL参数设置 ——封装了记录映射成实体对象的过程,实体类的属性名与结果查询结果集ResultSet中列名保持一致 开发者:写SQL和实体类,然后使用SqlSession对象执行sql操作 MyBatis体系结构主要由以下几个关键部分 (1)加载配置 配置有两种形式,一种是XML配置文件,另一种是Java代码的注解。MyBatis将SQL的配置信息加载成为一个个MappdStatement对象( 包括了传入参数映射配置,执行的SQL语句,结果映射配置),并将其存储在内存中。 (2)SQL解析 当API接口层接收到调用请求时,会接收到传入SQL的ID和传入对象(可以是Map,JavaBean或者基本数据类型)MyBatis会根据SQL的ID找到对应的MappedStatement

oracle中子查询

跟風遠走 提交于 2020-04-02 09:02:18
定义,就是指查询中嵌套查询。 子查询可以出现在很多位置,比如: 当列、当表、当条件等 语法: SELECT (子查询) FROM (子查询) WHERE (子查询) GROUP BY 子句 HAVING (子查询) ORDER BY 子句 注:子查询要用括号括起来。 如: -- 找出与Ben同一个部门的员工 --第一步:先找出Ben所在的部门 select dept_id from s_emp where first_name = 'Ben'; --第二步:找出该部门的所有员工 select first_name from s_emp where dept_id = 数值 --第三步: select first_name from s_emp where dept_id =(select dept_id from s_emp where first_name = 'Ben') and first_name != 'Ben'; 如: -- 查询出顾客名及他拥有的订单数 --第一步: select c.name,订单数 from s_customer c; --第二步:订单数 select c.name,count(o.id) from s_ord o right join s_customer c on o.customer_id = c.id group by c.name; -

Oracle学习时关于SQL语言的总结

情到浓时终转凉″ 提交于 2020-03-31 04:10:21
1、查询dept表的结构 在命令窗口输入:desc dept; 2、检索dept表中的所有列信息 select * from dept 3、检索emp表中的员工姓名、月收入及部门编号 select ename "员工姓名",sal "月收入",empno "部门编号" from emp 4、检索emp表中员工姓名、及雇佣时间 日期数据的默认显示格式为“DD-MM-YY",如果希望使用其他显示格式(YYYY-MM-DD),那么必须使用TO_CHAR函数进行转换。 select ename "员工姓名", hiredate "雇用时间1",to_char(hiredate,'YYYY-MM-DD') "雇用时间2" from emp 注意:第一个时间是日期类型的,在Oracle的查询界面它的旁边带有一个日历。第二个时间是字符型的。不要将YYYY-MM-DD使用双引号 5、使用distinct去掉重复行。 检索emp表中的部门编号及工种,并去掉重复行。 select distinct deptno "部门编号",job "工种" from emp order by deptno 6、使用表达式来显示列 检索emp表中的员工姓名及全年的月收入 select ename "员工姓名", (sal+nvl(comm,0))*12 "全年收入" from emp 注意:防止提成comm为空的操作

Mysql自连接的一些用法

依然范特西╮ 提交于 2020-03-28 18:13:24
自连接是连接的一种用法,但并不是连接的一种类型,因为他的本质是把一张表当成两张表来使用。 mysql有时在信息查询时需要进行对自身连接(自连接),所以我们需要为表定义别名。 我们举例说明,下面是商品采购表,我们需要找到采购价格比惠惠高的所有信息。 一般情况我们看到这张表我们第一时间用语句进行操作: 1 SELECT * FROM shoping WHERE price>27 可想而知,这是有多么简单,假设你并不知道数据库表详细数据或者数据量相当庞大呢?作为一个数据库管理员,我们就要用别的方式迅速找出所需要的数据。 分步查询 1 2 SELECT price FROM shopping WHERE name = '惠惠' //得出price查询结果为27 SELECT * FROM shopping WHERE price>27 我们可以获取到如下表信息: 与采用自连接的方式相比,这种方法需要对中间结果进行人工干预,显然不利于程序中的自动处理操作。 自连接方式: 1 2 3 4 5 SELECT b.* from shopping as a,shopping as b where a. name = '惠惠' and a.price<b.price order by b.id2018-03-06 获取到如下表信息:   注意点: 别名 a,b虽然名称不同,但是同一个表

单表查询与多表查询

烈酒焚心 提交于 2020-03-28 02:54:48
重要:书写顺序,执行顺序。 书写顺序:select distinct * from '表名' where '限制条件' group by '分组依据' having '过滤条件‘ order by limit 执行顺序:from  where  group by  having  order by  limit  distinct  select View Code from    #先确定是哪张表 where    #再确定是否有过滤条件 select    #最后确定要过滤出来的数据的哪些字段 select id,name from emp where id >3 and id <6; 一 、单表查询 实例数据 create table emp( id int not null unique auto_increment, name varchar(20) not null, sex enum('male','female') not null default 'male', #大部分是男的 age int(3) unsigned not null default 28, hire_date date not null, post varchar(50), post_comment varchar(100), salary double(15,2), office int,

Java中的值传递和引用传递

血红的双手。 提交于 2020-03-27 08:56:14
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 答:是值传递。Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是该对象的引用一个副本。指向同一个对象,对象的内容可以在被调用的方法中改变,但对象的引用(不是引用的副本)是永远不会改变的。 Java参数,不管是原始类型还是引用类型,传递的都是副本(有另外一种说法是传值,但是说传副本更好理解吧,传值通常是相对传址而言)。 如果参数类型是原始类型,那么传过来的就是这个参数的一个副本,也就是这个原始参数的值,这个跟之前所谈的传值是一样的。如果在函数中改变了副本的值不会改变原始的值.。 如果参数类型是引用类型,那么传过来的就是这个引用参数的副本,这个副本存放的是参数的地址。如果在函数中没有改变这个副本的地址,而是改变了地址中的值,那么在函数内的改变会影响到传入的参数。如果在函数中改变了副本的地址,如new一个,那么副本就指向了一个新的地址,此时传入的参数还是指向原来的 地址,所以不会改变参数的值。 例子: package com.demo.test; public class Employee { private String name; private double salary; public Employee(String

DB2表数据导出、导入及常用sql使用总结

别等时光非礼了梦想. 提交于 2020-03-24 18:12:56
一.DB2数据的导出: export to [path(例:D:"TABLE1.ixf)]of ixf select [字段(例: * or col1,col2,col3)] from TABLE1; export to [path(例:D:"TABLE1.del)]of del select [字段(例: * or col1,col2,col3)] from TABLE1; 在DB2中对表数据的导出,可以用export命令,导出数据为一个文本文件,例如: export to d:\table1.txt of del select id, name, age, address, note fromtesttable order by id; 可以用import命令从文本文件导入数据到表里,如: 二.DB2数据的导入: import from[path(例:D:"TABLE1.ixf)] of ixf insert into TABLE1; load from [path(例:D:"TABLE1.ixf)]of ixf insert into TABLE1; load from [path(例:D:"TABLE1.ixf)]of ixf replace into TABLE1; // 装入数据前,先删除已存在记录 load from [path(例:D:"TABLE1.ixf)]of

子查询,视图,pymysql,事务,索引

怎甘沉沦 提交于 2020-03-24 02:15:08
子查询 # 增:insert into 表 select子查询 # 删:delete from 表 条件是select子查询(表不能与delete表相同) # 查:select 字段 from 表 条件是select子查询 # 改:update 表 set 字段=值 条件是select子查询(表不能与update表相同) # 数据来源:在单表emp下 # 子查询:将一条查询sql的结果作为另一条sql的条件 # 思考:每个部门最高薪资的那个人所有信息 # 子查询的sql select dep, max(salary) from emp group by dep; # 子查询 - 查 select * from emp where (dep, salary) in (select dep, max(salary) from emp group by dep); # 将子查询转换为一张表 # 创建一个存子查询数据的一张表 create table t1(dep_name varchar(64), max_salary decimal(5,2)); # 子查询 - 增 insert into t1 select dep, max(salary) from emp group by dep; # 需求 select name, dep_name, salary from emp join