操纵数据(DML)
数据操纵语言:当添加、更新或者删除数据库中的数据时需要使用 DML 语句。DML依据的一个集合构成了一个被称为事务的逻辑单元。
当完成下面操作时,DML 语句被执行:

– 添加新行到表中
– 修改表中的行
– 删除表中的行

1 添加一个新行到表中
1.1INSERT 语句语法
用该语法一次只能插入一行
1.2 指定列添加
1.2.1 示例
向 departments 表中添加一条数据。 Department_Id=280
Department_name = Teaching
Manager_id=180
Location_id =2000

insert into departments(department_id,department_name,manager_id,loction_id)
values(280,'Teaching',180,2000);

只插入到临时表空间,需要使用commit;

1.3 完全列添加
1.3.1 示例
向 departments 表中添加一条数
据。 Department_Id=290
Department_name = Development
Manager_id=149
Location_id =2000

insert into departments(department_id, department_name, manager_id, location_id)
values(290, 'Development',149,2000);select * from departments where
department_id = 290;

1.4 插入带空值的行
隐式方法: 省略字段列表中的列。

insert into departments(department_id,department_name)
values(300,'A');

显式方法: 在 VALUES 子句中指定 NULL 关键字。

insert into departments(department_id,department_name,m
anager_id,location_id)
values(310,'A',null,null);

1.5 插入日期值
1.5.1 示例
添加一个新的雇员:

insert into
employees(employee_id,first_name,last_name,
email,phone_number,hire_date,job_id,salary,
commission_pct,manager_id,department_id)
values(300,'Old','Lu','sdfsdfd','23423423',sysdate,'AD_PRES',23423,null,204,290);

使用默认日期格式:

insert into
employees(employee_id,first_name,last_name,
email,phone_number,hire_date,job_id,salary,
commission_pct,manager_id,department_id)
values(301,'Old','Lu','sdfsdddfd','23423423','01/3 月/2019','AD_PRES',23423,null,204,290);

指定日期格式:

insert into
employees(employee_id,first_name,last_name,
email,phone_number,hire_date,job_id,salary,
commission_pct,manager_id,department_id)
values(302,'Old','Lu','sdfsddfd','23423423',to_date('2019-03-01','yyyy-MM-dd'),'AD_PRES',23423,null,204,290);

1.6 从另一个表中复制行
• 用一个查询写 INSERT 语句
• 不用 VALUES 子句
• 在查询中列的数目要匹配 INSERT 子句中列的数目
1.6.1 创建表

create table EMP
(
id NUMBER not null,
name VARCHAR2(50),
salary NUMBER(8,2),
commission NUMBER(2,2)
)

1.6.2 示例
将 employees 表中的 job_id 中含有 REP 的工作岗位的数据插入到 emp 表中。

insert into
emp(id,name,salary,commission) select
employee_id,last_name,salary,commission_pct
from employees where job_id like '%REP%';
OR
insert into emp select
employee_id,last_name,salary,commission_pct
from employees where job_id like '%REP%';

1.7 使用默认值
在 INSERT 中的 DEFAULT

insert into emp(id,name) values(302,'Kevin');
insert into emp values(301,'OldLu',default,null);

2 改变表中的数据
2.1UPDATE 语句的语法

用 UPDATE 语句修改已存在的行
2.1.1 示例
更新 emp 表中 ID 为 170 的数据,将名字修改为 OldLu,薪水修改 20000。

update emp e set e.name ='OldLu',e.salary = 20000
where e.id = 170;

2.2 用查询更新列
2.2.1 示例
更新 emp 表中的雇员 165 的薪水,使其和雇员 156 相同。

update emp e set e.salary = (select salary
from emp where id = 156) where e.id = 165;

3 从表中删除行
3.1DELETE 语句
使用 DELETE 语句从表中删除已存在的行。
3.1.1 示例
删除 emp 表中 id 为 302 的雇员。

delete from emp where id = 302;

3.2 删除基于另一个表的行
3.2.1 示例
删除 emp 表中薪水与 IT_PROG 岗位相同的薪水。

delete from emp where salary in(select
distinct salary from employees where job_id
= 'IT_PROG');

3.3 删除表中的全部数据
如果在删除语句中没有给定任何条件,那么数据将会删除该表中的所有数据。
3.3.1 示例
删除表中的所有数据。
delete emp;
3.4 删除行: 完整性约束错误
不能删除包含主建的行,该主键被用做另一个表的外键;

