oracle粗略使用

first:自己的感慨,在docker下使用oracle,真是一种很不愉快的体验, 不能说是不愉快,只能说不习惯:

1下载镜像

docker pull wnameless/oracle-xe-11g

这是使用docker下载一个最流行的oracle11g镜像,只是下载到本地,其他什么也不做

2把镜像运行成容器

docker run -d -p 49160:22 -p 49161:1521 wnameless/oracle-xe-11g

这是使用本地的49160端口映射docker容器的22端口,-d是把容器扔到后台

3登录

ssh root@localhost -p 49160
password: admin

上面的命令是连接容器的命令,输入密码admin

4,进入容器切换身份

su oracle
password:admin

5,一系列登录操作

$sqlplus /nolog
SQL>start
SQL>conn system/oracle as sysdba

没有密码进行登录,然后start开启数据库实例,最后使用system账户进行登录,

吐槽一句该版本的数据库里面没有scott用户,系统也没有vim,使用的源也是外国的源,为了添加soctt用户,下载一个vim使用了一个小时。我也是醉了!

命令:

1,解锁用户

alter user soctt account unlock;
2,修改密码
alter user soctt identified by socct;
3,socttd终于能登录
sqlplus soctt/soctt
4,.查看当前用户的表:
select table_name from user_tables;
5.查看所有用户的表名:
select table_name from all_tables;
6、查看当前用户拥有的角色权限信息:
select * from role_sys_privs;
7、查看当前用户的详细信息:
select * from user_users;
8、查看当前用户的角色信息:
select * from user_role_privs
9查看所有用户,使用管理员登录
select * from dba_user;
select * from all_users;
select * from user_users;
10查看用户系统权限
select * from dba_sys_privs;
select * from user_sys_privs;
11.查看用户对象权限:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;


在弱弱的吐槽一句,oracle数据库一般都是用户的概念,没有数据库的概念,这对我之前学习的mysql真的有些不一样!表示小小的脑袋不够用啦!

使用

~~幼儿园级别

普通用户连接: Conn scott/scott
超级管理员连接:Conn system/oracle as sysdba
Disconnect; 断开连接
Save ./1.txt 把 SQL 存到文件
Ed ./.txt 编辑 SQL 语句
@ ./1.txt 运行 SQL 语句
Desc emp; 描述 Emp 结构
Select * from tab; 查看该用户下的所有对象
Show user; 显示当前用户
如果在 sys 用户下:查询 Select * from emp; 会报错,原因:emp 是属于 scott,所以此时必
须使用:select * from scott.emp;

难理解的

NVL函数的格式如下:NVL(expr1,expr2)
含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。
例如:
SQL> select ename,NVL(comm, -1) from emp;


NVL2函数的格式如下:NVL2(expr1,expr2, expr3)
含义是:如果该函数的第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第三个参数的值。SQL> select ename,NVL2(comm,-1,1) from emp;

表的连接

内连接取交集
外连接(左连接,右连接)
左连接左边的全取
右连接右边的全取

数据库的集合操作

UNION:并集,所有的内容都查询,重复的显示一次
· UNION ALL:并集,所有的内容都显示,包括重复的
· INTERSECT:交集:只显示重复的
· MINUS:差集:只显示对方没有的(跟顺序是有关系的)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值