Orcle基本语句(三)
COMMIT;
--查询表内所有内容
SELECT * FROM stu_info;
--查询部分列,并赋予别名
SELECT stu_id 学生标号,stu_name 学生姓名 FROM stu_info;
--以下两种方式可在图形化界面修改数据,在显示界面要解锁
--1、建议使用方法,可以多人同时使用
SELECT ROWID,stu_id,stu_name FROM stu_info;
--2、不建议使用,因为会占用表,其他人将不能使用
SELECT * FROM stu_info FOR UPDATE;
--合并语句的语法
merge into 副表
using 主表 on(主表.主键=副表.主键)
when matched then
更新语句
when not matched then
插入操作
--查询job列不重复的内容
SELECT DISTINCT job FROM emp;
--连接符||的使用
SELECT '姓名是: ' || ename || '.工作是:' || job as 个人信息 FROM emp;
--在查询语句中,添加新列
SELECT ename 姓名,sal 薪水,sal * 1.25 as 涨幅后的薪水 FROM emp;
--带有条件的查询语句
SELECT * FROM emp WHERE sal < 2000; --查询工资大于1500而且有奖金的雇员信息
SELECT *
FROM emp
WHERE sal > 1500
AND comm IS NOT NULL;
--查询工资不大于1500而且有奖金的雇员信息
--方法一:
SELECT *
FROM emp
WHERE sal <= 1500
AND comm IS NOT NULL AND comm != 0;
--方法二:
SELECT *
FROM emp
WHERE not(sal > 1500)
AND comm IS NOT NULL AND comm <> 0;
--查询工资大于1500或者能有奖金的雇员信息
SELECT *
FROM emp
WHERE sal > 1500
OR comm IS NOT NULL; --查询工资大于1500且小于3000的员工的信息
--方法一:用逻辑运算符
SELECT * FROM emp WHERE sal < 3000 AND sal > 1500;
--方法二:用BETWEEN...AND
SELECT * FROM emp WHERE sal BETWEEN 1500 AND 3000; SELECT * FROM EMP;
--查询入职时间在1980/12/1至1981/6/1之间的员工信息
--方法一:用逻辑运算符
SELECT * FROM emp WHERE hiredate < to_date('1981-6-1','yyyy-mm-dd') AND hiredate > to_date('1980-12-1','yyyy-mm-dd');
--方法二:用BETWEEN...AND
SELECT * FROM emp WHERE hiredate BETWEEN to_date('1980-12-1','yyyy-mm-dd') AND to_date('1981-6-1','yyyy-mm-dd'); --IN语句的使用
SELECT * FROM emp WHERE empno NOT IN (7369,7469,7521);
--LIKE 语句的使用(模糊查询) %匹配0个或多个字符,_匹配一个字符
SELECT * FROM emp WHERE ename LIKE '%L%';
SELECT * FROM emp WHERE ename LIKE '_L%';
--查询语句如无必要,要避免使用*
--查询部门位置等于DALLAS的员工信息
SELECT * FROM DEPT;
SELECT * FROM emp WHERE deptno = 20;
SELECT e.*,d.* FROM emp e,dept d WHERE e.deptno = d.deptno and d.deptno = 20;
--通过子查询实现查询部门位置等于DALLAS的员工信息
SELECT * FROM emp WHERE deptno = (SELECT deptno FROM dept WHERE loc = 'DALLAS');
--exists(类似in操作,在数据量较大时,性能优于in)
SELECT * FROM emp WHERE EXISTS (SELECT deptno FROM dept WHERE emp.deptno = dept.deptno AND loc = 'DALLAS');
--对查询结果进行排序
SELECT * FROM emp;
SELECT * FROM emp ORDER BY empno DESC, ename DESC;
--员工薪资涨幅25%后按照涨幅后的薪资降序排列
SELECT e.*,e.sal*1.25 AS 涨幅后的薪水 FROM emp e ORDER BY 涨幅后的薪水 DESC;
--按照索引排序(列的顺序)
SELECT * FROM EMP ORDER BY 2;
--查询本机时间
SELECT sysdate FROM dual;
--将enmae的内容改为小写,以及首字母大写
SELECT ename,LOWER(ename) lowerEname,INITCAP(ename) initcapEname FROM emp;
--TRIM 函数的使用(删除字符串中的某个字符,只能有一个字符)
SELECT ename,TRIM('A' FROM ename) TrimEname FROM emp;
--CONCAT函数的使用,连接两个字符串,只能是两个
SELECT ename,job,CONCAT(ename,job) AS CAT FROM emp;
--SUBSTR函数的使用,截取指定开始位置和指定长度的字符串
SELECT ename,job,SUBSTR(ename,2,3) AS SUB FROM emp;
--LENGTH函数,返回字符串的长度
SELECT ename,job,LENGTH(ename) AS LEN1 FROM emp;
--INSTR函数,返回特定字符串在指定字符串的索引位置,若没有出现返回0
SELECT ename,job,INSTR(ename,'AL') AS INS FROM emp; --得到30号部门并且薪资降幅10%后无小数的员工信息
SELECT e.*,TRUNC(sal*0.9) 取整降薪 FROM emp e WHERE deptno = 30; --练习
--1.查询员工工资大于800的
SELECT * FROM emp WHERE sal > 800;
--2.查询1981/6/9之前入职的员工信息
SELECT * FROM emp WHERE hiredate < to_date('1981-6-9','yyyy-mm-dd');
--3.查询奖金为空的员工信息(包含列:姓名,薪资,奖金)
SELECT ename,sal,comm FROM emp WHERE comm IS NULL;
--4.查询奖金不为空的员工信息(包含列:姓名,职位,薪资,奖金)
SELECT ename,job,sal,comm FROM emp WHERE comm IS NOT NULL; --5.查询员工姓名为WARD
SELECT * FROM emp WHERE ename = 'WARD'; --6.查询员工薪资为1200并且职位是SALESMAN
SELECT * FROM emp;
SELECT * FROM emp WHERE sal = 1200 AND job = 'SALESMAN'; --7.查询1981/6/9到1981/10/9入职的员工信息(包含列:姓名,职位,薪资,奖金,入职日期)
SELECT ename,job,sal,comm,hiredate FROM emp WHERE hiredate >= to_date('1981-6-9','yyyy-mm-dd') AND hiredate <= to_date('1981-10-9','yyyy-mm-dd'); --8.查询员工薪资为1200或者职位是MANAGER
SELECT * FROM emp WHERE sal = 1200 OR job ='MANAGER'; --9.查询名字不等于WARD员工信息
SELECT * FROM emp WHERE ename <> 'WARD'; --10.查询1981/6/9到1981/10/9入职的员工信息(包含列:姓名,职位,薪资,奖金,入职日期)--使用between and
SELECT ename,job,sal,comm,hiredate FROM emp WHERE hiredate BETWEEN to_date('1981-6-9','yyyy-mm-dd') AND to_date('1981-10-9','yyyy-mm-dd'); --11.模糊查询like
SELECT * FROM emp WHERE ename LIKE '_L%'; --12.查询姓名第三个字母是R的员工信息
SELECT * FROM emp WHERE ename LIKE '__R%'; --13.查询以T开头的第四个字母为N的员工信息
SELECT * FROM emp WHERE ename LIKE 'T__N%'; --14.按照员工的部编号排序,查询出的列名:姓名,薪水
--升序
SELECT ename,sal,deptno FROM emp ORDER BY deptno;
--降序
SELECT ename,sal,deptno FROM emp ORDER BY deptno DESC; --15.查询部门编号为20的员工,并按照薪资的降序排列
SELECT * FROM emp WHERE deptno = 20 ORDER BY sal DESC; --16.将所有员工的薪资降薪23%后保留1位小数后显示出来
--部分产生小数点
SELECT e.*,TRUNC(sal*0.7745,1) as 降薪 FROM emp e;
Orcle基本语句(三)的更多相关文章
- Orcle 查询语句
首先,以超级管理员的身份登录oracle sqlplus sys/bjsxt as sysdba --然后,解除对scott用户的锁 alter user scott ac ...
- SQL分页语句三方案
方法一: SELECT TOP 页大小 * FROM table1 WHERE id NOT IN ( SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id ...
- T-SQL查询语句(三):多表查询
SQL查询语句<三>:多表查询 (也叫连接查询,此处为基于两个表的连接查询)如果一个查询需要对多个表进行操作就称为连接查询,连接查询的结果集或结果称为表之间的连接.连接查询实际上是通过各个 ...
- 数据库 数据库SQL语句三
转换函数 to_char()字符串转换日期函数 --查询大于某个日期的员工信息 select * from emp where hiredate>to_date('1980-02-12','yy ...
- Orcle基本语句(六)
-- Created on 2017/1/5 by ADMINISTRATOR DECLARE -- Local variables here i ; v_name ) := '张晓风'; v_age ...
- ORCLE基本语句(二)
select语句的基本语法: [ORDER BY < COLUMN1, COLUMN2, COLUMN3...> [ASC 或 DESC]]
- Orcle常用语句
在SQLPlus界面的操作语句: 查看\设置每行内显示的字符数:show\set linesize [linesize] 查看\设置一次显示的行数:show\set pagesize [pagesiz ...
- Orcle基本语句(一)
--创建学生信息表,约束放在所有列定义之后 CREATE TABLE stu_info( stu_id INTEGER, stu_name NVARCHAR2() NOT NULL, stu_sex ...
- Orcle基本语句(五)
--分页查询---begin --sqlserver top --mysql limit --oracle rownum(伪列),oracle中伪列(rownum,rowid) --查询工资为前五的信 ...
随机推荐
- python之元编程(元类实例)
本实例是元类实例,功能是记录该的子类的类名,并以树状结构展示子类的类名. RegisterClasses继承自type,提供的功能是在__init__接口,为类创建了childrens的集合,并类名保 ...
- 入侵本地Mac OS X的详细过程 转自https://yq.aliyun.com/articles/22459?spm=5176.100239.blogcont24250.10.CfBYE9
摘要: 本文从提升权限漏洞的一系列巧妙的方法来绕过受保护的Mac OS X.有些已经被处于底层控制,但由于它们存在着更多的认证和修补程序,我们不妨让这些提供出来,以便需要的人学习它们.虽然我不只是要利 ...
- linux 1-100的累加
[ ] 判断式.它的使用和test命令一样 [ ]的判断符,只会返回2种值.0(真) 非0(假) -gt 大于-lt 小于-eq 等于-ne 不等于-ge 大于等于-le 小于等于 while ...
- Assembler : The Basics In Reversing
Assembler : The Basics In Reversing Indeed: the basics!! This is all far from complete but covers ab ...
- C++中一个常用的句型(两个for(;;)语句连用的重要性)
在一些简单的C++编程中,经常会用到两个for(;;)语句连用的情况,这是一个常用句型,因此感觉也非常重要.下面举两个例子说明一下: 例1.用两个for(;;)语句来进行数组元素大小的排序 #incl ...
- FastDFS----recovery状态问题排查记录
FastDFS问题排查记录现象今天有人反馈,客户端部分图标时而不能显示问题定位用jemter将图片地址进行简单测试后,发现偶尔有404 NOT FOUND的情况在服务器上对八台nginx分别进行测试 ...
- jQuery中attr()、prop()、data()用法及区别
.attr(),此方法从jq1.0开始一直存在,官方文档写的作用是读/写DOM的attribute值,其实1.6之前有时候是attribute,有时候又是property..prop(),此方法jq1 ...
- 图标:适配不同分辨 的 hdpi、mdpi、ldpi 文件夹
一:不同的layout Android手机屏幕大小不一,有480×320, 640×360, 800×480.怎样才能让App自动适应不同的屏幕呢? 其实很简单,只需要在res目录下创建不同的layo ...
- [杂] 将高版本iTunes备份恢复到低版本iOS设备中
除非开发测试用设备,自用设备不要随便升iOS beta,不要随便升iOS beta,不要随便升iOS beta. 对于升级了高版本iOS的用户,默认情况下重刷低版本iOS时,iTunes不允许向低版本 ...
- 02-C#入门(循环)
记得第一次学编程的时候,就听说过一句话:“新手学习和掌握一门编程语言是很容易的,但是如果你学会了某种编程语言,再去学习新的语言,就很难掌握了”,现在深深地感受到了这方面的阻力. 其实流程控制.循环,包 ...