查询表结构
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 distinct deptno,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(comm,0)如果是空值就为0,否则为原始值
select sal*12+nvl(comm,0)*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 ();的方法
查询出雇员号为(7654,7782,7844,7900)
select *from emp where empno in(7654,7782,7844,7900);
查询的时候使用空值的方法查询(is null)
查询出表中没有上级领导的员工
select *from emp where mgr is null;