--DML(Data Manipulation Language)
--insert关键字 插入
---语法1、元祖值式插入(一次插入一条记录)
---格式:insert into 表名(列名1,列名2...列名n) values(值1,值2...值n)
insert into emp(ename,empno) values('xiaoqiang',7100);
---注:当插入一条包含所有列的数据时,可以省略表后面的字段。
insert into emp values(6682,'hong','clerk',9527,sysdate,0,null,40);

---语法2、查询结果式插入
---格式:insert into 表名 子表查询语句
insert into emp_temp (select * from emp where deptno=20);
---创建一个emp的临时复制表
create table emp_temp as select * from emp where 1=2;

--delete关键字 删除表中的数据
--语法:delete [form] 表名 [where 条件]
select * from emp_temp;
delete emp_temp where empno = 7566;
--注:delete 表民 删除的是整个表的数据,表此时是空表
--如果想从表中删除所有的行,丌要使用delete,可使用truncate table 语
--句,完成相同的工作,但是速度更快(没有事务)。

--update关键字 更新表中的数据
--语法:update 表名 set 列名1=值1,列名2=值2,...列名n=值名n [where 条件]
update emp_temp set sal=800 where empno=7369;

--事务(Transaction) 保证数据的完整性,不可嵌套
--是一个操作序列。这些操作必须同时发生,是不可分割的,是数据库环境中的逻辑工作单位。
--例如:转账时必须保证a转出钱与b收到钱同时发生,不能分割开;
--开启事务:一条DML(insertm,update,delete)语句
--关闭事务:1、回退:用户使用rollback;系统奔溃或断电时自动回退
      2、提交:用户使用commit语句
          用户使用DDL(create、alter、drop)语句事务自动提交
          用户正常断开连接时,自动提交
select * from emp_temp;
update emp_temp set sal=sal-100 where empno=7369;
update emp_temp set sal=sal+100 where empno=7369;

---commit关键字 提交事务
---rollback关键字 回退事务(事务不提交)
---savepoint 存档点 可设置存档点,回退时可选择回退(rollback to)到哪个存档点,此时事务并未关闭

update emp_temp set sal=sal-100 where empno=7369;

savepoint sp01;
update emp_temp set sal=sal-100 where empno=7369;
rollback to sp01;
commit;

select * from emp_temp;

--事务的ACID属性
---原子性(Atomicity)
---一致性(consistency)
---隔离性(isolation)
---持久性(durability)

--用户管理 DCL
---1、创建一个用户
create user xiaoming identified by 123456;
---2、修改账户的密码
alter user xiaoming identified by 333777;
---3、删除一个账户
drop user xiaoming;
---4、让一个用户的密码失效
alter user xiaoming password expier;
---5、锁定、解锁一个账户
alter user xiaoming account lock;
alter user xioaming account unlock;
--给用户授权 grant
---1、允许用户登录
grant create session to xiaoming;
---2、允许操作表
grant all on scott.emp to xiaoming;
--取消用户的权限 revoke
revoke all on scott.emp to xiaoming;

--序列 sequence
--oracle 专有的对象,产生一个自动递增的数列
--创建序列的语法 :create sequence 序列名 increment by 递增值 start with 开始值
create sequence seq_emp_temp
increment by 1
start with 1
---序列的使用
---nextval 下一个值
---currval 最近的值
insert into emp_temp (empno,ename) values
(seq_emp_temp.nextval,'lisi');
select * from emp_temp;
select seq_emp_temp.nextval from dual;
select seq_emp_temp.currval from dual;

--view 视图 (建议名字以v$_开头) 一种不占用物理空间的虚表
---作用:将一些复杂的sql语句设置为视图,便于chaxun,建议只用于查询
---语法:create [or replace] view 视图名 as 子查询 [with read only]
---注:1.视图可以由物理表或视图产生
---       2.产生视图的表称为基表
   3.视图与基表是同一份数据
   4.不能对多表的数据通过视图修改
---使用视图需要注意
1.一般来讲,只有重复出现非常多次的SQL语句,才会创建视图
2.数据库迁移,视图也得随之迁移,否则在新数据中是不能用的
3.创建视图时,尽量不要带or replace
---先用sys账户给scott授权,再切回scott账户操作
grant create view to scott;
create view v$_emp as select ename from emp;
---查询视图与查询表一样
select * from v$_emp;
---删除视图
drop view v$_aaa;

--DDL(Data definition language)
---1.create关键字 创建数据库的对象(表、视图、序列、账户等)
---语法格式1:creat table 表名 (列名1 数据类型,列名1 数据类型 ...列名n 数据类型)
---语法格式2:creat table 表名 as 子查询
create table grade (gname varchar2(30),gra number(10,0));
select * from grade;
insert into grade(gname,gra) values('小红',99);
---2.alter 关键字 修改数据库的对象(表、视图、序列、账户等)
---语法格式1:alter table 表名 add(列名 数据类型)===> 添加列
---语法格式2:alter table 表名 modify(列名 数据类型)===>修改列
---语法格斯3:alter table 表名 drop(列名) ===> 删除列
alter table grade add(gender varchar2(3));
alter table grade modify(gender varchar(10));
alter table grade drop(gender);
---3.drop关键字 删除数据库的对象(表、视图、序列、账户等)
---语法格式:drop table 表名
drop table grade;

