欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Oracle 表-初步涉水不深(第一天)

程序员文章站 2022-04-11 08:38:39
oracle 关系型数据库 注释:面对大型数据处理,市场占有率40%多(但是目前正往分布式转换) 故事:本来一台大型计算机才能处理的数据,美国科学家用100台家用电脑连接,成功处理了数据。。 tables 表格 (emp:员工管理;dept:部门;salgrade: 工资等级) 注释 单行注释:-- ......

oracle 关系型数据库

注释:面对大型数据处理,市场占有率40%多(但是目前正往分布式转换)

故事:本来一台大型计算机才能处理的数据,美国科学家用100台家用电脑连接,成功处理了数据。。

tables 表格

(emp:员工管理;dept:部门;salgrade: 工资等级)

Oracle 表-初步涉水不深(第一天)

注释

单行注释:-- 标题

多行注释:/*内容 */

Oracle 表-初步涉水不深(第一天)

语句

--------------1.起名方式:

1空格+name2 as+名字  2.1as + " name"

select empno ,ename,hiredate 入职年 from emp
select empno ,ename,hiredate as 入职年1y from emp
select empno ,ename,hiredate as "year" from emp

--------------2.列的连接 

select empno||'是谁的'||ename,hiredate 入职年 from emp

--------------3.distinct去重查询--where过滤查询 

练习:--查询工作是经理的人;--查询工资大于3000的人

select ename from emp where job='manager'

select * from emp where sal>3000

---------------4.多条件and,or, <>连接

select * from emp where deptno=10 and job='manager'

select * from emp where deptno=10 or job='manager'

select * from emp where deptno<>10 

---------------5. ....之间 :between and;--or or;--job in

select * from emp where deptno between 10 and 20

select * from emp where deptno =10 or deptno =20 or deptno =30

select * from emp where job in( 'manager','analyst')

-- ------------6.内容是否为空,is null ; is not null

select * from emp where comm is  null      --jian奖金是否为空

--------------  7.排序 order by lie desc 降序 asc

--工资从大到小
select * from emp order by sal desc
--入职时间
select * from emp order by hiredate asc
--部门升序,工资降序
select * from emp order by deptno asc ,sal desc
--以年新
select ename,sal*12 from emp order by sal *12 desc

************综合练习标准写法

--练习: 查询一下deptno20 ;sal>2000 ; hiredate
select
ename 名字 ,
empno 编号,
sal 工资,
hiredate 入职年
from
emp
where deptno=20
and sal>2000
order by
hiredate
asc

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

--------------1.模糊查询  like 和 not like :

select ename from emp where ename like '%s%'

select * from emp where ename not like '%s%'

------查询名字或者工作带有s的
select * from emp where ename like '%s%' or job like '%s%'
select * from emp where ename || job like '%s%'

--------------2.字符函数,大小型转换

select lower (ename) from emp
select upper (ename) from emp

 

--首字母大写
select initcap (ename)from emp
--查名字中含有s的(包括大小写)

--------------字符串的拼接

select concat(concat (ename,deptno),hiredate)from emp
------------求长度
select ename ,length(ename) from emp
select ename from emp where length(ename)=5
--substr(列,起始位置,截取长度)
--substr(列,起始位置)
select ename,substr(ename,2 ,2) from emp
select ename,substr(ename,2) from emp
----------------截取后四位
select ename,substr(ename,-4) from emp
--------------dual 伪表
select substr('18342214598',1,3 ) ||'****'||substr('18342214598',-4 ) from dual

--------------replace 替换(
--名字中有a的替换成b
--准备对象,a替换成b
select replace (ename ,'a','b') from emp
--脱敏
select replace ('18342214598',substr('18342214598',4,4),'****') from dual
--查找名字中没有s的人
select * from emp where ename not like '%s%'
select * from emp where instr (ename,'s') =0 --0没有s =1 表示以s开头
------------------trim 去首尾字母
select ename ,trim ('s' from ename) from emp
--左右填充
select ename ,sal,lpad(sal,6,'0') from emp
select ename,sal, rpad(sal,6,'a') from emp