Oracle 学习笔记 (一)

1、 前言

需要资料(md文件+Oracle安装教程+卸载教程+Oracle安装包)的童鞋,请底下留言!

本次学习笔记,是基于 Oracle 11g 版本(64位)的,在 Windows 8.1 环境下的。

连接数据库的软件是Navicat,命令窗口以sqlplus 方式、使用java的jdbc方式等。

2、 Oracle 简介

百度百科

在这里插入图片描述

2.1 连接到 Oracle 数据库

连接成功的前提是:

  1. Oracle 正确安装完成;
  2. Oracle 服务正常启动;
  3. Oracle 监听服务正常启动。

2.1.1 sqlplus 方式连接和常用操作(上篇:连接)

现在,假设您已经安装好了Oracle数据库,现在启动服务。

第一步,【win】 + 【r】组合键打开services.msc服务界面;

第二步,启动Oracle服务和监听;

在这里插入图片描述

第三步,使用 sqlplus 方式连接到 Oracle 数据库;

其语法为:

sqlplus 用户名/密码

注意:我这里使用 sys 用户进行连接,使用 sysdba 角色。Oracle 数据库安装后,就会自动生成 SYS 和 SYSTEM 这两个用户:

  1. sys 用户是超级管理用户,具有最高权限,具有 sysdba 角色,具有 create database 的权限。
  2. system 用户是管理操作员,权限也很大,具有 system 角色,不具有 create database 的权限。

sys 用户默认密码:manager (我本机上的密码已经更改为 123456)

system 用户默认密码:change_on_install,具有 sysoper 角色

C:\Users\Feng>sqlplus sys/123456 as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Thu Feb 6 12:01:38 2020

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>

这时就连接到 Oracle 数据库了。怎么样,是不是很简单?

2.1.2 sqlplus 方式连接和常用操作(下篇:常用操作)

sql/plus 常用命令

命令 语法 描述
conn、connect conn 用户名/密码 as sysdba 连接不成功默认为断开,重新连接
disc disc 断开与当前数据库的连接
passw passw 修改用户的自身的密码;
show user show user 显示当前用户
exit exit 断开与数据库连接,同时退出sql/plus

【案例】

连接数据库(指定用户、角色)

SQL> conn sys/123456 as sysdba
Connected.

断开当前连接(使用查询表空间的sql语句测试,发现已经断开连接)

SQL> disc
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select * from v$tablespace;
SP2-0640: Not connected
SQL>

修改自身密码(需要输入原密码,并确认新密码)

SQL> passw
Changing password for SYS
Old password:
New password:
Retype new password:
Password changed
SQL>

使用 sys 的 sysdba 角色修改某个用户的密码

alter user 用户名称  identified by 新的密码 

查看当前用户

SQL> show user
USER is "SYS"

断开与数据库连接并退出 sql/plus

SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

C:\Users\Feng>

文件操作命令

命令 描述
start 和 @ 运行本地的 sql 脚本(文件中的 sql 语句)
edit 编辑指定的 sql 脚本
spool 将命令行的内容输出到指定的文件中去;例如: spool D:/demo.sql; 结束: spool off;
& 交互式命令,定义一个变量,执行时需要用户输入; 例如: select * from emp where ename='&name’;
linesize 设置显示行的宽度;默认为80个字符。查看:show linesize;设置:set linesize 值
pagesize 设置每页显示的行数,默认为14行。查看:show pagesize; 设置:set pagesize 值;

2.2.1 Navicat 连接方式

第一步,创建连接;

在这里插入图片描述

第二步,填写信息;

在这里插入图片描述

在这里插入图片描述

第三步,测试;

在这里插入图片描述

2.3.1 Java 的 JDBC 连接方式

与使用 JDBC 连接 Mysql 基本一致,需要注意的是,应该使用 Oracle 的数据库连接驱动。

这个我就不写了,有兴趣的朋友看看这个博客:java 使用 JDBC 连接Oracle

2.2 表空间

2.2.1 表空间的概念

表空间是数据库中最大的逻辑单位,一个Oracle数据库至少会有一个表空间,就是名SYSTEM系统表空间

在使用 sqlplus 方式连接到数据库后,查看表空间:

SQL> show user;
USER is "SYS"
SQL> select * from v$tablespace;

       TS# NAME                           INC BIG FLA ENC
---------- ------------------------------ --- --- --- ---
         0 SYSTEM                         YES NO  YES
         1 SYSAUX                         YES NO  YES
         2 UNDOTBS1                       YES NO  YES
         4 USERS                          YES NO  YES
         3 TEMP                           NO  NO  YES
         6 EXAMPLE                        YES NO  YES

8 rows selected.

2.2.2 各个表空间的含义

表空间 含义
SYSTEM 用于存放Oracle系统内部表和数据字典的数据,不建议用户创建表、视图等对象存放在system表空间中
SYSAUX 存放Oracle系统内部的常用样例用户的对象,辅助系统的表空间
UNDOTBS1 撤销表空间,用于存放撤销信息的表空间
USERS 用户使用的表空间,可以创建表,索引,视图
TEMP 是Oracle系统用于存放临时数据的表空间
EXAMPLE 是Oralce存放案例的表空间

2.2.3 表空间的增删改

创建表空间

