SQL语言共分为四大类:

数据查询语言DQL:

数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块。

数据操纵语言DML:

DML是“数据操纵语言”( Data Manipulation Language )的简写。如果说SELECT语句对数据进行的是读操作,那么DML语句对数据进行的是写操作。DML语句的操作对象是表中的行,这样的语句一次可以影响一行或多行数据。

数据定义语言DDL:

DDL(Data Definition Language 数据定义语言)用于操作对象和对象的属性,这种对象包括数据库本身,以及数据库对象,像:表、视图等等,DDL对这些对象和属性的管理和定义具体表现在Create、Drop和Alter上。特别注意:DDL操作的“对象”的概念,”对象“包括对象及对象的属性,而且对象最小也比记录大个层次。以表举例:Create创建数据表,Alter可以更改该表的字段,Drop可以删除这个表,从这里我们可以看到,DDL所站的高度,他不会对具体的数据进行操作。

数据控制语言DCL:

DCL(Data Control Language 数据控制语句)的操作是数据库对象的权限,这些操作的确定使数据更加的安全,用户对某类数据具有何种操作权限是有DBA决定,DCL的操作对象(用户)此时的用户指的是数据库用户。

放一张网上三者之间的关系图

DDL

DDL的主要语句(操作)
Create语句:可以创建数据库和数据库的一些对象。
Drop语句:可以删除数据表、索引、触发程序、条件约束以及数据表的权限等。
Alter语句:修改数据表定义及属性。

-创建一个名为p_student的表
create table p_student(
sno varchar2(5) not null primary key,
sname varchar2(50) not null,
ssex varchar2(1) not null,
sage varchar2(2));

创建之后表状态见下图

--修改列的类型
alter table p_student modify(sno number(4));
--重命名一个列
alter table p_student rename column sage to age;
--增加一个数据列
alter table p_student add(score number(2));
--删除一个数据列
alter table p_student drop column ssex;
--重命名表名称
alter table p_student rename to student;

修改完成表结构后的表的属性状态见下图

--删除已存在的p_student表
drop table student;

DML

DML包括三种操作:插入( INSERT )、删除(DELETE )、修改( UPDATE )。

INSERT语句的作用是往表中插入一行,它的语法格式为:

INSERT INTO 表(列1 ,列2 …) VALUES (表达式1 ,表达式2 .. ) ;

--不加列选项默认全插入
insert into student values(1,'abc',23,99); --插入指定的列
insert into student (sno,sname,age) values (2,'oka',24);

利用INSERT语句还可以从另一个表中复制数据,这时要在INSERT语句中使用子查询,对应的语法格式为:
INSERT INTO 表1 (列1 ,列2 …)
SELECT 列 1 ,列2 ••• FROM 表2 WHERE 条件表达式;

这里的SELECT子句实际上是一个子查询。

执行这样的语句时,首先执行SELECT 子句,将返回的查询结果作为指定列的值,插入到表中。
用这种方法可以-次向表中插入多行,但是需要注意的是,表指定的各列要与SELECT子句中的各列在排列顺序、数据类型和数量上保持一致。

 --复制表

create table student_copy as select * from student;

--修改表中的数据
update student_copy set sno=3 where sno=1;
update student_copy set sno=4 where sno=2; --整个记录的每一列都插入
insert into student select * from student_copy where sno=3; --插入记录的指定列
insert into student (sno,sname) select sno,sname from student_copy where sno=4;

操作完毕数据状态见下图

UPDATE语句

UPDATE语句的作用是对表中已经存在的数据进行修改。

它可以一次修改一行,也可以修改多行。
这条语句的语法格式为:

UPDATE 表名称 SET 列名称=表达式1, 列名称=表达式2 WHERE 条件;

UPDATE语句通过SET子句为指定列指定新值,将列值修改为指定的表达式。

在SET子句中指定所有需要修改的列。
在默认情况下,UPDATE语句不需要WHERE子句,这时UPDATE语句将修改表中的所有行。

如果通过WHERE子句指定了条件,那么UPDATE语句只修改满足条件的行。

在UPDATE语句的WHERE子句中,也可以使用子查询。这时的条件并不是一个确定的条件,而是依赖于对另一个表的查询。

--不加where条件的话默认修改表中的所有行
update student set score=66;

--更新指定列
update student set sname='xiaoming',age='' where sno=4; --使用子查询进行更新
update student set (sname,age) =(select sname,age from student_copy where sno=3) where sno=4;
update student set sname=(select sname from student_copy where sno=3),age=(select age from student_copy where sno=4) where sno=3;
update student set sname=(select sname from student_copy where sno=3),age=(select age from student_copy where sno=4);

DELETE语句

DELETE 语句用来从表中删除指定的行,它一次可以删除一行,也可以删除多行。
DELETE语句的语法格式为:

DELETE FROM 表名称 WHERE 条件;

在默认情况下, DELETE语句可以不使用WHERE子句,这时将删除表中的所有行。

如果希望只删除表中的一部分数据,需要通过WHERE指定条件。

在DELETE语句的WHERE子句也可以使用子查询,子查询与SELECT语句中的子查询用法相同。

--删除指定行数据
delete from student where sno=4;
--删除名称为abc的行数据
delete from student where sname='abc'
--删除全部数据
delete from student; --使用子查询的删除
delete from student where sname=(select sname from student_copy where sno=3);
delete from student where sname in (select sname from student_copy);

DCL

DCL的主要语句(操作)

Grant语句:允许对象的创建者给某用户或某组或所有用户(PUBLIC)某些特定的权限。
Revoke语句:可以废除某用户或某组或所有用户访问权限
 

