`

Oracle的基本语法——DDL & DML

阅读更多

一、DDL和DML的区别

DDL和DML都是数据库语言,DDL是数据库模式定义语言(Data Definition Language),主要包括创建、修改数据库表。DML是数据操纵语言(Data Manipulation Language),主要包括insert 、update、delete等。

二、DDL语句

1.创建数据库表

 

要指明表的名称、列的名称、列的数据类型、列的宽度、是否有默认值等。

 

create table stu( name char(8), salary number(5) default 0, content char(4 char), hiredate date 	);	
//name为8个字节,content为4个字。

 

 在现有表的基础上建立表

 

create table t1 as select ename name,sal salary from emp;//可以给列改别名 
create table t2 (c1,c2,c3)as select ename,empno,sal from emp where 9=1; 
//不想要数据,只建立表结构,c1,c2,c3是给列起的别名

 

 注:表的命名规则

(1)标准ASCII码描述;

(2)必须以字母开头;

(3)不能是保留字;

(4)可以包含大小写字母、数字、$、#;

(5)不能和所属用户的其它对象重名。千万不要使用汉语做表和列的名称,因为汉语是 ASCII 码所不能描述的,ORACLE 的核心是 ASCII 编写的,你使用汉语只是一时痛快,后患无穷。

2.查询当前用户所拥有的表

 

 

select object_name,object_type from user_objects; 
//user_objects当前用户所拥有的所有对象,不包含你建立的public对象

 

 

 

select table_name from user_tables; 
//user_tables当前用户所拥有的表,拥有表的一切权利

 

 

select * from tab; //tab是当前用户拥有的表和视图

 

 3.修改表信息

 

修改表的结构

如果列为null,可以随便修改列的类型和宽度

如果有数据,修改会受到限制,但不会破坏数据

如果不改变类型,只改变宽度的话,加大宽度是可以的

 

alter table t1 modify(name char(12)); 
alter table t1 modify(name number(12));//如果列为null,可以改变列的类型

 

 修改表的名称

 

rename t1 to t_1;	//必须是表的owner才可以修改表的名称

 

 修改列的名称

 

alter table t4 rename column c1 to name;

 

添加表注释

 

comment on table emp is 'employee table';	//添加注释 select comments from user_tab_comments where table_name = 'emp';	//查询表注释

 

 添加列注释

 

comment on column emp.sal is '员工工资';	//添加列注释 select comments from user_col_comments where tab_name='emp' and column_name='sal';	//查询列注释

 

 丢弃表

 

drop table t2; //此语句并没有将表真的删除,只是改了名称 
show recyclebin;//显示回收站的信息 
select * from user_recyclebin;	//查询该用户的回收站信息

 

 将回收站的表还原

 

flashback table t2 to before drop;	//还原t2 
flashback table t2 to before drop rename to tt2;	//还原表的同时修改表的名称

 

 清空回收站内指定的表

 

purge table t2;	//清空回收站的t2表 purge recyclebin;	//彻底地删除回收站里的表

 

三、DML语句

1.insert 语句 

 

 

insert into t1(c1,c2,c3) values(v1,v2,v3);	//	列的个数和数据类型要匹配
insert into t1(c2) values(sysdate);	//插入当前日期

 

 隐式插入null

在插入中没有列出的列,就会被插入null,如果该列有default值,那么就插入默认值

 

insert into dept(deptno) values(50);//其中dname,loc没有说明,都为null

 

 显示插入null值

明确的写出该列的值为null

 

insert into dept values(60,null,null); insert into dept(loc,dname,deptno) values(null,null,70);

 

日期

 当插入的列为日期的时候,最好强制转化为日期类型,默认的转换在环境变化的时候会报错

 

insert into t3(hiredate) values(to_date('080599','mmddrr'));

 

字符串

字符串大小写敏感

 

 

insert into t2(c1) values ('BEIJNG'); insert into t2(c1) values('beijing');

 

 子查询插入

不加values关键字,一次可以插入多行,列的类型和位置要匹配

 

insert into d1 select * from dept; 
insert into emp2 select * from emp where deptno=30;

 

2.update语句

 

修改表中的数据

 

update emp set sal=sal+1;
update emp set sal=2000 where empno=7900; 
update emp set comm=null where deptno=30;

 

用子查询来更新

 

update emp2 set dname=(select dname from dept where dept.deptno=emp2.deptno);

 

给列设定指定值  

 

create table t1(c1 number(2) default 10,c2 char(10) default 'bj'); 
update emp2 set empno=default;

 

 3.delete删除行

 

delete t1;	//	只删除表t1中的所有行数据,表还在 delete t1 where sal > 2000;	//	将符合条件的行删除

 

4.Merge语句

 

Merge是update和insert的结合体,有就做update,没有就做insert,

Merge into解决用B表跟新A表数据,如果A表中没有,则把B表的数据插入A表

 语法:

 

MERGE INTO [your table-name] [rename your table here] USING ( [write your query here] )[rename your query-sql and using just like a table] ON ([conditional expression here] AND [...]...) WHEN MATHED THEN [here you can execute some update sql or something else ] WHEN NOT MATHED THEN [execute something else here ! ]

 

 eg:

 

merge into t_a a using (select FP0,FP1,FP2,FP3,REDE from t_b) b on (a.fp0=b.fp0 and a.fp1=b.fp1 and a.fp2=b.fp2 and a.fp3=b.fp3) when matched then update set a.rede=b.rede when not matched then insert (a.fp0,a.fp1,a.fp2,a.fp3,a.org_severity,a.rede, a.event_time,a.int_id) values (b.fp0,b.fp1,b.fp2,b.fp3,b.REDE,b.redefine_severity,sysdate,7777778);

 

 //利用表 t_b跟新表t_a的b.redefine_severity,

条件是a.fp0=b.fp0 and a.fp1=b.fp1 and a.fp2=b.fp2 and a.fp3=b.fp3,

如果tfa_alarm_act_nms表中没有该条件的数据就插入。如果数据量很大,此sql效率非常高

 

分享到:
评论

相关推荐

    Oracle SQL语法速查&Oracle_Errors.rar

    本资源"Oracle SQL语法速查&Oracle_Errors.rar"提供了关于Oracle SQL语法的快速参考指南以及Oracle错误查询的详细信息,对于数据库管理员、开发人员和IT专业人员来说,是一个极其宝贵的资源。 在"Oracle SQL语法速...

    三、oracle数据定义ddl和dml.pptx

    在Oracle中创建表是通过DDL语句实现的,基本语法包括指定表名、列名、数据类型、约束等。CREATE TABLE语句可以指定表空间、初始化参数、存储属性、缓存设置以及完整性约束。例如,创建一个包含主键、非空、默认值和...

    Oracle基本语法全集

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,它的语法丰富多样,涵盖了数据查询、数据操纵、数据控制和数据定义等多个方面。...学习Oracle语法需要不断实践和探索,才能充分掌握其精髓。

    oracle SQL语法大全

    Oracle SQL语法大全 Oracle SQL语法大全是关系数据库标准语言SQL的详细介绍,涵盖了SQL的基础知识、语法结构、数据类型、查询语句、操作符的使用等方面的内容。 SQL基础知识 SQL(Structured Query Language)是...

    Oracle9i培训胶片中文版12基本的DDL和DML介绍caith.ppt

    Oracle 9i是一款广泛使用的数据库管理系统,而DDL(Data Definition Language)和DML(Data Manipulation Language)是SQL语言中的核心部分,它们分别用于定义和操作数据库中的数据。本篇Oracle 9i培训胶片主要介绍...

    Oracle数据库管理中的表空间、用户操作及DDL、DML语言应用详解

    ④掌握DDL语句的基本语法,灵活应对数据库表结构调整的需求;⑤熟练运用DML完成日常的数据维护任务。 其他说明:文中提供了大量SQL命令的实际应用场景与案例演示,有助于读者快速上手实战练习,更好地巩固理论知识。

    DDL与DML

    "DDL与DML" 在数据库管理系统中,SQL语言可以分为四大类:数据查询语言(DQL)、数据操纵语言(DML)、数据定义语言(DDL)和数据控制语言(DCL)。...了解DDL和DML的使用方法是数据库管理员和开发者的基本技能。

    Oracle9i培训胶片中文版1_2基本的DDL和DML介绍caith.pptx

    Oracle 9i 是一款历史悠久的关系型数据库管理系统,其在数据管理方面提供了强大...通过学习这些基本的DML和DDL操作,您将能够有效地在Oracle 9i数据库中进行数据管理和查询,为后续更复杂的数据库操作打下坚实的基础。

    DDL与DML.docx

    了解和熟练掌握DDL和DML是数据库管理员和开发人员的基本技能,它们是构建、维护和操作数据库的关键工具。在Oracle数据库中,正确使用这些语句可以帮助我们有效地管理数据,确保数据的一致性和完整性。

    DDL与DML.pdf

    在Oracle中,创建表格的基本语法如下: ```sql CREATE TABLE table_name ( column1 datatype constraints, column2 datatype constraints, ... ); ``` DDL还允许你修改现有表格的结构,例如增加、删除或修改列...

    oracle SQL语法大全.rar

    总结,Oracle SQL语法大全.ppt这份资料将引导你深入了解Oracle数据库的SQL语法,从基本的查询到复杂的操作,再到性能优化和安全管理,为你的数据库管理和开发工作提供全面指导。通过深入学习,你可以熟练掌握Oracle...

    Oracle 数据库语法总结

    这篇文档“Oracle数据库语法总结”旨在为用户提供一个全面的参考指南,帮助理解和掌握Oracle SQL的使用。 1. **数据定义语言(DDL)** - **创建表(CREATE TABLE)**:用于定义表的结构,包括字段名、数据类型、...

    oracle plsql基本语法

    ### Oracle PL/SQL基本语法详解 #### 一、PL/SQL简介 PL/SQL (Procedural Language for SQL) 是一种专门为 Oracle 数据库设计的过程化编程语言,它结合了 SQL 的强大功能和过程化编程语言的特点,使得开发人员能够...

    oracle 基本语法

    本文将深入探讨Oracle的基本语法,包括连接、用户管理、表空间创建、用户权限授予、数据操作语言(DML)、数据定义语言(DDL)以及查询优化等关键知识点。 #### 一、连接与登录 - **SQLPLUS连接命令**:`sqlplus /...

    Oracle语法指南.zip

    本"Oracle语法指南"提供了全面的Oracle SQL语法参考和实例解析,旨在帮助用户更好地理解和掌握Oracle数据库的操作。 首先,"oracle语法.txt"可能包含了Oracle SQL的基础到高级语法,例如: 1. **数据类型**:...

    Oracle的SQL语法大全

    以下是对Oracle SQL语法的详细解析: **一、数据控制语句 (DML)** 1. **INSERT**: 插入数据到表中。有两种基本形式: - 直接插入:`INSERT INTO 表名(字段名1, 字段名2, ...) VALUES (值1, 值2, ...);` - 从另一...

Global site tag (gtag.js) - Google Analytics