Oracle_第一弹

来源:互联网 发布:qt gui编程 编辑:程序博客网 时间:2024/06/07 12:56

 点击下载1-4 word版本

目 录

 

 

oracle预先准备 (安装)    1

内置用户    1

应用内置用户    1

内置表    2

一些基本查询    2

去重复查询    2

四则运算查询    2

字段 字符串连接    2

条件查询    2

查询不为空的字段    3

包含查询 between and 包含临界点    3

参数条件查询 等于多条件    3

排序    3

模糊查询    3

单行函数    3

虚表,伪表    4

数值函数    4

日期函数    4

转换函数    4

多行函数 (聚合函数)    5

练习    5

基本查询    5

一些特殊的    5

聚合函数    5

单行函数    6

虚表 dual    6

数值函数    6

转换函数    6

 

oracle_day1 安装_基本查询

oracle预先准备 (安装)

安装xp虚拟系统

安装oracle服务

在本机安装oracle的官方客户端

在本机安装PLSQL Developer

内置用户

  • 应用内置用户

    切换到数据库的内置账户

    用system账户登录后 解锁scott内置用户

    -------解锁 scott 用户---

    alter user Scott account unlock;

    -----重置密码-----

    alter    user scott identified 密码;

  • 内置表

    在内置的scott用户中有以下几张表

    • dept 部门表

      --deptno 部门编号

      --dname 部门名称

      --loc 部门城市

    • emp 员工表

      ---empno 员工编号

      --ename 员工姓名

      --job      职位

      ---mgr 领导编号

      ---hiredate 入职时间

      --sal 工资

      ---comm 年终奖

      ---deptno 部门编号

     

    • salgrade 工资级别表

      --grade 工资级别

      --losal 最低范围

      --hisal 最高范围

一些基本查询

  • 去重复查询

selectdistinctjob from emp

  • 四则运算查询

select e.sal*14 from emp e;

  • 字段 字符串连接

select e.empno ||'^_^' || e.ename from emp e

  • 条件查询

select *from emp e where e.empno=7369;

  • 查询不为空的字段

select * from emp e where e.comm is not null;

---null 很特殊 null 跟谁运算 谁就变成null

select e.sal*14 + nvl(e.comm,0) from emp e;

查询条件为空 并且薪资不大于1500

select *from emp e where e.comm isnullandnot(e.sal>1500);

  • 包含查询 between and 包含临界点

select *from emp e where e.sal between1500and3000

  • 参数条件查询 等于多条件

select * from emp e where e.ename in('SMITH','MARTIN','SCOTT')

不等于

select *from emp e where e.empno<>7369;

select *from emp e where e.empno!=7369;

  • 排序

select *from emp e orderby e.saldesc

---nulls first 排序时 把null 值排到第一位

select *from emp e orderby e.commnullsfirst;

  • 模糊查询

select *from emp e where e.ename like'%M%';

--查询员工姓名中有_的员工

select *from emp e where e.ename like'%b_%'escape'b' ;

  • 单行函数

查询字段多长

select e.ename,length(e.ename) from emp e;

把字段都变成小写

selectlower(e.ename)from emp e;

把字段都变成大写

selectupper(e.ename)from emp e;    

连接两个字段

selectconcat(e.empno,e.ename)from emp e;

  • 虚表,伪表

select lower('SDFG') from dual;

select trim(' aa a '),' aaa ' from dual;

  • 数值函数

round 四舍五入

select round(33.1415926,4) from dual;

trunc 取整

selecttrunc(33.1415926,4)from dual;

mod 取余数

selectmod(4,3)from dual;

  • 日期函数

获取当前的日期

select sysdate from dual;

获取明天的这个时候的日期

select sysdate+1 from dual;

获取下两个月这个时候

select add_months(sysdate,2) from dual;

查询入职时到现在的时间

select round(months_between(sysdate,e.hiredate)) from emp e;

  • 转换函数

数字转换成字符串

select123 ,to_char(123)from dual;

字符串转化成数字

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

日期转换成字符串

select to_char(sysdate,'yyyy-MM-dd hh:mi:ss')from dual;

字符串转换成日期

select to_date('2017-05-04 11:41:07','yyyy-MM-dd hh:mi:ss')from dual;

  • 多行函数 (聚合函数)

count()    总数

sum()    和

max()    最大

min() 最小

avg()    平均

 

-- 练习

  • --基本查询

--*查询所有

select *from emp

--distinct去重复查询

selectdistinct empnofrom emp

--字段四则运算

select sal *14from emp

--where条件查询

select *from emp e where e.empno=7369

--between and包含查询包含临界点

select *from emp e where e.sal between1500and5000

--in多参数查询

select *from emp e where e.sal in (1500 ,5000)

-- order by排序

select *from emp e orderby e.commdesc

--排序把null值排在前边

    select * from emp e orderby e.commdescnullsfirst

--排序把null值放在后边

    select * from emp e orderby e.commdescnullslast

--模糊查询

select *from emp e where e.ename like'%M%'

  • --一些特殊的

--字段字符串连接

select e.ename||'^,^'||e.salfrom emp e

--查询字段不为空

select *from emp where comm isnotnull

--null和谁计算谁就空

select e.sal+nullfrom emp e

--nvlnull变成指定的

selectnvl(e.comm,0)from emp e

  • -- 聚合函数

--count总数

selectcount(*)from emp

--sum求和

selectsum(sal)from emp

--avg平均数

selectavg(sal)from emp

--max最大值

selectmax(sal)from emp

--min最小值

selectmin(sal)from emp

  • --单行函数

--length查询字段的长度

selectlength(e.ename)from emp e

--lower把字段都变成小写

selectlower(e.ename)from emp e

--upper把字段都变成大写

selectupper(e.ename)from emp e

--concat连接两个字段

selectconcat(e.ename,e.empno)from emp e

  • --虚表 dual

selecttrim('aa') ttfrom dual

 

  • --数值函数

--round四舍五入

selectround('123.123123')from dual

--trunc取整

selecttrunc(123.123123)from dual

--mod取余数

selectmod(3,1)from dual

--日期函数

--sysdate获得当前的日期

selectsysdatefrom dual

--sysdate+1获得明天这个时候的日期

selectsysdate+1from dual

--add_months(sysdate,2)获得后两个月这个时候的日期

select add_months(sysdate,2)from dual

--months_between(sysdate+30,sysdate)获取这个时间段间隔几个月

select months_between(sysdate,sysdate+111)from dual

  • --转换函数

--数字转换成字符串

select123,to_char(123)from dual

--字符串转换成数字

select'123',to_number('123')from dual

--日期转换成字符串

select to_char(sysdate ,'yyyy-MM-dd')from dual

--字符串转换成日期

select to_date('2017-05-04 11:41:07','yyyy-MM-dd hh:mi:ss')from dual

原创粉丝点击