Docker中安装Oracle11g和oracle增删改查

Docker中安装Oracle11g数据库

Docker 安装oralce11g
1.拉取oracle_11g镜像

docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

2.创建oracle11g容器

docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

3.查看oracle11g容器是否创建成功

docker ps -a

4.启动oracle11g容器

Docker start oracle11g

5.进入oracle11g容器进行配置

docker exec -it oracle11g bashsu roothelowin

6.切换到root用户下进行配置
密码为:helowin
7、编辑profile文件配置ORACLE环境变量
vi /etc/profile

8、最后添加以下3行配置

export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2export ORACLE_SID=helowinexport PATH=$ORACLE_HOME/bin:$PATH

保存 ::wq
让配置生效:source /etc/profile
9、创建软连接

ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

10、切换到oracle 用户
su oracle

11、登录sqlplus并修改sys、system用户密码
sqlplus /nolog
conn /as sysdba

12、修改sys、system用户密码并刷新权限

alter user system identified by oracle;alter user sys identified by oracle;ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

退出:exit;
13、查看一下oracle实例状态
lsnrctl status

Oracle 11g添加用户,并授权

docker exec -it oracle11g bash – 进入数据库

su root – 切换root,密码helowin
su – oracle 切换oracle用户
登录sqlplus并添加用户
sqlplus /nolog
conn /as sysdba

创建用户
create user sa identified by root; – 创建用户sa
grant connect,resource,dba to sa; – 对于普通用户:授予connect, resource权限。
REVOKE DBA FROM sa; – 取消dba授权
对于DBA管理用户:授予connect,resource, dba权限
alter user sa identified by oracle; –修改用户密码

用nacivat连接oracle数据库

主机:IP地址
端口:1521
服务名:helowin(一定要填写helowin)
密码:oracle(第12步设置的密码)

oracle数据库,创建students数据表,Oracle数据库创建100万条数据

–创建students数据表,创建1000条数据
create table OUTLN.Students as
select rownum as id,
to_char(sysdate + rownum/24/3600, ‘yyyy-mm-dd hh24:mi:ss’) as inc_datetime,
CONCAT(‘zhang’,rownum) as studen_name,
CONCAT(‘183’,trunc(dbms_random.value(00000000, 99999999))) as stu_number,
trunc(dbms_random.value(0, 100)) as stu_age,
dbms_random.string(‘x’, 20) random_string
from dual
connect by level <= 1000000;

– 查询表
select * FROM OUTLN.students WHERE ID<10;
select * from students where ID=(select max(id) from students);

– SQL 语句查询 Oracle 数据库中的所有库
SELECT tablespace_name FROM dba_tablespaces;

– SQL 语句查询某个数据库中的所有表
SELECT table_name FROM user_tables;

– 修改数据
update students set id=999 where ID=2;

– 插入语句
insert into OUTLN.students(ID,INC_DATETIME) values(99999,‘2022-06-01 19:57:44’);

– 删除数据
delete from students where id=999;
drop table OUTLN.students;

– 删除表
drop table myTestTable;

– 删除库
drop database test1;