需要指定表空间名,我这里表空间名为feng2020,然后是数据文件位置'D:\feng2020.dbf’,然后是表空间的大小 100m。另外,我有2个之前就创建的表空间,FFFJS 。.dbf是指数据库文件,.dmp是备份数据库文件,还有就是创建表空间,必须是 sys 用户,其他用户没权限。

SQL> create tablespace feng2020 datafile 'D:\feng2020.dbf' size 100m;

Tablespace created.

SQL> select * from v$tablespace;

       TS# NAME                           INC BIG FLA ENC
---------- ------------------------------ --- --- --- ---
         0 SYSTEM                         YES NO  YES
         1 SYSAUX                         YES NO  YES
         2 UNDOTBS1                       YES NO  YES
         4 USERS                          YES NO  YES
         3 TEMP                           NO  NO  YES
         6 EXAMPLE                        YES NO  YES
         8 FF                             YES NO  YES
         9 FJS                            YES NO  YES
        10 FENG2020                       YES NO  YES

9 rows selected.

修改表空间的大小

将表空间feng2020 的大小设置为 200m

SQL> alter database datafile 'D:\feng2020.dbf' resize 200m;

Database altered.

修改表空间的读写状态

设置表空间为只读;设置表空间可读、写。

SQL> alter tablespace feng2020 read only;

Tablespace altered.

SQL> alter tablespace feng2020 read write;

Tablespace altered.

删除表空间

我这里就不删除了,语法如下:

drop tablespace 表空间名;

2.3 用户管理

给表空间创建用户

sys 用户 和 system 用户都拥有权限。刚创建的还热乎的用户,是不能登录的,没有登录的权限(关于授权,请看 2.4 Oracle 的权限)。

这里创建用户名为 user_feng2020 ,密码为 123456 ,表空间为 feng2020 的一个用户。

SQL> create user user_feng2020 identified by 123456 default tablespace feng2020;

User created.

SQL> conn user_feng2020/123456;
ERROR:
ORA-01045: user USER_FENG2020 lacks CREATE SESSION privilege; logon denied


Warning: You are no longer connected to ORACLE.

查看所有用户

查询所有用户的用户名:

SQL> select USERNAME from dba_users;

更改用户密码

将用户 user_feng2020 的密码更改为 123456

SQL> alter user user_feng2020 identified by 123456;

User altered.

删除用户

在删除用户时,如果该用户已经创建了表,那么要加上 casecade,进行级联删除。还有就是自己不能删除自己。我这里就不删除了,语法如下:

drop user 用户名 cascade;

2.4 Oracle 的权限

2.4.1 概念

Oracle 中的权限分为 2 种:

  1. 系统权限:是用户对数据库访问的相关权限,有大约 140 多个。比如,create session连接到数据库、create table 创建表、create view 创建视图、create sequence 创建序列等。
  2. 对象权限:是指用户对其他用户的数据对象的操作权限。比如,select/insert/update/delete/all等操作。

在对象权限中,有几个常用角色(具有名称的一组权限的组合),比如connect、resource、dba等。

角色 描述
connect 临时用户,就可登录(只有登陆的权限)
resource 更为可靠或正式的用户,可以创建表。删除表,视图等的操作
dba 数据库管理员角色,拥有管理数据库最高权限,一般不会授权于用户

2.4.2 授权语句

权限语法一览

语法 含义
grant crate session to 用户名; 给用户分配连接权限
grant create table to 用户名; 给用户分配建表权限
grant unlimited tablespace to 用户名; 分配表空间无限权限
grant create sequence to 用户名; 给用户分配创建序列权限
grant all on 表名 to 用户名; 指定用户对该表拥有所有权限
grant select on 表名 to 用户名 with grant option; 指定用户可以查看该表,并且可以将这个权限赋予其他用户
alter user 用户名 account unlock; 解锁(锁定)用户

2.5 命名规则和数据类型

2.5.1 命名规则

表名、列名的命名规则:

  1. 只能使用的字符:A-Z,a-z,0-9,$,#,下划线等,但不能使用空格和单引号;
  2. 必须以字母开头;
  3. 长度不能超过30个字符;
  4. 不能使用保留字,比如oracle;
  5. 不同名称相同;

2.5.2 常见的数据类型

字符型数据类型 含义
char(n) 定长(不满足最大长度用空格代替),最大长度2000字符(2000bytes)
varchar2(n) 变长(不满足最大长度不使用空代替),最大长度4000字符(4000bytes)
long(n) 可变长度的字符数据,最大能存储2G
数字型 含义
number 范围是 10 的 38 次方到 负10 的38次方,可以表示整数和小数。

例如:

number(5) 的范围是 [99999 -99999 ];

number(5,2) 的范围是 [999.99 -999.99],5位有效数字,2位小数。

日期类型 含义
date 包含年月日和时分秒
timestamp 时间戳,秒值精确到小数点后6位
图片类型 含义
Blob 数据库专门用来存储图片,大小为4G,二进制数据
BFile 外部的操作系统文件,大小为4G
Clob 字符型大对象,大小为4G
日期类型 含义
date 包含年月日和时分秒
timestamp 时间戳,秒值精确到小数点后6位
图片类型 含义
Blob 数据库专门用来存储图片,大小为4G,二进制数据
BFile 外部的操作系统文件,大小为4G
Clob 字符型大对象,大小为4G
发布了108 篇原创文章 · 获赞 117 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/FBB360JAVA/article/details/104195865