当前位置: 首页 > news >正文

ORACLE基本DML操作

1 插入记录

  • 创建测试表
create table temp(name varchar2(5),age number(3)
);

1.1 添加数据

  • 语法:insert into 表名(字段1,字段2…) values(值1,值2…);
  • 示例:
--所有字段插入数据,字段可以省略
insert into temp values('张三',30);
insert into temp(name,age) values('李四',35);
--部分字段插入数据
insert into temp(name) values('王五');
insert into temp(age) values(42);
--插入空值
insert into temp(name,age) values('赵六',null);

1.2 数据持久化

数据如果没有持久化,只能自己看到,且不会保存

commit;

2 删除记录

  • 语法:delete from 表名 where 字段名=值;
  • 示例:
--删除指定行
delete from temp where name='张三';
--删除指定字段空值的行
delete from temp where name is null;
--删除指定字段非空值的行
delete from temp where age is not null;
--删除表中所有记录,效率不高,可以回滚(恢复数据)
delete from temp;
--删除表中所有记录,效率更高,但不可以回滚(无法恢复数据)
truncate table temp;
--删除表结构
drop table temp;

3 修改记录

  • 语法:update 表名 set 字段名=值 where 字段名=值;
  • 示例:
--修改单个字段
update temp set name='钱三' where name='张三';
--修改多个字段
update temp set name='钱三',age=43 where name='钱三';
--不写条件,修改所有数据
update temp set age=53;
--使用表达式
update temp set age=53+5;
--逻辑删除
alter table temp add(dflag number(1));
--dflag字段的值为0表示逻辑删除,1表示没删除
update temp set dflag=1;
update temp set dflag=0 where name='李四';

4 简单查询

  • 复制表:只会复制表的结构和数据,不会复制约束
create table dept as select * from scott.dept;
alter table dept add primary key(deptno);
create table emp as select * from scott.emp;
alter table emp add primary key(empno);
create table salgrade as select * from scott.salgrade;

4.1 列查询

  • 查询所有列
--*会自动解析为所有列,默认按主键进行升序排序
select * from emp;
  • 查询指定列
select empno,ename,sal from emp;
  • 消除重复行
select distinct job from emp;

4.2 别名

4.2.1 字段别名

--as和双引号可以省略
select empno as "工号",ename as 姓名,sal*2 工资 from emp;

4.2.2 表别名

select e.empno,e.ename,e.job,e.mgr,e.hiredate,e.sal,e.comm,e.deptno from emp e;

4.3 算数表达式

select 1+1 from dual;
select empno,ename,sal*12 from emp;

4.4 ||操作符

在oracle中用于字符串和字段的拼接

select empno||'.'||ename from emp;

4.5 条件查询

WHERE 子句用于条件的查询

--查询名字叫做SMITH的员工信息
select * from emp where ename='SMITH的信息';

4.6 比较运算符

=:相等
!=和<>:不等于
>[=]:大于[等于]
<[=]:小于[等于]

select * from emp where deptno=20;
select * from emp where deptno!=20;
select * from emp where deptno<>20;
select * from emp where sal<1500;
select * from emp where sal>=3000;
--值为空使用is
select * from emp where comm is null;
select * from emp where comm is not null;

4.7 逻辑运算符

not:取反
and:并且
or:或
between a and b:在a和b之间

select * from emp where not sal>=3000;
select * from emp where deptno=20 and sal>=3000;
select * from emp where sal<1500 or sal>=3000;
select * from emp where sal between 1500 and 3000;

4.8 in操作符

select * from emp where empno=7369 or empno=7521;
select * from emp where empno in (7369,7521);
select * from emp where empno not in (7369,7521);

4.9 like操作符

用于模糊查询

%:表示n个字符
_:表示单个字符

select * from emp where ename like 'S%';
select * from emp where ename like '%A%';
select * from emp where ename like '__A%';
select * from emp where ename like '___D';

4.10 交互式操作符

&可以代替变量,要求用户输入

--注意区分大小写
select * from emp where ename='&ename';
select * from emp where empno='&empno';

4.11 排序

使用order by 子句进行排序

asc:升序排序,默认的排序方式,可以不写
desc:降序排序

select * from emp order by sal;
select * from emp order by sal desc;
select * from emp order by deptno desc,sal asc;
--对于查询为较为复杂的算术表达式,可使用别名排序
select ename,sal*12 年薪 from emp order by "年薪";
http://www.dtcms.com/a/308472.html

相关文章:

  • ShimetaPi M4-R1:国产高性能嵌入式平台的异构计算架构与OpenHarmony生态实践
  • 如何在 Ubuntu 24.04 或 22.04 LTS 上安装 OpenShot 视频编辑器
  • 【支持Ubuntu22】Ambari3.0.0+Bigtop3.2.0——Step6—本地apt源
  • MELF电阻的原理,特性和应用
  • 视觉图像处理中级篇 [2]—— 外观检查 / 伤痕模式的原理与优化设置方法
  • 从入门到精通:Git全面指南(下)
  • 【01】大恒相机SDK C++开发 —— 初始化相机,采集第一帧图像、回调采集、关闭相机
  • R语言空间分析、模拟预测与可视化
  • 垂直元素均匀分布
  • 【第四章自定义编辑器窗口_Game窗口中的GUI_运行时控制台窗口(10/12)】
  • 深度解析领域特定语言(DSL)第七章:语法分析器组合子 - 用乐高思维构建解析器
  • go2sky的封装及使用
  • LeetCode 刷题【23. 合并 K 个升序链表】
  • Android屏幕适配:从dp到px的转换与今日头条适配方案详解
  • 嵌入式第十六课!!!结构体与共用体
  • 安卓 Activity 四种启动模式(Launch Mode)的核心知识点整理
  • Linux 进程调度管理
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘plotly’问题
  • SAM附录详解
  • 乱删文件,电脑不能开机,怎么办
  • 电子电路原理学习笔记---第5章特殊用途二极管---第1天
  • XSS跨站脚本攻击详解
  • 从0到1学PHP(九):PHP 会话管理:跟踪用户状态
  • opencv解迷宫
  • Nuitka:将源码编译为 `.pyd`
  • vue+elementui实现问卷调查配置可单选、多选、解答
  • vector的增删改查模拟实现(简单版)【C++】
  • 【ProtoBuf】ProtoBuf安装
  • 力扣面试150(45/150)
  • 【C语言】深度剖析指针(三):回调机制、通用排序与数组指针逻辑