Oracle数据库(一)概述、基础与简单操作
数据库:
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
数据库分类:
关系型数据库
非关系型数据库
数据库 |
特性 |
优点 |
缺点 |
关系型数据库 |
1、关系型数据库,是指采用了关系模型来组织数据的数据库; |
1、容易理解:二维表结构是非常贴近逻辑世界一个概念,关系模型相对网状、层次等其他模型来说更容易理解; |
1、为了维护一致性所付出的巨大代价就是其读写性能比较差; |
非关系型数据库 |
1、使用键值对存储数据; |
1、无需经过sql层的解析,读写性能很高; |
1、不提供sql支持,学习和使用成本较高; |
Oracle的常见版本
Oracle8、Oracle8i,i表示开始支持internet
Oracle9i,8的稳定版
Oracle10g,g表示Oracle开始基于网格计算
Oracle11g,Oracle10g的稳定版
Oracle12c,c表示云计算
Oracle用户
超级管理员 sys
次级管理员 system
普通用户 scott
大数据用户 (实例方案数据库) sh
Oracle基础
表空间:
Oracle数据库对数据的管理是基于表空间的概念来的, 各种数据的以及存储数据的优化, 实际上也是通过优化表空间来实现的
表空间分类:
永久表空间
用来存放表的数据, 视图, 存储过程或者函数等需要永久保存的对象的空间
临时表空间
用来存放查询结果等临时数据的空间
UNDO表空间
用于存放回滚数据, 已经删除数据等对象的表空间
Oracle基础数据类型
字符型:字符串
char(最大2000)--->固定长度,
nchar(最大1000, 支持unicode)--->固定长度
varchar2(最大4000),
nvarchar2(最大2000, 支持unicode)--->可变长度
oracle中字符串的表示使用单引号:'字符串'
数字类型:包括整数和小数
number(有效数字, 总位数)---最大11;
number
number(8)
number(5,2)---总位数5位, 小数点后2位
?float--->存储二进制类型的数据, 1-126位0.30103
日期类型:时间
date:取值范围:公元前4712年1月1号---公元9999年12月31号, 可以直接精确到秒
timestamp(时间戳: 更精确的数据, 可以精确到毫秒)
其它类型:大文本, 文件
blob: 最大4g, 以二进制的形式来存放数据
clob: 最大4g, 以字符串的形式存放
oracle运算符和表达式
表达式类似于java, 可以是常量, 可以是变量, 也可以是表中的一个字段
算术运算符(+ - * / 注意这个地方没有取余的运算符, 取余使用mod函数)
比较运算符(> >= < <= = <>/!=)
逻辑运算符(and or not)
字符串连接符(||)
sql语句四种类型:
数据定义语言(ddl)、
数据操作语言(dml)、
数据控制语言(dcl)
事务控制语言(tcl)。
data definition language(ddl)
ddl使我们有能力创建或删除表格。也可以定义索引(键),规定表之间的链接,以及施加表间的约束。
create database - 创建新数据库
alter database - 修改数据库
create table - 创建新表
alter table - 变更(改变)数据库表
drop table - 删除表
create index - 创建索引(搜索键)
drop index - 删除索引
data manipulation language(dml)
供用户实现对数据的追加、删除、更新、查询等操作。
select - 从数据库表中获取数据
update - 更新数据库表中的数据
delete - 从数据库表中删除数据
insert into - 向数据库表中插入数据
data control language(dcl)
grant - 授权
revoke - 撤销授权
deny - 拒绝授权
transaction control language(tcl)
savepoint - 设置保存点
rollback - 回滚
commit - 提交
oracle数据库约束:
定义规则
定义要输入的这个值是一个什么样的值, 或者是哪个范围内的值
作用: 确保完整性, 确保精确性
1, 非空约束
记录一条信息的时候如果用户名和密码没有被记录, 那么这条记录是没有实际意义的, 创建表的时候默认是可以为空的
2, 主键约束
确保表中每一行的数据的唯一性
非空, 唯一
一个表中只能有一个主键, 但是这个主键可以由多个字段(联合主键, 复合主键)来构成
可以在建表的时候写上设置为主键的关键字, primary key
或者写个表前约束设置
constraint 主键名称 primary key(字段名1, 字段名2)
3, 外键约束
唯一一个涉及两个表中的字段约束
插入数据的时候, 从表中的关联关系的字段, 要么是一个主表主键的关联, 要么是一个空值
4, 唯一约束(unique)
保证字段值的唯一性
与主键的区别: 唯一约束可以为空值, 唯一约束可以有多个
使用语句创建唯一约束只能写多条语句, 类似于insert into
5, 检查约束
作用: 使表当中的值更具有实际意义
比如定义一个值的范围
checks(sno>0 and sno<1000)
常用关键字
insert into---插入数据
delete---删除数据
update---更新一条数据
select---实际工作中尽量不要写*
where---给执行的语句加限制条件
in---在某个范围内
like(%, _)---模糊查询, %表示任意个字符, _表示单个字符
order by---(列名或者写索引:1, 2)
group by---按照某几列分组
having---分组之后的过滤
case...when...---类似于分支
set---设置某些属性
distinct---去除重复
between...and(闭合区间, 即包括前面的数, 也包括后面的数)
all---表示一个集合中所有的元素
any/some---表示一个集合中任意一个元素
通过SQLPLUS登录数据库
运行-sqlplus-用户名-密码
即可连接到数据库
使用plsql操作
查询
--查询数据库所有信息 select t.*, t.rowid from P_DEPT t select *, t.rowid from P_DEPT
--查询数据库中dname的值为SALES的数据的deptno信息 select t.deptno from P_DEPT t where t.dname='SALES'
*代表所有
t代表给数据的一个别名,或者说id,在查询较多时便于区分
t.rowid
where后面是查询条件
增加
--增加信息 insert into p_dept(deptno,dname,loc) ,'ceshi','ceshi'); commit; insert into p_dept ,'ceshi','ceshi'); commit; insert into p_dept(deptno) ); commit;
向表中增加信息,注意:表明后面的列名要和values后面的值对应起来,也可以表名后面不写列名,这样在values后面就要写全部的列的内容
更新 / 修改
--修改deptno为60的数据dname为ceshi2
删除数据
--删除数据 ; commit;
Oracle数据库常用命令整理:
--查询当前系统中的所有用户 select * from all_users --查当前用户下所有的表: select * from tab where tname not like '%$%' --查看当前用户下所有的表(详细信息) select * from user_tables --查数据库中所有的表 select * from all_tables --创建一个用户(进行这项操作的当前用户必须拥有DBA权限) create user 用户名 identified by 密码 --创建表空间 create tablespace ts_mytest logging datafile 'f:\oracle_xe_datafile\mytest.dbf' size 32m autoextend on next 10m maxsize unlimited --删除表空间 drop tablespace hoteldata including contents and datafiles; /* 用户分三种类型 sys;//系统管理员,拥有最高权限 system;//本地管理员,次高权限 scott;//普通用户,密码默认为tiger,默认未解锁 新建用户未授权全部为普通用户 */ --删除用户(级联) drop user testuser cascade --授予该用户权限(进行这项操作的当前用户必须拥有DBA权限) grant connect, resource to 用户名 --connect角色是授予最终用户的典型权利,最基本的 --修改会话 alter session --建立会话 create session --建立聚簇 create cluster --建立数据库链接 create database link --建立序列 create sequence --建立同义词 create synonym --建立视图 create view --resource角色是授予开发人员的 --建立聚簇 create cluster --建立存储过程 create procedure --建立序列 create sequence --建表 create table --建立触发器 create trigger --建立类型 create type --修改用户口令格式 alter user 用户名 identified by 密码 --锁定 / 解锁oracle用户 alter user 用户名 account unlock alter user 用户名 account lock --更改表的结构: )) --查询所有用户默认表空间 select username, default_tablespace from dba_users --查看某一个用户使用了哪些表和表空间 select t.table_name, t.tablespace_name from dba_all_tables t where t.owner='COLLEGE' --查询当前用户连接 select count(*) from v$session --查看当前用户权限 select * from session_privs; --添加主键 alter table test add constraint pk_test primary key (userid); --删除主键 alter table 表名 drop constraint 主键名 --查看当前数据库所有用户 select * from dba_users --添加外键 alter table 表2 add constraint 外键名 foreign key(表2中需要建外键的字段) references 表1 --删除外键 alter table test2 drop constraint fk_test2 --查询某个时间点的数据(可以用于恢复数据, 但是如果删除表中信息用的truncate, 就无法查询了) select * from t_person as of timestamp to_date('2017-04-21 21:30:00','yyyy-mm-dd hh24:mi:ss');
Oracle数据库(一)概述、基础与简单操作的更多相关文章
- [转]Oracle数据库ASH和AWR的简单介绍
在Oracle数据库中,有时我们可能会遇到这样的术语:ASH和AWR,那么它们是怎样产生的呢?它们的作用又是什么呢?本文我们就来介绍这一部分内容. 1.10g之前 用户的连接将产生会话,当 ...
- 吴裕雄--天生自然 oracle学习笔记:oracle理论学习详解及各种简单操作例子
1. 数据库的发展过程 层次模型 -->网状模型 -->关系模型 -->对象关系模型 2. 关于数据库的概念 DB:数据库(存储信息的仓库) DBMS:数据库管理系统(用于管理数据库 ...
- Oracle数据库之SQL基础(一)
主要内容:用户与表空间:表与约束:查询语句. 一.概述 Oracle安装:访问官网,下载 二.用户与表空间 在安装Oracle时在开始菜单里可以用sql puls登录oracle. ★1.系统用户 s ...
- Oracle 数据库中日期时间的插入操作
Oracle 中如何插入日期时间类型的数据,首先为了演示, 新建数据表如下 create table t( mydate date); 插入日期时间 SQL> insert into t val ...
- Oracle数据库安装完成之后的启动操作
由于是菜鸟,在 完成Oracle数据库的安装之后,不知道该怎么启动.在经过一番折腾之后明白了其中的一些道理,总结如下: 其实Oracle数据库和Mysql数据库的启动都是相同的原理. Mysql数据库 ...
- Python使用cx_Oracle模块操作Oracle数据库--通过sql语句和存储操作
https://www.jb51.net/article/125160.htm?utm_medium=referral Python使用cx_Oracle调用Oracle存储过程的方法示例 http ...
- mysql、sql server、oracle数据库分页查询及分析(操作手册)
1.mysql分页查询 方式1: select * from table order by id limit m, n; 该语句的意思为,查询m+n条记录,去掉前m条,返回后n条记录.无疑该查询能够实 ...
- Oracle数据库之SQL基础(二)
一.约束 ❤ 1.约束概述 约束作用: (1)定义规则 (2)确保完整性:包括数据的精确性.可靠性.以确保数据不会出错,或者尽量减少出错. 约束的类型: (1)非空约束 (2)主键约束 (3)外键约束 ...
- Oracle 数据库基本操作——实用手册、表操作、事务操作、序列
目录: 0. 参考链接与参考手册1. oracle 实用(常用操作)指令2. 数据库基本操作语法 a) 表操作 1)创建表 2)更新表 3)删除表 4)查询 b) 事务操作 c) 序列操作 1)创建序 ...
随机推荐
- auxblogcms1.0.6|代码审计
这周的审计任务,两天前的任务呀~拖延症呀~ 这次审计一个博客----auxblogcms1.0.6,网上也有所记载,我下面会做个总结. axublog是一款php个人博客系统,小巧强大的PHP+MyS ...
- PAM - 可插拔认证模块
1.为什么要使用PAM 为了让用户更合理地使用系统,应用程序或服务(如sshd.login.su.password.ftp等)不可避免地需要对用户进行安全认证,若按照各自的规则去配置非常耗费时间和精力 ...
- 《java.util.concurrent 包源码阅读》15 线程池系列之ScheduledThreadPoolExecutor 第二部分
这篇文章主要说说DelayedWorkQueue. 在ScheduledThreadPoolExecutor使用DelayedWorkQueue来存放要执行的任务,因为这些任务是带有延迟的,而每次执行 ...
- REMOTE_ADDR,HTTP_CLIENT_IP,HTTP_X_FORWARDED_FOR获取客户端IP
话不多说,先上代码: /** * 获得用户的真实IP地址 * * @access public * @return string */ function real_ip() { ...
- 安卓自定义控件(二)BitmapShader、ShapeDrawable、Shape
第一篇博客中,我已经Canvas.Paint.Shader.Xfermode这些对象做了总结,而现在这篇文章主要介绍BitmapShader位图渲染,Xfermode如何实际应用,还有形状的绘制.不过 ...
- CCF认证之——相反数
这道题目非常简单! #include<iostream> using namespace std; int main() { ],n,count=; cin >> n; ; i ...
- 「JavaScript」手起刀落-一起来写经典的贪吃蛇游戏
回味 小时候玩的经典贪吃蛇游戏我们印象仍然深刻,谋划了几天,小时候喜欢玩的游戏,长大了终于有能力把他做出来(从来都没有通关过,不知道自己写的程序,是不是能通关了...),好了,闲话不多谈,先来看一下效 ...
- 初识NumPy库-基本操作
ndarray(N-dimensional array)对象是整个numpy库的基础. 它有以下特点: 同质:数组元素的类型和大小相同 定量:数组元素数量是确定的 一.创建简单的数组: np.arra ...
- PHP面向对象之const常量修饰符
在PHP中定义常量是通过define()函数来完成的,但在类中定义常量不能使用define(),而需要使用const修饰符.类中的常量使用const定义后,其访问方式和静态成员类似,都是通过类名或在成 ...
- 快速上手使用Maven
maven的相关命令 mvn archetype:create :创建 Maven 项目 mvn compile :编译源代码(编译到target文件夹中) mvn test-compile :编译测 ...