--DML
--insert关键字
--作用:往表中插入一条(多条)记录

--元祖(tuple)值式的插入(一次插入一条记录)
--语法1:insert into tablename(column1,column2,...,columnN) values(val1,val2,...,valN)
--例子:
insert into emp(empno,ename,sal,deptno) values(9527,'hua%an',100,40);
--如果往表中所有的列都添加数据时,表后面的字段可以不添加,直接写values
insert into emp values(8888,'xiaoqiang','aaa',9527,sysdate,0,null,40);

--查询结果式的插入
--语法2:insert into tablename sub-query
--例子:
insert into emp_temp (select * from emp where deptno = 20)

--创建一个emp的临时复制表
create table emp_temp as select * from emp where 1 = 2

--delete关键字
--作用:删除表中的数据
--语法:delete [from] tablename [where condition]
--例子:
delete emp_temp where empno = 8888;
delete from emp_temp;

--update关键字
--作用:更新表中的数据
--语法:update tablename set column1=value1,column2=value2,...,columnN=valueN [where condition]
--例子:
update emp_temp set sal = sal*1.2 where ename = 'SMITH';

select * from emp_temp;

select * from emp_temp

--转账
update emp_temp set sal = sal - 500 where ename='JONES';
update emp_temp set sal = sal + 500 where ename='SMITH';

commit;
rollback;

create table aaa(id number,name varchar2(20));

--savepoint 存档点
insert into emp_temp(empno,ename) values(1111,'cai10');
insert into emp_temp(empno,ename) values(2222,'cai20');
savepoint sp1;
insert into emp_temp(empno,ename) values(3333,'cai30');
insert into emp_temp(empno,ename) values(4444,'cai40');
rollback to sp1;

--事务的四个特性:ACID
--原子性(A)
--一致性(C)
update emp_temp set sal = 5000 where empno=1111
update emp_temp set sal = sal+1000 where empno = 1111;

--隔离性(I)
--持久性(D)

--用户管理
--1.创建一个账户
create user zhangsan identified by 123456;

--2.修改账户的密码
alter user zhangsan identified by 654321;

--3.删除一个账户 [cascade 表示是否级联删除]
drop user zhangsan;

--4.让一个用户的密码失效
alter user zhangsan password expire;

--5.锁定、解锁一个账户
alter user zhangsan account lock;
alter user zhangsan account unlock;

--DCL
--grant授予权限
--revoke收回权限

--1.给用户授权
--允许用户登录
grant create session to zhangsan;

--给账户授权可以操作表
grant all on scott.emp_temp to zhangsan;

--2.取消用户的权限
revoke all on scott.emp_temp from zhangsan;

--创建序列
create sequence seq_emp_temp
increment by 1
start with 1
--使用序列
--通过序列名.next_val

select seq_emp_temp.nextval from dual;
select seq_emp_temp.currval from dual;

insert into emp_temp(empno) values(seq_emp_temp.nextval)

select * from emp_temp;

--登录到sys账户给scott赋予创建视图的权限
grant create view to scott;

--1.视图的创建
create view v$_emp_dept
as
select ename,sal,job,dname from emp,dept where emp.deptno = dept.deptno;

--视图也可以从视图中产生
create view v$_emp_dept_tem
as
select ename,sal from v$_emp_dept

--修改视图的数据,就是修改基表的数据
create or replace view v$_emp
as
select empno,ename from emp
with read only

select * from v$_emp;
select * from emp;

update emp set sal = 8888 where empno = 9527;

--视图的优点:可以使某些重复出现SQL语句变得更为简单
--视图的缺点:1.如果修改基表的结构,视图失效
-- 2.增加数据库的维护成本
-- 3.视图会被覆盖掉
-- 4.一般情况下,不要对视图进行DML操作

--视图的例子
select dname, grade
from (select deptno, avg_sal, grade
from (select deptno, avg(sal) avg_sal from emp group by deptno) t,
salgrade s
where t.avg_sal between s.losal and s.hisal) t1,
dept
where t1.deptno = dept.deptno
and t1.grade =
(select min(grade)
from (select deptno, avg_sal, grade
from (select deptno, avg(sal) avg_sal
from emp
group by deptno) t,
salgrade s
where t.avg_sal between s.losal and s.hisal));

--为上面的SQL中重复出现的sql语句创建视图
create view v$_dept_avgsal
as
select deptno, avg_sal, grade
from (select deptno, avg(sal) avg_sal from emp group by deptno) t,
salgrade s
where t.avg_sal between s.losal and s.hisal

--利用视图替换上面的sql语句

select dname, grade
from v$_dept_avgsal t1,
dept
where t1.deptno = dept.deptno
and t1.grade =
(select min(grade)
from v$_dept_avgsal);

--删除视图所表示的基表

create view v$_aaa
as
select * from aaa;

--删除表 aaa
drop table aaa;

--查询视图
select * from v$_aaa;

--删除视图 v$_aaa
drop view v$_aaa;

