oracle数据库

select {distinct} * | 具体列  别名

from table

{where 条件}

{order by 排序字段1,排序字段2 asc | desc}

简单查询语句

灵活显示查询信息

select '编号是:'||empno||'的雇员,姓名是:'||ename||',工作是:'||job from emp;

使用四则运算

select ename, sal*12 income from emp;

限定查询

查询出工资大于1500的所有雇员信息

select * from emp

where sal>1500;

查询每月可以得到奖金的雇员信息

select * from emp

where comm is not null;

无奖金的雇员

select * from emp

where comm is null;

要求查询出,基本工资大于1500,同时可以领取奖金的雇员信息

select * from emp

where sal>1500 and comm is not null;

select * from emp

where sal>1500 or comm is not null;

select * from emp

where not (sal>1500 and comm is not null);

要求查询基本工资1500--3000的全部工资

select * from emp

where sal>1500 and  sal<3000;

========between min  and  max========

select * from emp

where sal between 1500 and 3000;  包括等于

要求查询出在1981年雇佣的全部雇员信息(1981-1-1,1981-12-31)

select * from emp

where hiredate between ‘1-1月 -81’ and ‘31-12月 -81’;

where hiredate like '%81%'

查询出姓名是smith的雇员信息

select * from emp

where ename='SMITH'; =====oracle区分大小写======

查询出雇员编号是7369,7499,7521的雇员的具体信息

select * from emp

where empno=7369 or empno=7499 or empno=7521;

where empno in (7369,7499,7521);

======模糊查询like========

_ : 可以匹配一个字符        % :可以匹配多个字符

select * from emp

where ename like '_M%';

where ename like '%M%';

=========order by子句===========<排序肯定是放在整个sql语句的最后执行>

工资低到高排序

select * from emp order by sal;  //默认低到高

工资由高到底排序

select * from emp

order by sal desc;

查询10个部门的所有雇员信息,工资由高到低排序,工资相等则按雇员日期由早到晚排序

select * from emp

where deptno=10

order by sal desc,hiredate asc;

==================================================================

¥¥¥¥¥¥¥¥¥¥单行函数¥¥¥¥¥¥¥¥¥¥¥

==================================================================

、、、、、、数据库中最大的区别就是函数的支持上不同、、、、、、

字符函数: 接受字符输入并且返回字符/数值

==将小写字母变为大写字母==<upper()>

select upper('smith') from dual;

==将字符串变为小写字母表示==<lower()>

select lower('HELLO, WORLD') from dual;

==将每个单词首写字母大写,其他小写==<initcap()>

select initcap('HELLO,WORLD') from dual;

==连接操作==  ||  和concat()函数

select concat('hello ','world') from dual;

==字符串截取 substr()---字符串长度length()--字符串替换replace()==

----substr()截取点从0或者1的截取效果一样,较智能-----

select substr('hello',1,3)  截取字符串,

length('hello')  字符串长度,

replace('hello','l','x')  字符串替换

from dual;

===显示雇员的姓名以及姓名的后三个字符===

select ename, substr(ename,length(ename)-2)) from emp;

select ename, substr(ename,-3,3) from  emp;

数值函数: 接受数值输入并且返回数值

四舍五入: round()

select round(789.536) from dual;  ====>789

select round(789.536,2) from dual; ====>789.54

select round(789.536,-2) from dual;=====>800

截断小数位:trunc()

select trunc(789.536) from dual; =====>789

select trunc(789.536,2) from dual;

取余 mod()

select mod(10,3) from dual;

==================================================================

^^^^^^^^^^^^^^^^^日期函数: 对日期型数据进行操作^^^^^^^^^^^^^^^^^^^^^^^

==================================================================

日期 + / - 数字 = 日期        日期 - 日期 = 天数

==显示部门10雇员进入公司的周数==

当前日期 ===>可使用sysdate()函数

当前日期-雇佣日期 =天数 / 7 = 周数

select empno,ename,round((sysdate-hiredate)/7) from emp;

===求出给定日期范围的月数months_between()====

select empno,ename,round(months_between(sysdate,hiredate)) from emp;

=======在指定日期加上指定的月数,求之后的日期add_months()  ========

select add_months(sysdate,4) from dual;

======= 下一月的今天是哪个日期next_day() ========

select next_day(sysdate,'星期一') from dual;

======= 求出给定日期的最后一天last_day() ========

select last_day(sysdate) from dual;

|===========================================================================|

|*************转换函数: 从一种数据类型转换成另一种数据类型*************************|

|===========================================================================|

to_char: 转换成字符串

to_number: 转换成数字

to_date: 转换成日期

-----查询所有雇员的雇员编号,姓名,雇用日期----------

select empno,ename,to_char(hiredate,'yyyy') year,

to_char(hiredate,'mm') months,

to_char(hiredate,'dd') day

from emp;

select empno,ename,to_char(sal,'$99,999') from emp;

select empno,ename,to_char(sal,'L99,999') from emp;

select to_number('123')+to_number('123') from dual;

select to_date('2016-02-25','yyyy-mm-dd') from dual;

|===========================================================================|

|************************通用函数: NVL函数,DECODE函数*************************|

|===========================================================================|

==求出每个雇员的年薪==    nvl函数=将指定的null值变为指定的内容

select empno,ename,nvl(comm,0),(sal+nvl(comm,0))*12 income from emp;

====验证decode函数,类似于if-else语句  ====

