oracle中select及字符串拼接,like,||等

来源:互联网 发布:下载instagram软件 编辑:程序博客网 时间:2024/05/16 12:08

查询表结构

Desc emp;

查询所有列

Select *from emp;一般不用,对于海量数据查询的速度很慢。

Select ename ,job,mgr,sal from emp;

Set timing on/off;操作时间的开关。

例子

创建一个users表,不断复制数据一万条。

Create table users(userid number (4),username varchar2(30),password varchar2(30));

Insert into users values(1003,sdfsf,123456);

复制表内容

Insert into users (userid,username,userpassword)select *from users;

去掉重复的记录

Select distinctdeptno,job from emp;

算数表达式查询

显示每个雇员的年工资

Select sal*12 from emp;

Select sal*12 “年工资ename雇员姓名” from emp;

显示每个雇员的年工资,雇员的奖金。

算数表达式查询

显示每个雇员的年工资

Select sal*12 from emp;

Select sal*12 “年工资ename雇员姓名” from emp;

显示每个雇员的年工资,雇员的奖金。

Select sal*12+comm*13”年收入ename“员姓名comm  from emp;(会出现空值)

Oracle数据库中要是一个数据为空值的话,整个数值都会为空

算数表达式查询

显示每个雇员的年工资

Select sal*12 from emp;

Select sal*12 “年工资ename雇员姓名” from emp;

显示每个雇员的年工资,雇员的奖金。

Select sal*12+comm*13”年收入ename“员姓名comm  from emp;(会出现空值)

Oracle数据库中要是一个数据为空值的话,整个数值都会为空

如何处理null函数nvl(comm0)如果是空值就为0,否则为原始值

select sal*12+nvl(comm0)*12 "总收入", ename雇员姓名, comm "雇员奖金" from emp;

如何连接字符串(||)

Select ename ||工资为|| sal from emp;

使用where语句

查询出工资大于3000的员工

Select ename, sal from emp where sal>2000;

查出在1987-1-1以后入职的员工

select hiredate "出生年月", ename "员工姓名" from emp where hiredate>'1-1-1987';

//修改完临时生效

查询工资在2000-2500之间的员工

Select ename员工姓名sal员工工资 from emp where sal>2000 and sal<2500;

使用like语句

%  表示任意0到多个字符,_   表示任意单个字符。

查询出名字中第一个字母为S的雇员的姓名和工资

select ename"员工姓名",sal"员工工资"from emp where ename like'S%';
查出名字中第三个字母为O的雇员的姓名和工资

select ename"员工姓名",sal"员工工资"from emp where ename like'__O%';

查询多个使用where.in ();的方法

查询出雇员号为(7654778278447900

select *from emp where empno in(7654778278447900);

查询的时候使用空值的方法查询(is null

查询出表中没有上级领导的员工

select *from emp where mgr is null;