SQL学习之数据操作,基于Oracle下的HR用户(五)相关推荐

  1. SQL学习之子查询,基于Oracle下的HR用户(四)

    六. 子查询 1 子查询介绍 1.1 什么是子查询 子查询是一个 SELECT 语句,它是嵌在另一个 SELECT 语句中的子句. 可以用组合两个查询的方法解决这个问题,放置一个查询到另一个查询中.内 ...

  2. SQL批量删除数据操作

    SQL批量删除数据操作 文章目录 SQL批量删除数据操作 sql语句 DELETE和TRUNCATE区别 sql语句 --删除数据(避免这么写,删除表全部数据) DELETE FROM `studen ...

  3. oracle下导出某用户表的方法

    scott/tiger是用户名和密码,handson是导出的实例名 ²按用户方式导出数据(owner当中写的是用户名) expscott/tiger@handsonfile=scott_backown ...

  4. hive学习笔记-数据操作

    hive数据操作 hive命令行操作 hive -d --define <key=value> 定义一个key-value可以在命令行中使用 hive -d database <da ...

  5. Oracle 访问SQL Server的数据 (通过Oracle gataway)

    测试例子:通过Oracle的GateWay,访问SQLServer的数据. Oracle 信息: Oracle所在机器的IP : 192.168.2.28 oracle SID :test Oracl ...

  6. 史上最简单的 MySQL 教程(六)「SQL 基本操作 之 数据操作」

    SQL 基本操作 基本操作:CURD,即增删改查. 根据操作对象的不同,咱们可以将 SQL 的基本操作分为三类,分别为:库操作.表(字段)操作和数据操作. 数据操作 1 新增数据 对于数据的新增操作, ...

  7. SQL语言之数据控制语言(Oracle)

    数据控制语言(DCL) Grant-授予用户权限 Revoke-撤销用户权限 一.授权系统权限 授予创建其他对象权限 1.Create session 登录权限 2.Create table 制表权 ...

  8. linux 查看用户操作日志,Linux下记录所有用户的登录和操作日志

    一般我们可以用history命令来查看用户的操作记录,但是这个命令不能记录是哪个用户登录操作的,也不能记录详细的操作时间,且不完整:所以误操作而造成重要的数据丢失,就很难查到是谁操作的. 在这里我们通 ...

  9. 使用JDBC操作基于Oracle的CLOB,BLOB字段类型

    转载至程式先锋技术维客[url]www.javabiz.cn[/url] 先来看看两种LOB类型的主要区别: CLOB 表示Character LOB (字符LOB)  它可以存储大量的字符数据. B ...

最新文章

  1. 输入两个数,计算它们的最大公约数和最小公倍数
  2. Java程序设计进阶之路一:捕捉异常
  3. 金鑫是著名高校计算机,金鑫 个人简历
  4. java中struts2日期_Struts2中Date日期转换的问题
  5. Scala函数式编程:偏函数
  6. java学习之(内部类)
  7. Tornado引入静态css、js文件
  8. EditDistance,求两个字符串最小编辑距离,动态规划
  9. jedate日期插件使用
  10. ectouch2.0 php5.5_EcTouch二次开发
  11. 作为面试官的一点心得
  12. 计算机省级教学团队建设,附件5:山东省高等学校教学团队建设实施方案
  13. 树莓派命令连接wifi_使用命令行设置树莓派的wifi网络
  14. Qt实现中英文切换(国际化)
  15. R语言绘制生存曲线估计|生存分析|如何R作生存曲线图
  16. 运用形式逻辑去分析解决问题的方法
  17. 汽车理论课后习题matlab程序,汽车理论课后习题程序
  18. Unity3D 快捷键
  19. 学习办公常用软件分享下载
  20. 处理MTK中DuraSpeed(快霸)引起的app被莫名其妙kill掉

热门文章

  1. A Simple Semi-Supervised Learning Framework for Object Detection
  2. macOS 软件推荐避雷指南 - 让 mac 更像 windows 的装机必备软件
  3. 第十五届浙江省ACM程序设计竞赛小记
  4. Android基础学习笔记13:安卓触摸事件触摸按键
  5. powerdesign工具导出数据库结构
  6. 毫末智行“AI DAY”即将来临,自动驾驶未来何解?
  7. 软件开发测试验收通知书,软件项目开发-客户告知书
  8. Ant Design 'cross-env' 不是内部或外部命令,也不是可运行的程序 报错问题
  9. 对标高竞争性,我们郑重纳入了这一机制——MDU价格保障机制之回购
  10. 利用开源软件架设中小型私有云存储系统【简要选型】