--数据类型
---数据类型分类:
1.number(x,y) 数字类型,x表示最大长度,y表示精度
2.varchar2(x) 可变字符串,x表示最大长度
3.char(x) 定长字符串,x表示最大长度
4.long 长字符串,最大2G
5.Date,日期(年月日时分秒)
6.TIMESTAMP 时间戳,精确到微秒

oracle学习笔记第三天的更多相关文章

  1. oracle学习笔记(三)oracle函数

    --oracle 函数 --lower(char):将字符串转换为小写格式 --upper(char):将字符串转换为大写格式 --length(char):返回字符串的长度 --substr(cha ...

  2. oracle学习笔记(三)

    索引: drop table test1 purge; drop table test2 purge; drop table test3 purge; drop table t purge; crea ...

  3. Oracle 学习笔记(三)

    1.插入有日期的表,使用 to_date 函数 to_date('1992-12-07', 'yyyy-mm-dd'); 2.使用update更新语句的时候,既可以使用表达式或者数值直接修改数据,也可 ...

  4. oracle学习笔记(三) DCL 数据控制语言与 DDL 数据定义语言

    DCL 数据控制语言 Data control language 之前说过的授权和收权利语句 grant, revoke DDL 数据定义语言 Data define language create ...

  5. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  6. Django学习笔记(三)—— 型号 model

    疯狂暑期学习 Django学习笔记(三)-- 型号 model 參考:<The Django Book> 第5章 1.setting.py 配置 DATABASES = { 'defaul ...

  7. oracle学习笔记第一天

    oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字   1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...

  8. Oracle学习笔记—数据字典和常用命令(转载)

    转载自: oracle常用数据字典和SQL语句总结 Oracle常用命令大全(很有用,做笔记) 一.Oracle数据字典 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的.比如一 ...

  9. PyQt4入门学习笔记(三)

    # PyQt4入门学习笔记(三) PyQt4内的布局 布局方式是我们控制我们的GUI页面内各个控件的排放位置的.我们可以通过两种基本方式来控制: 1.绝对位置 2.layout类 绝对位置 这种方式要 ...

随机推荐

  1. 在visual studio 2013中编译Lua5.3.1

    注:以下是基于 别人的教程或笔记来操作并按照自己的操作记录的纯文字版编译和hello lua过程. 原图文版链接: 原文链接 1.创建空的解决方案: 文件->新建->项目->其他项目 ...

  2. Python基础【第二篇】

    一.Python的标准数据类型 Python 3中主要有以下6中数据类型: Number(数字).String(字符串).List(列表).Tuple(元组).Sets(集合).Dictionary( ...

  3. php 两变量值互换 方法

    //方法一:$a ="abc";$b="def"; $a = $a^$b;$b = $b^$a;$a = $a^$b; //方法二:list($a, $b)= ...

  4. selenium+python-unittest多线程执行用例

    前言 假设执行一条脚本(.py)用例一分钟,那么100个脚本需要100分钟,当你的用例达到一千条时需要1000分钟,也就是16个多小时...那么如何并行运行多个.py的脚本,节省时间呢?这就用到多线程 ...

  5. oracle 列行转换

    1.列转换  1:每个字母转成一行 SELECT SUBSTR(A.COLUMN1, LEV, 1) COLUMN1FROM (     SELECT 'AABDC' COLUMN1 FROM DUA ...

  6. Redis实战 - 1.String和计数器

    在.NET Core 项目中操练String 使用 StackExchange.Redis 访问 Redis static void Main(string[] args) { using (Conn ...

  7. matplotlib figure图像-【老鱼学matplotlib】

    如果我们想要显示多个图像,有点类似多窗口显示图像这个概念,则就会用到plt.figure() 直接上例子: import numpy as np import pandas as pd import ...

  8. 在vue里添加好看的lottie动画 (^_^)

    为什么用lottie ★~★ 1.能让你的程序不那么单调 2.能让一些有审美强迫症的同学好受一点 3.网上有丰富的资源 点我进入lottie资源网站 引入lottie库 (>.<) 在vu ...

  9. Unix历史及相关概念回顾

    欢迎来到Unix的世界 很多人都用了很多年的Unix(其实更熟悉的是叫Linux),也接触到Unix世界中的各种概念,比如GCC.GNU.BSD.POSIX.GPL等等,也大都知道一些传奇的如雷贯耳的 ...

  10. 【转】傅盛:一家公司最大瓶颈就是CEO

    创业之路,一经踏上,即永无止境.当然,对于初创期的CEO而言,还是有一些方法论可循. 来源 | 盛盛GO(ID:fstalk) 文  | 傅盛 经常有创业者问我,如何当好创业公司CEO,或如何创业,我 ...