Oracle入门

1.Oracle在安装时会自动创建和配置数据库(1个)

2.Oracle数据库服务器只有一个数据库以及至少一个数据库实例

3.数据库:存储数据的

4.数据库实例:当Oracle开启后,就启动一个进程,该实例用来存储Oracle的所有操作。

5.Oracle在安装完成后会自动产生多个用户

    SYS----超级管理员
    SYSTEM----普通管理员
    SCOTT---最常见的普通用户(使用率最高)
        默认密码:tiger
    注意:第一次使用SCOTT用户,需要超级管理员解锁。
        默认SCOTT是锁定。
        
6.Oracle的一些文件详解:
    数据文件:存储数据,扩展名:dbf
    控制文件:启动或者操作存储的信息,扩展名:ctl
    日志文件:操作表以及视图及其他操作是产生的日志信息
            扩展名:log
            
7.表空间的概念
    (1)表空间是通过数据库划分出来,类似sqlserver中的数据库,容器
    (2)Oracle只有一个数据库,怎么区分管理不同的系统,通过表空间。
    (3)表空间的关键词:tablespace。
    

====================================
使用Oracle数据库之前,必须知道以下几点
1.开启前必须启动服务和监听
    (1)服务 oracleservicesorcl
    (2)监听 ......listener
    
2.通过超级管理登录,然后解锁scott用户
    2.1 超级管理员登录。
        cmd
            sqlplus / as sysdba;
        sqlplusdeveloper
            实例选择:orcl  连接到:sysdba
    
    2.2 给scott用户解锁。
        锁定   alter user scott account lock;
        解锁   alter user scott account unlock;
        解锁的同时可以重新设置密码
        alter user scott account unlock identified by 初始密码;

Oracle基本介绍

============================================

一、需要启动的服务:
    OracleServiceORCL                  //oracle数据库服务
    OracleOraDb11g_home1TNSListener    //oracle监听服务

=======================================

常用数据表如emp、dept、salgrade等表,这几个表存储在系统账号scott下,可以通过scott账号查看表格的基本情况。

=======================================

二、关于Oracle数据库的开发环境
    启动步骤:Oracle->应用程序开发->SQL Plus
        用户名:scott
    口令:tiger
    主机字符串:orcl

==========================================

三、PL/SQL Developer 集成开发环境
    它是Oracle的第三方工具;
    因为oracle的开发环境糟糕,因此我们采用第三方的

==========================================

四、新建SQL窗口
    文件 --> 新建 --> SQL窗口
    
==========================================

Sql与Oracle最大的不同:
    Sql中可以随时随意的创建数据库;但Oracle只有一个数据库,一台电脑只会安装一个数据库。
    为了区分彼此,Oracle只有创建用户,一个用户一个数据库。


五、账户、表空间、数据库
开辟(分配)数据库空间----表空间(TableSpace)。
表空间代替了数据库,创建数据库就是开辟账户空间。

注意:Oracle为A账户开辟一个表空间,为B账户开辟一个表空间,请问A和B是不是在用同一个数据库?
     不同账号之间能不能互访?

*****************************************
其实就是用表空间代替了数据库。创建数据库就是开辟用户空间。
****************************************

=================================================

六、Oracle的安装--号称史上最麻烦的安装
    Oracle里面的东西太多了,大批量处理数据的。
    sql server号称百万级数据(一个表的数据),但其实最多20万条记录,超过20万条就用Oracle。


安装可能成功,但连接不了的情况,而且也不报错。
-----------------------------------
oracle8i/9i (internet)基于网络的

oracle10g/11g (grid)基于网格的,它的客户端就是个web程序了,可以在IE里打开的:oracle->Database Control - orcl点下就会在IE中打开,如果找不到地址就是没开动OracleDBConsoleorcl服务(DBC控制器),该功能就相当于SQL Server

orcale12c

==================================================

七、启动服务,进入Oracle,PL/SQL

7.1 创建数据库和账户
 
数据库
    物理的:数据文件.dbf;日志文件.log;控制文件.ctl;
    虚拟的:表空间(可以用户开辟)

数据库实例
    启动的数据库对应一个数据库实例,由实例来访问和控制数据库。

***********************************
问:先创建表空间还是用户?
先创建表空间,再给用户分配表空间
**********************************

关于账户:
----sys和system管理员账号,在装软件时就已分配好的,因此可以用这账号开辟表空间。
----scott(释放账号:给我们用和看的),密码是tiger。
    注意:千万不要去改这账号和密码,全球都是一样的。(改是可以改,但别去改)


关于账户登录:
   可以用sys或system管理员账号登录,也可以用scott账户登录。
   怎么登?
   1.在开始菜单中选择oracle目录--应用程序开发--sql plus
   2.在cmd状态下,直接通过命令sqlplus来登录。


在oracle下输入命令:
sys/sys as sysdba  --sysdba是数据库系统管理员
解释:第一个sys是账户,第二个sys是密码,该账号做为管理员登录。


思考:
    管理员账户可以调用一般账户的表吗?
    select * from scott.emp;

    一般账户可以调一般账户的表吗?

=====================================================

7.2 创建表空间

基于应用性能和管理方面的考虑,最好为不同的用户创建独立的表空间。

创建表空间的语法:
    create tablespace 表空间名

    例:
    create tablespace t_table
    datafile 'e:\111.dbf'   --数据文件存方地址
    size 100M;
    --只要上面三行就OK了
    autoextend on next 32 maxsize unlimited
    logging
    extent management local
    segment space management auto;