select decode(1,1,'内容=1',2,'内容=2',3,'内容=3') from dual;

总结:

1,oracle的主要用户:

超级管理员:sys/manager

普通管理员:system/change_on_install

普通用户:scott/tiger

2,sqlplus的一些常用命令:

set linesize 300

set pagesize 30

ed a    /  @a

conn sys/manager as sysdba

3,sql基础语法的格式

4,单行函数,decode函数最重要!

Oracle中sql的基本使用的更多相关文章

  1. oracle中sql语句的优化

    oracle中sql语句的优化 一.执行顺序及优化细则 1.表名顺序优化 (1) 基础表放下面,当两表进行关联时数据量少的表的表名放右边表或视图: Student_info   (30000条数据)D ...

  2. Oracle中SQL语句分类

    Oracle中SQL语句分类如下:1.DML语句 insert/delete/update/select/merge/explan plan/lock table2.DDL语句 create/atlt ...

  3. 转:Oracle中SQL语句执行过程中

    Oracle中SQL语句执行过程中,Oracle内部解析原理如下: 1.当一用户第一次提交一个SQL表达式时,Oracle会将这SQL进行Hard parse,这过程有点像程序编译,检查语法.表名.字 ...

  4. oracle 中SQL 语句开发语法 SELECT INTO含义

    oracle 中SQL 语句开发语法 SELECT INTO含义 在ORACLE中SELECT INTO是如何使用的,什么意思?和SQL SERVER的不一样?   和sqlserver的不一样sql ...

  5. 跟踪oracle中sql语句运行过程及相关知识拓展

    select * from v$sqlarea; select * from v$sqlarea where first_load_time>'2010-11-27/09:30:00'; 这种方 ...

  6. oracle中SQL根据生日日期查询年龄的方法

    方法:SELECT Trunc(MONTHS_BETWEEN(SYSDATE,BIRTH_DATE)/12) FROM 某表 Trunc函数在这里对带有小数位数的数字取整数部分: SYSDATE为or ...

  7. oracle中sql查询语句的执行顺序

    查询语句的处理过程主要包含3个阶段:编译.执行.提取数据(sql查询语句的处理主要是由用户进程和服务器进程完成的,其他进程辅助配合) 一.编译parse 在进行编译时服务器进程会将sql语句的正文放入 ...

  8. Oracle中SQL调优(SQL TUNING)之最权威获取SQL执行计划大全

    该文档为根据相关资料整理.总结而成,主要讲解Oracle数据库中,获取SQL语句执行计划的最权威.最正确的方法.步骤,此外,还详细说明了每种方法中可选项的意义及使用方法,以方便大家和自己日常工作中查阅 ...

  9. Oracle 中sql文件的导入导出

    导出 一般导入的时候我用的是命令行 imp c##zs/@orcl fromuser=c##zs touser=c##zs file=D:\java\.dmp ignore=y c##zs 是创建的用 ...

随机推荐

  1. MATLAB axes

    本帖由MATLAB技术论坛(http://www.matlabsky.com)原创,更多精彩内容参见http://www.matlabsky.com axes ★★★★★ 功能 创建坐标系图形对象 语 ...

  2. SharePoint 2013 Nintex Workflow 工作流帮助(八)

    博客地址 http://blog.csdn.net/foxdave 工作流动作 15. Complete Workflow Task(User interaction分组) 此工作流动作将完成任何进行 ...

  3. Linux内核-模块编译和安装

    我安装Ubuntu的时候是没有安装源码的,在没有安装源码前 /usr/src/ 目录下是只有两个包含内核的头文件的文件夹的: 我的内核版本是: 所以接下来就是先安装内核源码: 执行后,/usr/src ...

  4. 主线程中一定不能放耗时操作,必须要开子线程,比如下载文件,不然会不让你拿到输入流--报错显示android.os.NetworkOnMainThreadException

    1.必须要开子线程来操作耗时操作,android.os.NetworkOnMainThreadException new Thread(new Runnable() { @Override publi ...

  5. hdu 2075

    PS:水得不能再水..刚开始还以为是大数..要用到快速幂...谁知道想太多...就普通int型.. 代码: #include "stdio.h" int main(){ int a ...

  6. 外部表与partition

    在建立普通表的时候,如果数据是有分区的,在ADD DATA的时候需要指明分区,比方下面的例子: user表,包含 id bigint,name string,然后按照时间(date)来进行分区,路径存 ...

  7. 技术分享:逆向海盗船k95机械键盘

    引文 在几年前我买了一个海盗船 K95 Vengeance机械键盘,键盘有上有背光功能,于是我在考虑是不是可以修改一下.但作者表示购买来的键盘上面没有很多的资料可供利用,需要注意的是,新版的K95与旧 ...

  8. Unity3D入门(一):环境搭建

    1.Unity3D 目前最新正式版本是4.2.1f  官网下载,以前的版本安装时候需要序列号激活,新版本4.2.1f 不需要,完全免费,但发布的时候需要许可证 2.要学习的同学,下载频道可以找到破解补 ...

  9. VBS_DO...Loop

    循环用于重复执行一组语句.循环可分为三类:一类在条件变为 False 之前重复执行语句,一类在条件变为 True 之前重复执行语句,另一类按照指定的次数重复执行语句. 在 VBScript 中可使用下 ...

  10. iOS 微信 音频 视频自动播放

    iOS 微信 音频 视频自动播放 http://www.w3ctech.com/topic/1165