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)
保存数据男或女
相关推荐
美林数据Tempodata1 小时前
大模型驱动数据分析革新:美林数据智能问数解决方案破局传统 BI 痛点
数据库·人工智能·数据分析·大模型·智能问数
野槐2 小时前
node.js连接mysql写接口(一)
数据库·mysql
Zzzone6832 小时前
PostgreSQL日常维护
数据库·postgresql
chxii2 小时前
1.13使用 Node.js 操作 SQLite
数据库·sqlite·node.js
冰刀画的圈2 小时前
修改Oracle编码
数据库·oracle
这个胖子不太裤2 小时前
Django(自用)
数据库·django·sqlite
麻辣清汤2 小时前
MySQL 索引类型及其必要性与优点
数据库·mysql
2501_915374354 小时前
Neo4j 图数据库安装教程(2024最新版)—— Windows / Linux / macOS 全平台指南
数据库·windows·neo4j
it-搬运工4 小时前
3.图数据Neo4j - CQL的使用
数据库·neo4j
-借我杀死庸碌的情怀-5 小时前
navicat可视化页面直接修改数据库密码——mysql、postgresql、mangodb等
数据库·mysql·postgresql