文章目录

1 SQL语句的类型:

1 DQL:数据查询语言select

2 DML:数据操作语言,insert delete update --》可以回退(可以进行事务操作)

3 DDL :数据定义语言 create/drop /truncate /alter table

4 DCL:数据控制语言 grant, revoke

2.1 DML:

2.1.1 增加数据insert

2.1.2 删除delete

2.1.3 修改 update/delete :where

3 DDL: create/drop/truncate/alter

3.1创建表

3.2修改表:

3.3删除表

1 SQL语句的类型:

1 DQL:数据查询语言select

2 DML:数据操作语言,insert delete update --》可以回退(可以进行事务操作)

3 DDL :数据定义语言 create/drop /truncate /alter table

4 DCL:数据控制语言 grant, revoke

2.1 DML:

2.1.1 增加数据insert

insert into 表名(字段名1,字段名2,…,) values(字段值1,字段值2,…)

字段名和字段值一一对象:数据类型、个数、顺序

insert into emp(EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO)

values(2222,‘zhangsan’,‘MANAGER’,7788,‘19-9月 -88’,9998,1000,10);

可以省略字段名:

1.values插入的数据 必须是 完整的字段,并且顺序和默认顺序一致

2.目前使用的SQL99标准,可以省略字段名(如果是SQL92则不能省略,MyCat)

insert into emp

values(3322,‘LISI’,‘MANAGER’,7788,‘19-9月 -88’,9998,1000,10);

如果插入的数据不完整,可以协商 部分字段名

insert into emp(EMPNO,ENAME,JOB)

values(444,‘zhan’,‘MANAGER’);

动态输入插入的值(&) Scanner input = new Scanner(System.in); input.next();

insert into emp(EMPNO,ENAME,JOB)

values(&empno,&xxx,&job);

如果是字符、日期: 仍然需要加’ ’

insert into emp(EMPNO,ENAME,&otherName)

values(‘5555’,‘kkk’,&otherValue);

批量插入数据

1.创建新表(批量插入之前不存在)

emp ->复制 mytab

create table mytab

as

select *from emp;

create table mytab2

as

select empno,ename ,job from emp;

create table mytab3

as

select empno,ename ,job from emp

where sal < 6000;

还可以用于快速创建表结构:

mytab4 -> emp

create table mytab4

as

select *from emp where 1=0 ;

2.在旧表中插入(已存在的表)

insert into mytab4(empno,ename,sal)

select empno,ename ,sal from emp;

3. begin ...end /

begin

insert into emp

values(1221,‘LISI’,‘MANAGER’,7788,‘19-9月 -88’,9998,1000,10);

insert into emp

values(1223,‘LISI’,‘MANAGER’,7788,‘19-9月 -88’,9998,1000,10);

end ;

海量数据: 数据泵 \ SQL Loader\ 外部表

2.1.2 删除delete

delete from 表名 ;

delete from emp where empno >7900;

1.加where

2. delete from 表名 ;

全表删除:

delete from emp ; 可以回退

truncate table emp ;不能回退

原因: DML:insert update delete ->可以回退

2.测试二者执行时间

打开执行时间:

set timing on/off

对于少量数据: delete 效率高 ,一行一行删除

对于海量数据:truncate效率高 , a.drop table 丢弃整张表 ,b.重新创建表

3.delete支持闪回, truncate不支持闪回

4.delete不会释放空间 (换两个地方存储数据[undo空间]),trucante会

5.delete会产生碎片,trunate不会

如果碎片太多,需要整理碎片:a. alter table 表名 move ; b.导出导入

2.1.3 修改 update/delete :where

修改update

update 表名 set 字段名1=字段名1 , 字段名2=字段名2,字段名3=字段名3… where …

update emp set ename = ‘x’ ,job =‘y’ where empno>7900;

3 DDL: create/drop/truncate/alter

3.1创建表

create table mytab6

(

id number ,

name varchar(10),

age number

)

;

注意事项:

1.权限和空间问题

2.表名的规定:

a.必须以字母开头

b.表名只能包含: 大小写字母、数字、_、KaTeX parse error: Expected 'EOF', got '#' at position 2: 、#̲ c.长度 1-30个字符…reserved_words order by keyword asc ;

设置某个字段的宽度:

字符

col KEYWORD for a10

数字

col LENGTH for 9999

3.2修改表:

a.追加新列

alter table mytab6 add myother varchar2(10) ;

b.修改列

修改列的长度

alter table mytab6 modify myother varchar2(20) ;

修改列的类型

alter table mytab6 modify myother number ;

注意: blob/clob不能修改 ->先删除此列,重新追加

alter table mytab6 add myother2 blob ;

alter table mytab6 modify myother2 number ;

c删除列

alter table mytab6 drop column myother2 ;

d重命名列

alter table mytab6 rename column myother to myother3 ;

3.3删除表

select *from tab; 表以及回收站中的表

drop table mytab6; -->放在了回收站

查看回收站

show recyclebin;

清空回收站

purge recyclebin;

还原回收站

闪回

删除表 并清空: drop table test02 purge ;