--DDL
--create
--作用:用来创建数据库的对象(表,视图,序列,索引等)
--语法1:create table tablename(column1 dataType, column2 dataType,...,columnN dataType)
--例子:
create table t_user(
id number,
username varchar2(30),
password varchar2(30)
);
--语法2:create table tablename as subquery
--例子:
create table emp_e1 as select * from emp where 1=1;

--alter
--作用:用来修改数据库的对象(表,视图,序列,索引等)
--语法:alter table tablename [modify/add/drop]
--例子1:
alter table emp_e1 modify(ename varchar2(10));
insert into emp_e1(empno,ename) values(9898,'cai10cai10cai');
--例子2:
alter table emp_e1 add(phone varchar2(11));
--例子3:
alter table emp_e1 drop column phone;

select * from emp_e1

--drop
--作用:用来删除数据库的对象(表,视图,序列,索引等)
--语法 drop table tablename
drop table emp_e1;

SQL 序列-DML-DML-数据类型-用户管理、权限-事务-视图的更多相关文章

  1. Oracle 用户管理权限

    Oracle 用户管理权限 一.创建用户的Profile文件 SQL> create profile student limit // student为资源文件名 FAILED_LOGIN_AT ...

  2. Linux_用户管理&权限管理

    2017年1月11日, 星期三 Linux_用户管理&权限管理 1.  Linux用户管理&权限管理 终端的概念: tty  查看登录的终端 类型  user group    oth ...

  3. Ubuntu 用户管理/权限管理

    Ubuntu 用户管理/权限管理 小小记录一下 Ubuntu 下用户/权限管理常用的一些命令 用户管理 组管理 文件权限 给用户添加 sudo 权限 给用户添加 sudo 权限 首先先给出几个文件 / ...

  4. mysql用户管理,权限管理

    mysql权限 相关操作: 授予的权限分为四组: 列权限:和表中的一个具体列相关,例如:使用update 语句更新test表中name 列的值 表权限:和一个具体的表的所有数据相关,例如:使用 sel ...

  5. CRM、用户管理权限

    CRM目录结构 from django.shortcuts import HttpResponse,render,redirect from django.conf.urls import url f ...

  6. Oracle用户角色权限相关视图

    常用相关视图概述 DBA_SYS_PRIVS: 查询某个用户所拥有的系统权限 USER_SYS_PRIVS: 当前用户所拥有的系统权限 SESSION_PRIVS: 当前用户所拥有的全部权限 ROLE ...

  7. mysql 用户管理 权限控制

    添加用户 insert into mysql.user(Host,User,Password) values("%","shenen",password(&qu ...

  8. Linux用户管理 权限管理 内存管理 网络管理命令 (第四天)

    默认添加的用户会自动加入和用户名一样的组中su 切换用户查看当前登陆的用户: whoami id`查看当前用户属于哪个组:groupsgroupadd 组名 添加组groupdel 组名 删除组gre ...

  9. jenkins 添加用户管理权限

    一.前言 小组开会通知 想把jenkins 构建的权限给开发,这样的话效率会增加.运维也不必每次帮助开发去构建发布. 1.规划 jenkins 四个项目分别对应三个人负责.项目下的只负责 CI.UAT ...

随机推荐

  1. Leetcode#13. Roman to Integer(罗马数字转整数)

    题目描述 罗马数字包含以下七种字符:I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即 ...

  2. IIS短文件漏洞(搬运整理)

    0x01. IIS短文件漏洞的由来 Microsoft IIS 短文件/文件夹名称信息泄漏最开始由Vulnerability Research Team(漏洞研究团队)的Soroush Dalili在 ...

  3. Jquyer相册

    点击图片然后弹出相册列表,效果如下: html代码: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml&q ...

  4. Everything工具使用

    一.简介 Everything : Windows下的文件名搜索引擎 二.Everything工具下载 官方最新版本下载 Everything下载 三.Everything快捷搜索 Java*.doc ...

  5. 【batch】命令对比两个文件夹下的文件(增删改的对比)

    1.分别打印两个目录的结构 TREE D:\SOURCE /A /F >D:\SOURCE.TXT TREE D:\DEST /A /F >D:\DEST.TXT 2.然后使用工具/命令进 ...

  6. 十一.keepalived高可用服务实践部署

    期中集群架构-第十一章-keepalived高可用集群章节======================================================================0 ...

  7. Java Spring Boot VS .NetCore (四)数据库操作 Spring Data JPA vs EFCore

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  8. lxml.etree.HTML(text) 解析HTML文档

    0.参考 http://lxml.de/tutorial.html#the-xml-function There is also a corresponding function HTML() for ...

  9. 一起学爬虫——通过爬取豆瓣电影top250学习requests库的使用

    学习一门技术最快的方式是做项目,在做项目的过程中对相关的技术查漏补缺. 本文通过爬取豆瓣top250电影学习python requests的使用. 1.准备工作 在pycharm中安装request库 ...

  10. [原创]c# 岛2 小辅助~~~ 钓鱼 连击