0%

oracle数据库实验整理

oracle数据库实验整理

一门0.5学分的选修课,学一学另一种著名的关系型数据库oracle的一些基本操作。

  • TNS数据库监听端口1521
  • MTS端口2258 ‘Oracle Services for Microsoft Transaction Server’ 的端口
  • HTTP监听端口9090

千万别用8080!会和burp冲突,当时打比赛的时候直接一键删除了oracle,结果重装的时候差点被吓死。

https://blog.csdn.net/weixin_43620238/article/details/84497520

用管理员身份在cmd里删除注册表后才叫彻底删除。

重装后参考了这篇博客https://blog.csdn.net/qq_40391559/article/details/88854961,把http端口改成了9090。

1
sc delete OracleServiceXE

创建用户

1
2
3
create user root identified by root;
设置权限
grant dba to root;

无用户名登录

1
2
sqlplus / as sysdba;
sqlplus sys/nolog as sysdba;

登录

1
2
3
4
sqlplus username/pwd@ip:port/orcl as sysdba
as sysdba是以系统管理员的身份来登录
普通用户:
sqlplus username/pwd

dba:Database Administrator数据库管理员

1
select name,dbid from v$database;查看数据库名

developer图形化界面连接数据库:

将主机名修改为localhost即可。

image-20211014152202324

oracle不会像mysql一样每一条都执行,需要在最后手动执行commit;指令进行提交。(叫提交修改)

oracle表空间

从逻辑的角度来看,一个数据库(database)下面可以分多个表空间(tablespace);一个表空间下面又可以分多个段(segment);一个数据表要占一个段(segment),一个索引也要占一个段(segment )。 一个段(segment)由多个 区间(extent)组成,那么一个区间又由一组连续的数据块(data block)组成。这连续的数据块是在逻辑上是连续的,有可能在物理磁盘上是分散。

那么从物理的角度上看,一个表空间由多个数据文件组成,数据文件是实实在在存在的磁盘上的文件。这些文件是由oracle数据库操作系统的block 组成的。

image-20211223214023277

查看表空间:

1
select * from v$tablespace;

image-20211027160409438

image-20211027160353930

可以发现是能对应上的。

查看每个表空间有哪些数据文件:

1
desc dba_data_files;

查看详细数据文件:

1
select file_name,tablespace_name from dba_data_files;

新建表空间

https://blog.csdn.net/starnight_cbj/article/details/6792364

修改字符集

查看当前字符集

1
select userenv('language') from dual;

实验要求要修改为ZHS16GBK,不知道为啥要往小了变。

create表

创建一个外键约束

1
2
3
4
5
6
CREATE TABLE child_table (
...
CONSTRAINT fk_name
FOREIGN KEY(col1, col2,...) REFERENCES parent_table(col1,col2)
ON DELETE [ CASCADE | SET NULL ]
);

ON DELETE CASCADE:如果父表中的一行被删除,那么子表中引用被删除行的所有行都将被删除。

ON DELETE SET NULL:如果父表中的一行被删除,那么对于外键列,子表中引用被删除行的所有行将被设置为NULL。

一个表可以有多个外键约束

drop表

1
drop table countries;

删表所有内容

1
delete from abc;

查询当前用户所有表:

1
select * from all_tables where owner='OT'

insert的时候前后加上

  1. REM INSERTING into database1.”Users”

  2. SET DEFINE OFF;

    的原因:默认情况下,sql Plus处理’&’作为开始替换字符串的特殊字符。这可能会导致运行脚本的问题,而这些脚本恰好包含’&’由于其他原因:

    如果您知道您的脚本包含(或可能包含)包含“&”的数据字符,并且您不想像上述那样执行替换行为,然后在运行脚本时使用set define off关闭该行为:

oracle tips

在Oracle里,表的别名不能用as,列的别名可以用as

oracle与mysql,sql server的区别

oracle多了一个实例的概念,他是物理内存里的数据结构,它由操作系统的多个后台进程和一个共享的内存池所组成。

如果我们想存取数据库上的数据,需要通过oracle实例。

oracle安全部分

安全和最小权限原则