========================================

进入PL/SQL
1.all objects ==> my objects
2.左侧的都了解了,oracle就完了

My Objects
    Functions    函数-
    Procedures    存储过程-
    Packages    包-
    Package bodies    包体-    
    Types        类型-
    Type bodies    类型体-
    Triggers    触发器-
    Java sources    
    Jobs        工作
    Queues        队列
    Queue table    队列表格
    Libraries    
    Directories    
    Tables        表格-
    Views        视图-
    Materialized views
    Sequences    序列-
    Users        用户-
    Profiles    控制文件-
    Relos        角色-
    Synonyms    同义词-
    Database links
    Tablespaces    表空间-
    Clusters    


==============================================

    用;号隔开,代表代码写完了,可以执行了

    如果你是管理员账号,调别的用户的账号可以吗?可以
    --账户.表;
    select * from scott.emp;

    如果你是一般用户的账号可以调别人的吗?正常情况下不行,除非授权。


关于账户在Oracle有另一个名词叫:模式
    select * from 模式.表;

比如scott就是个模式
比如其它的对象就是个模式
每个对象都是个模式


==============================================


7.2 给表空间分配账户
1.创建账户,指定访问表空间,但未给它赋任何权限,登录时是登不了的!
    create user 用户名
    identified by 密码
    [default tablespace 表空间]
    [temporary tablespace 临时的表空间]   --该行一般不用

    案例:
    create user u_dml
    indentified by 123
    default tablespace t_table

7.3 要给角色授权
    (把用户与角色区分搞清楚)
    角色:张扬是个学生,是指角色
    用户:而张扬,是一个用户

    给角色授予权限:
    找到users-用户名-编辑-角色权限
    connect:临时用户的权限
    resource:正式用户的权限
    DBA:管理员(一般不用)

    分配权限或角色:
    Grant privileges or role To user;

    例:Grant connect,resource to u_dml; 
        --给dml角色分配权限


7.4 撤销权限或角色:
    Revoke privileges or role FROM user; 

   例:revoke connect,resource from u_dml; --撤销dml角色的connect,resource权限

grant create tablespace to scott;--给与用户创建表空间权限
===============================================


八、建表
    建的表都在Tables里面。
    两种建表方式:
    1.视图
    2.代码

create table tb_88
(
    sid number,           --int类型用number
    sname varchar2(55),   --没有varchar
    sex varchar2(10)
)

--查看表里的数据:
select * from tb_88;

*****************************************
Oracle中有标识列吗?
oracle没有标识列,不过有个替代品(触发器+序列)
*****************************************

--插入数据
insert into tb_88(sid,sname,sex)
values(10,'张天','男');

--视图版的添加表:
  右击Tables--新建--主键:在键里,名称自己取,类型primary,选定哪个列做主键,联合主键就选两个,请问有几个主键?1个

  删除列:右则的减号


--怎么查看建表的脚本?
  右下角--看SQL


--建完表后点“应用”

==================================================

select * from emp;
--1.Oracle的单行注释(--)
--2.Oracle的多行注释(/**/)
--3.oracle不区分大小写
--4.Oracle安装后所产生的账户scott存在四张系统表
--emp(员工表)**  dept(部门表)** bonus(岗位表) salgrade(薪资表)
--5.oracle安装后会自动创建表空间,也可以自定义创建表空间

#表空间:tablespace
/*
创建表空间的语法:
create tablespace 表空间的名称
datafile '数据文件的存储目录'
size 5M

注意:数据文件的存储目录最好是Oracle的安装目录

问题:普通角色scott创建不了表空间,必须SYS超级管理员实现
*/
create tablespace ts_0218
datafile 'D:\software\tools\oracle\app\oradata\orcl\ts_0218.dbf'
size 5M

--表空间创建后,需要用户去管理,自定义用户  user
/*
创建用户的语法:
create user 用户名称
identified by 密码
default tablespace 表空间的名称
*/
--创建一个用户cc去管理ts_0218这个表空间
create user u_cc
identified by 123
default tablespace ts_0218;

--强调:Oracle中没有标识列,但是有替代品(数据库对象-序列+数据库对象-触发器)
--Oracle的数据类型
--数值类型  number
--字符串类型 varchar2(长度)  

create table tb_student
(
       sid number primary key,
			 sname varchar2(50) not null,
			 ssex varchar2(2) check(ssex = '男' or ssex = '女'),
			 saddress varchar2(100) default '湖南长沙',
			 sfz varchar2(20) unique
);
select * from tb_student;

create table tb_score
(
       sid number references tb_student(sid),
			 degree number

)


--oracle管理工具中左侧栏目的对象
1.function 函数
2.procedure 存储过程
3.package 程序包
4.table 表
5.index 索引
6.view 视图
7.sequence 序列
8.trigger 触发器
9.user 用户
10.tablespace 表空间
11.synonym 同义词



create tablespace ts_0218
datafile 'D:\software\tools\oracle\app\oradata\orcl\ts_0218.dbf'
size 5M


create user u_cc
identified by 123
default tablespace ts_0218;

--用户创建后需要授权
# grant 权限 to 用户
--给u_cc用户授权
grant connect,resource to u_cc;

#撤销权限
#revoke 权限 from u_cc;
revoke connect,resource from u_cc;



 

你可能感兴趣的:(oracle,数据库,database)