Oracle 总结

Oracle常规命令

sql 复制代码
conn 用户/密码--客户端连接的命令
show user ---显示当前登录的用户

增删改查

增

sql 复制代码
insect into 表名(列名列表) values(值列表);

删

sql 复制代码
删除符合条件数据
delete from EMP where ENAME= 'xxx';

删除所有EMP 所有数据
delete from EMP;

截断表
truncate table EMP;

注意:
当使用DELETE语句删除表数据时,不会释放表所占用的空间,如果用户确定要删除表的所有数据,那么使用截断表更快,并释放表段所占用的空间,注意,DELETE语句可回滚数据,截断表不可回滚数据

改

sql 复制代码
更新一列数据
update 表名 set 字段=值 where 字段=值;

更新多列数据
update 表名 set PRICE=PRICE*0.8, NAME='值'  where 字段=值;

使用默认值修改数据
update EMP set JOB=default where ENAME='SCOTT';

注意:
ORACLE中日期列不能直接插入字符串,需使用日期函数转换 TO_DATE(数 据,'YYYY-MM-DD'`

查

1.使用select 关键字

sql 复制代码
select 列名 from 表名;

select * from 表名 where 字段>数值;
select * from 表名 where PRICE>50;

--显示工资在2000到2500工资
select * from 表名 where 字段>=2000 AND 字段<=2500;
select * from 表明 where 字段 BETWEEN 2000 AND 2500;

2.模糊查询,使用关键字 like

sql 复制代码
%:表示任意0到多个字符  ;
_ : 表示任意单个字符

--如何显示首字母为S的员工姓名及工资
select EANAME, SAL from 表名 where EANAME LIKE 'S%' ;

--如何显示第三个字母为O的所有员工姓名及工资
select EANAME, SAL from 表名 where EANAME LIKE '_ _O%';

3.对查询数据排序,使用关键字 order by

sql 复制代码
ASC:正序
DESC:倒序
格式:
select emame,sal from emp where sal is not null order by sal desc;

4.分组查询,使用关键字group by

sql 复制代码
查询每个部门员工的数量
select deptno, count(*) 数量 from emp group by deptno;

5.对分组之后的结果进行查询,使用关键字having

sql 复制代码
查询平均工资大于两千的部门及部门人数
select DEPTNO,count(*) 数量 from EMP group by DEPTNO having AVG(SAL)>2000;

基础表查询

01.查询emp表的所有数据

sql 复制代码
select * from emp;

02.查询emp表中ename,job,sal几列,其中sal列在结果集中以别名salary查询

sql 复制代码
select ename,job,sal salary from emp;

03.查询emp表中deptno,ename,年工资,并将年工资命名别名total salary

sql 复制代码
select deptno,ename,nvl(sal,0)*12 as "total salary" from emp;

04.查看emp表的结构

sql 复制代码
desc emp;

05.查询emp表中雇员号,雇员的名字,工作岗位,入职日期

sql 复制代码
select empno,ename,job,hiredate from emp;

06.查询员工表中部门编号,重复的部门编号只查询一次

sql 复制代码
select distinct deptno as "部门编号" from emp;

07.在结果集中雇员名和工作岗位相连用"空格逗号空格"分隔,并将列头查询为Employee and Title。

sql 复制代码
select ename || ' , ' || job as "Employee and Title" from emp;

08 查询职位(JOB)为'PRESIDENT'的员工的工资

sql 复制代码
select sal from emp where job = 'PRESIDENT';

09 查询佣金(COMM)为0 或为NULL 的员工信息

sql 复制代码
select * from emp where comm = 0 or comm is null;

10 查询入职日期在1981-5-1 到1981-12-31 之间的所有员工信息

sql 复制代码
select * from emp where hiredate between
to_date('1981/05/01','yyyy/mm/DD') and
to_date('1981/12/31','yyyy/mm/DD');

11 显示10 号部门的所有经理('MANAGER')和20 号部门的所有职员('CLERK')的详细信息

sql 复制代码
select * from emp where (deptno = 10 and job = 'MANAGER') or (deptno =
20 and job = 'CLERK');

12 显示姓名中没有'L'字的员工的详细信息或含有'SM'字的员工信息

sql 复制代码
select * from emp where ename not like '%L%' or ename like '%SM%';

13 显示各个部门经理('MANAGER')的工资

sql 复制代码
select sal as 工资 , deptno as 部门 from emp where job = 'MANAGER';

14 显示佣金(COMM)收入比工资(SAL)高的员工的详细信息

sql 复制代码
select * from emp where comm > sal;

15 按照入职日期由新到旧排列员工信息

sql 复制代码
select * from emp order by hiredate desc;

varchar2和char的区别:

sql 复制代码
varchar2或者varchar为可变长度的字符类型,比如varchar2(10),实际保存了5个字符abcde,剩下的5个长度的空间不会去补充空格占满整个10个长度,而是自动缩小到五个长度,所以叫可变长度的字符类型,好处为节约空间。

字符类型char,定义是要指定长度,比如char(10), 不可以变的长度的字符类型,比如保存了2个字符ab,剩下的8个长度补空格填满,浪费空间,一般用于长度比较小的字段,比如性别char(3)
保存数据男或女
相关推荐
白起那么早3 分钟前
idea 插件-把数据库的表画出来
数据库·后端·intellij idea
fengkai454521 分钟前
十一、MySQL 第 1‑3 章
运维·数据库·mysql
Lancker29 分钟前
记一次 Druid 连接 MySQL 报 Communications link failure 的排查过程
数据库·mysql·adb
adinnet20261 小时前
多轮对话与上下文压缩:追问时模型怎么记住前面说的
数据库·microsoft
JosieBook1 小时前
【数据库】MySQL 实战精通系列 · 第11篇:Redis 缓存与 MySQL 一致性实战
数据库·mysql·缓存
Leo.yuan2 小时前
2026企业级数据集成平台市场报告:国内外厂商格局与技术路线
数据库·oracle
guo_wen_qiang2 小时前
云服务器mysql分库分表环境搭建(2库4表)
数据库·mysql·docker
jianpeng的工程笔记2 小时前
EL8 / EL9 安装 Slurm 26.05.4:主备控制器、MariaDB 记账与作业验收
linux·数据库·mariadb·高性能计算·slurm
SelectDB技术团队2 小时前
ClickHouse 存日志的能力边界:并发、检索与 trace 回放的实测对照
数据结构·数据库·clickhouse·日志分析·apache doris·日志存储
倔强的小石头_3 小时前
Ubuntu部署Prometheus与Alertmanager:systemd配置、告警对接及cpolar远程访问
数据库·ubuntu·prometheus