--DCL数据控制语言
/**
系统权限:是在数据库中执行某种特定操作的权利,系统权限并不针对某个特定的对象,而是针对整个数据库范围。常用的系统权限有:
CREATE SESSION 连接到数据库上
CREATE SEQUENCE 创建序列,序列是一系列数字,通常用来自动填充主键列
CREATE SYNONYM   创建同名对象
CREATE TABLE  创建表
CREATE ANY TABLE 在任何模式中创建表
DROP TABLE 删除表
DROP ANY TABLE    删除任何模式中的表
CREATE PROCEDURE 创建存储过程
EXECUTE ANY PROCEDURE 执行任何模式中的存储过程
CREATE USER 创建用户
DROP USER   删除用户
CREATE VIEW 创建视 对象权限
是针对特定的模式对象执行操作的权利,只能针对模式对象来设置和管理对象全新啊,这些对象包括 表、 视图、 存储过程 等常用的对象权限有: SELECT 允许执行查询操作
INSERT 允许执行插入操作
UPDATE 允许执行修改操作
DELETE 允许执行删除操作
EXECUTE 语序执行存储过程
**/
--创建用户
create user xiaoming identified by 123;
--给用户分配权限
grant create session,create user,create table to xiaoming;
--收回用户某一权限
revoke create table from xiaoming;
--查看当前用户下所对应的系统权限和对象权限
select * from user_sys_privs;
select * from user_tab_privs;

Oracle DDL+DML+DCL实例的更多相关文章

  1. SQL语言:DDL,DML,DCL,DQL,TCL

    DDL(Data Definition Language)数据库定义语言 statements are used to define the database structure or schema. ...

  2. 什么是DDL,DML,DCL

    转载自  https://www.2cto.com/database/201610/555167.html DML.DDL.DCL区别 . 总体解释: DML(data manipulation la ...

  3. DDL DML DCL SQL

    https://dev.mysql.com/doc/refman/5.7/en/glossary.html#glos_ddl SQL The Structured Query Language tha ...

  4. Oracle中的DDL,DML,DCL总结

    转自http://blog.csdn.net/w183705952/article/details/7354974 DML(Data Manipulation Language,数据操作语言):用于检 ...

  5. Oracle四大语言DDL DML DCL TCL

    DDL(数据定义语言) creater 创建数据表 ceater table 表名 (); alter 修改表结构 添加字段:alter table 表名 add 列名 数据类型 null 删除字段: ...

  6. Oracle SQL: DDL DML DCL TCL

    Data Definition Language 自带commit,与表结构有关(数据字典)(会等待对象锁) Data Manipulation Language (数据文件相关变化有关,会产生锁)不 ...

  7. ddl dml dcl

    DCL数据控制语言 创建临时表空间 create temporary tablespace user_temp tempfile 'E:/oracle/product/10.1.0/oradata/o ...

  8. DDL DML DCL语句

    总体解释:DML(data manipulation language):自动提交的数据库操作语言       它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样 DDL( ...

  9. DDL DML DCL DQL的区别

    原文章出处:http://blog.csdn.net/tomatofly/article/details/5949070 SQL(Structure Query Language)语言是数据库的核心语 ...

随机推荐

  1. Centos下使用压缩包安装MySQL5.7

    今天在自己的centos服务器上安装mysql,碰到的问题相当的多,装个mysql远比在windows复杂的多.这里通过查找的一些博文(包括前几篇)来记录安装mysql时的各种问题.可能步骤不完整,当 ...

  2. Jhipster token签名异常——c.f.o.cac.security.jwt.TokenProvider : Invalid JWT signature.

    背景,jHipster自动生成的springBoot和angularJs前后台端分离的项目.java后台为了取到当前登录者的信息,所以后台开放了 MicroserviceSecurityConfigu ...

  3. 深入了解Java之虚拟机内存

    在讨论JVM内存区域分析之前,先来看一下Java程序详细运行的过程: -我们今天就来分析一下Java程序运行过程的-Runtime-Data-Area(运行时数据)-这一块" class=& ...

  4. poj_2559 单调栈

    题目大意 给出一个柱形图中柱子的高度,每个柱子的宽度为1,柱子相邻.求出柱形图中可能形成的矩形的最大面积. 题目分析 以每个柱子(高度为h[i])为中心,向两边延展求出以该h[i]为高度的矩形的最大宽 ...

  5. 【BZOJ1135】[POI2009]Lyz 线段树

    [BZOJ1135][POI2009]Lyz Description 初始时滑冰俱乐部有1到n号的溜冰鞋各k双.已知x号脚的人可以穿x到x+d的溜冰鞋. 有m次操作,每次包含两个数ri,xi代表来了x ...

  6. 理解CSS3 isolation: isolate的表现和作用

    转自:http://www.zhangxinxu.com/wordpress/?p=5155 只要元素可以创建层叠上下文,就可以阻断mix-blend-mode! 于是,不仅仅是isolation:i ...

  7. 有关弱类型意识、DOM、动态语言与函数式编程

    一.弱类型意识  js变量是没有类型的 var a =1;   //a 就是一个变量  不要提类型 变量可以赋予任何类型的值,类型仅仅是值得性质  与变量无关   js 的基本类型 变量未赋值时,其值 ...

  8. Java--运算符的优先级表

    Java运算符的优先级表:

  9. Hibernate中的一对一映射关系

    Hibernate中的一对一映射关系有两种实现方法(单向一对一,和双向一对一)(一对一关系:例如一个department只能有一个manager) 单向和双向有什么区别呢??例如若是单向一对一,比如在 ...

  10. Code Forces 650 C Table Compression(并查集)

    C. Table Compression time limit per test4 seconds memory limit per test256 megabytes inputstandard i ...