oracle中dml操作,oracle数据库(五)DML操作相关推荐

  1. Oracle中如何记录访问数据库的登录信息?

    曾有同学问过,能不能知道都有谁登陆过Oracle数据库, 碰巧看到老杨的这篇历史文章<Oracle中如何记录访问数据库的登陆信息>,介绍了几种实现这个需求的方案,学习一下. 1. 有哪些审 ...

  2. 【DB笔试面试713】在Oracle中,如何将一个数据库添加到CRS中?

    ♣ 题目部分 在Oracle中,如何将一个数据库添加到CRS中? ♣ 答案部分 虽然通过DBCA(DataBase Configuration Assistant,数据库配置助手)创建的数据库会自动加 ...

  3. oracle中call用法,Oracle数据库中 call 和 exec的区别

    Oracle数据库中 call 和 exec的区别 今天发现了一个小东西,觉得很有意思,查找了一些资料,跟大家分享一下: 在sqlplus中: 在第三方提供的工具(如:plsqldev) 总结: ex ...

  4. oracle中插曲时间,Oracle 11G 数据库迁移【expdp/impdp】

    0x01 环境 A 机器,操作系统 CentOS7.3,Oracle版本:11G,IP地址:192.168.1.11 B 机器,操作系统 CentOS7.3,Oracle版本:11G,IP地址:192 ...

  5. oracle 存取图片,用ASP.NET 2.0在Oracle中存取图片(文件)的操作

    用ASP.NET 2.0在Oracle中存取图片(文件)的操作 2010-10-21文字大小:大中小 有时由于某种须要(如安全性)须将图片或文件存放在数据库中,当然通常情况下特别是文件比较大的时刻许多 ...

  6. 如何向oracle中导入数据,Oracle导入导出数据库的语法_Oracle_Oracle语法_Oracle数据库_课课家...

    在Oracle当中如何才能对数据库的语法进行导入导出呢?其实啊,这有不止一种方法呢.事实上啊,在Oracle当中,不仅可以在Oracle编辑器中用图形化的方式导入导出文理文件的数据方式,而且还可以采用 ...

  7. oracle中的open,Oracle中常用SQL操作

    学习sql有一段时间了,发现在我建了一个用来测试的表(没有建索引)中出现了许多的重复记录.后来总结了一些删除重复记录的方法,在Oracle中,可以通过唯一rowid实现删除重复记录:还可以建临时表来实 ...

  8. oracle中的open,oracle数据库启动从nomount到open

    oracle数据库启动从nomount到open oracle数据库启动过程中的3种状态: ■ nomount ■ mount ■ open 下面详细介绍oracle数据库从nomount到open的 ...

  9. oracle中的冲销日记账,OraEBSR12GL日记账业务操作09:日记账冲销处理

    OraEBSR1201登录 OraEBSR1202添加收藏夹 OraEBSR1203快捷键查询和保存 OraEBSR1204提交请求查看请求结果 OraEBSR1205修改密码和个人Profile O ...

  10. oracle中创建游标,oracle 存储过程创建游标

    Oracle与Sql Server差异点详解 1.create函数或存储过程异同点 Oracle 创建函数或存储过程一般是 create or replace -- SQL SERVER 则是在创建之 ...

最新文章

  1. c语言获取指针分配的字节数,c语言指针知识点总结(共6篇).docx
  2. python函数用法详解2(变量的作用域(全局变量、局部变量)、共享全局变量、函数返回值、函数的参数(位置参数、关键字参数、默认参数、不定长参数)、拆包、交换变量值、引用、可变和不可变类型)
  3. linux无法创建符号链接 权限不够_Linux 基本命令(看完就会系列)
  4. 【深度学习】手把手教你实现一个人工智能案例(蓄电池爬碱识别)
  5. (转)IIS tomcat共用80端口解决一个IP多个域名:使用Nginx反向代理方式使两者兼容...
  6. DataGrip按某列大小对数据集进行排序
  7. iOS开发缓存机制之—内存缓存机制
  8. eventfd(一)
  9. win7上修改MySQL数据库密码
  10. 实现页面内多个表格在滚动时,表头浮动的效果(是同时多个表格哟)
  11. FullCalendar 二:FullCalendar日历插件说明文档
  12. linux学习笔记:磁盘挂载与卸载命令
  13. python android开发视频教程_程序员学习视频教程汇总
  14. pdffactory 打印字体_PDFFactory
  15. H3C交换机 access端口配置
  16. MTK Pump Express 快速充电原理分析
  17. android获取摄像头视频分辨率,相机自定义拍照录像,可设置分辨率、焦距、无声录像、支持横竖屏...
  18. 如何在万网注册域名及域名解析?
  19. 简单货机装运模型lingo求解
  20. VS code更改背景图片和颜色

热门文章

  1. android中onResume、onPause等方法
  2. 跑步耳机哪个牌子好、最适合跑步佩戴得蓝牙耳机推荐
  3. 善战者无赫赫之功,善医者无煌煌之名
  4. 表单控件(表单元素)
  5. 浪擎科技SQLServer数据库同步准实时方案
  6. [杂谈]关于我在云电脑上想薅百度云的羊毛
  7. openGauss数据库闪回功能验证
  8. VIT、Swim-trans、DETR最全流程讲解
  9. VMware虚拟机打不开怎么办?
  10. Vue网页调用摄像头拍照