Oracle
- 关系型数据库
- 关系
- 元组
- 属性
- 域
- 关键词
数据库实例的开启 启动实例 加载数据库 打开数据库
startup
nomount 开启实例
mount 开启实例 加载数据库 但是数据库还是一个关闭的状态
open 启动加载
force 强制终止实例并重启数据库实例
数据库实例的启动只有sys有权限
insert
update
delete
表中的数据库就会发生改变事务提交工作commit 提交之后 之前所做的所有操作才会生效
sys 超级系统管理员
用户切换
conn 用户名/密码:普通用户的切换
sys用户切换:
conn 用户名/密码 as sysdba;
显示用户:show user;
命令
set linesize 长度 设置每行显示的长度
set pagesize 行数 设置一页之中显示多少行
查看表结构desc 表名称
常用的数据类型
字符串类型: varchar2(长度)=MySQL中的varcgar(长度)
数值型: number或者number(长度) 整数
number(总位数,小数位数) 小数
date 日期
连接符 || :把字符串和表中查询的数据做一个连接
格式一:select '编号是:'||empno ||'的雇员,姓名是:'||ename||'工作是:'||job
from emp
格式二:select 列名 as "别名" from 表名;
去重复 distinct
select distinct 列名 from 表名;
别名 empno 编号
select empno 编号 from emp;
SQL语言的分类
- DQL 数据库查询语言 select 语句
- DML 数据库操作语言 insert update delete 语句
- DDL 数据库定义语言 create alter drop 语句
- DCL 数据控制语言 授权grant 收回权限 revoke
- TCL 事务控制语言 commit 提交 rollback 回滚或者撤销操作 savepoint 设置保存点
用户模式
目的:方便管理每个用户所包含的数据库对象(表,索引,视图)就会引入模式概念
模式: 就是一个数据库对象的集合 模式的名字和用户的名字是相同的
一个用户拥有一个模式 scott用户---scott模式---dept emp salgrade bonus
查询操作
select {[distinct]列名...}
from 表名
where 选择条件
group by 列名
having 选择条件
order by 列名
all :只有与所有元素比较值都为ture 才返回数据行 (同时满足这些条件)
select 列名 from 表名 where 列名 比较运算符 all(值1,值2...)同时满足括号里的值
字符串和日期条件都要用单引号 ' '
判断为空 is null 判断不为空 is not null
not 取反 他是针对条件的结果进行取反操作,把真的变为假,把假变为真
select 列名 from 表名 where not(条件);
指定范围查询的过滤语句 between 开始值...and ....结束值
select * from 表名 where 列名 between 最小值...and ....最大值
oracle 中对数据大小写严格区分
列表搜索条件
在列表内 :where 列名 in (值1,值2)
不在列表内 where 列名 not in (值1,值2)
排序查询
asc 升序 desc 降序 order by 子句在select 语句的结尾
分组查询
select 列名 聚合函数//必须是group by后面的列名
from 表名
group by 列名//依照某个列进行分组
在分组过程中 如果有聚合函数当条件 可以放在having 后
多表关联查询
内连接的两种表连接的方式和MySQL的写法 是一模一样的
where:
select 表名.列名//
from 表1,表2,表3
where 表名1.列=表名2.列 and 表名2.列=表名3.列;
on:
select
from 表名1 inntr join 表名2
on 表名1.列=表名2.列 inner join 表名3 on 表名2.列=表名3.列
外连接:至少会返回一个表的所有
左连接 left outer join//返回左表所有行
右连接 right outer join //返回右表所有行
完全连接 full outer join //返回2个表所有行
自然连接 natural join
会自动匹配两个表中具有相同的列