Oracle 快速入门 基本操作(必知)

目录

一、需要启动的服务(必知):

二、常用数据表(常识)

二、关于Oracle数据库的开发环境(必知)

三、PL/SQL Developer 集成开发环境

四、新建SQL窗口(必知)

五、账户、表空间、数据库(常识)

六、Oracle的安装--号称史上最麻烦的安装

七、启动服务,进入Oracle,PL/SQL(常识)

        7.1 创建数据库和账户(所产生的文件)

7.2 创建表空间

        7.2 给表空间分配账户

        7.3 要给角色授权

        7.4 撤销权限或角色:

八、建表     

九、综合案例(代码部分)

        1.SYS 超级管理员 (SQL脚本)

         2.Scott 普通用户 (SQL脚本)

九、拓展(Oracle的历史背景)

        1.Oracle11g的背景

        2. Oracle用户的由来:


一、需要启动的服务(必知):

        OracleServiceORCL                  oracle数据库服务
        OracleOraDb11g_home1TNSListener            oracle监听服务        

        操作如下:输入 services.msc 命令     确定   如下:

        确定显示如图鼠标右击打开即可:

注意:每次重启电脑,如果没有设置自动打开,那么就需要自己手动打开,才能正常使用。

二、常用数据表(常识)

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

二、关于Oracle数据库的开发环境(必知)

        启动步骤:Oracle->应用程序开发->SQL Plus
        用户名:scott
            口令:tiger(密码,开始为默认为tiger,根据设置而定)
            主机字符串:orcl

        如图:

三、PL/SQL Developer 集成开发环境

        它是Oracle的第三方工具;
        因为oracle的开发环境糟糕,因此我们采用第三方的

四、新建SQL窗口(必知)

        文件 --> 新建 --> SQL窗口

        作用:用sql脚本代码完成数据库的增、删、改、查操作

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

五、账户、表空间、数据库(常识)

        结构:

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

注意:Oracle为A账户开辟一个表空间,为B账户开辟一个表空间,请问A和B是不是在用同一个数据库?
     不同账号之间能不能互访?
其实就是用表空间代替了数据库。创建数据库就是开辟用户空间。

六、Oracle的安装--号称史上最麻烦的安装

        安装教程: 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。
    注意:千万不要去改这账号和密码,全球都是一样的。(改是可以改,但别去改)

        超级管理员的权限:

【以下操作,必须以超级管理员身份登录,才能修改】
 
oracle安装后,会默认生成很多个用户

以超级管理员身份登录,请注意,其中的空格符:
【 sys是一个超级管理员,有最大的权限,dba是角色名,/杠二边是用户名和密码,以dba角色名进入,无需用户名和密码 】 
sqlplus / as sysdba
例如:C:\Documents and Settings\Administrator>sqlplus / as sysdba

解锁普通用户:
alter user 用户名 account unlock;
例如:SQL> alter user scott account unlock;

修改普通用户密码,密码以英文字母开头
alter user 用户名 identified by 新密码【密码以字母开头】;
例如:SQL> alter user scott identified by 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;

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

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

    如果你是一般用户的账号可以调别人的吗?正常情况下不行,除非授权。
        关于账户在Oracle有另一个名词叫:模式
    select * from 模式.表;

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

        进入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    

        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权限

八、建表     

           建的表都在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
        --建完表后点“应用”

九、综合案例(代码部分)

        1.SYS 超级管理员 (SQL脚本)

--创建表空间
create tablespace ts_sb
datafile 'D:\software\tools\oracle\app\oradata\orcl\ts_sb.dbf'
size 5M


create user u_zz
identified by 123
default tablespace ts_sb

#分配权限或角色
grant  privileges or role to user;
#撤销权限或角色
revoke  privileges or role from user;

#问题:创建的u_zz用户登录失败

#给予u_zz分配或角色
grant connect,resource to u_zz;

#撤销u_zz用户 权限或角色
revoke connect,resource from u_zz;


--词汇:模式
select * from scott.emp;

         2.Scott 普通用户 (SQL脚本)

#注释
-- 单行注释
/*多行注释*/

#oracle数据库时不区分大小写的
#建议全大写,尤其是关键字

#Oracle数据库创建表时必须得有表空间
#学会创建表空间(类似sqlserver中的数据库)
#表空间:tablespace
#表空间的作用:存储数据表
#表空间创建完成之后必须使用"用户"去管理这个表空间。
#表空间创建必须是SYS超级管理员登录创建
/*
创建语法:
   create tablespace 表空间名称
   datafile '数据文件的存储路径(oracle安装目录)'
   size 大小
*/
--创建一个表空间存储数据表
create tablespace ts_sb
datafile 'D:\software\tools\oracle\app\oradata\orcl\ts_sb.dbf'
size 5M

#表空间创建完成后使用用户操作
#用户管理
#用户创建必须是SYS超级管理员登录创建
/*
语法:
     create user 用户名称
     identified by 初始密码
     default tablespace 表空间名称

*/
create user u_zz
identified by 123
default tablespace ts_sb

#用户创建完成后需要管理分配权限才能正常登录
# connect  resource
#分配权限或角色
grant  privileges or role to user;
#撤销权限或角色
revoke  privileges or role from user;

---------------------------------------------------------
/*
浏览器窗口中的关键词
        user   用户
        tablespace 表空间
        table      表格
        function   函数
        procedure  存储过程
        packages   程序包
        trigger    触发器
        sequence   序列
        synonyms   同义词(别名)
*/

#scott用户下四张表
select * from emp;--员工表
select * from dept;--部门表
select * from bonus;
select * from salgrade


--创建表
#考虑字段的类型
#oracle中的类型: 数值(number)字符串(varchar2)
/*
语法
create table tb_名称
(
       字段1 数据类型,
       字段1 数据类型,
       字段1 数据类型
)
*/
--创建一个学生信息表
create table tb_student
(
       sid number,
       sname varchar2(50),
       ssex varchar2(2)
)
#查询数据
select * from tb_student;
#添加数据
insert into tb_student values(1,'张三','男')
#删除数据
delete from tb_student where sid = 1;
#修改数据
update tb_student set sname = '宋威' where sid = 1;


#约束:限制数据
#主键约束   primary key
#非空约束   not null
#检查约束  check
#默认约束  default
#唯一约束  unique
#外键约束  references

create table tb_stu
(
       sid number primary key,
       sname varchar2(100) not null,
       ssex varchar2(2) check (ssex = '男' or ssex = '女'),
       saddress varchar2(100) default  '湖南省',
       sfz varchar2(100) unique
      
)
create table tb_score
(
       sid number references tb_stu(sid),
       gride number
)

九、拓展(Oracle的历史背景)

        1.Oracle11g的背景

1977年 美国人 Larry 成立软件开发实验室 

1980年 用c/c++开发了世界第一个商用关系型数据库(RDBMS)

1983年 公司更名为Oracle Corporation(甲骨文公司)

30多年的发展,Oracle成为世界上领先的信息管理软件供应商和独立软件开发公司,Oracle技术几乎涉及各个行业

2009年4月21日,原SUN -> Oracle

市场份额:【Oracle(54%+-)--->IBM-DB2(21%+-)--->MicrosoftMSSQL(14%+-)】    

Oracle认证种类:

*(1)开发技术认证:Java认证
                   数据库开发语言SQL和PL/SQL认证

 (2)数据库技术认证:
                    OCM认证【大师】
            OCP认证【专家】
            OCA认证【初级】

 (3)中间件技术认证:OracleServer认证,WEB服务器认证,。。。

 (4)专业领域的应用技术认证:
           ERP认证
                   CRM认证
                   HR认证 
                   OA认证     
           TAX认证。。

2007年7月12日,甲骨文公司在美国推出Oracle11g,建议至少使用JDK6
它有400多项功能,经过了1500万个小时的测试,开发工作量达到3.6万人/月

早期:Oracle8i,9i,【10i】----(i表示internet)
近期:Oracle11g-------------(g表示grid),将多台Oracle服务器当作一台主机协调使用,网格计算被之泛视为未来的计算方式
现在:oracle 12c(clound融合云计算服务器)

window7/8中,查询端口的命名:netstat -a,或使用其它第三方工具查询当前计算机中的端口号

oracle数据库的主端口:1521,通常固定不变,前提是:开机时要启动"OracleOraDb11g_home1TNSListener"服务

报价:oracle11g企业版/标准版/个人版-----¥19.5万+-

报价:oracle12c企业版/标准版/个人版-----¥31.79万+-

        2. Oracle用户的由来:

        从Oracle第一个商业化版本至今,oracle的默认数据库里都少不了这个名字为scott,密码为tiger的用户。这个scott究竟有何来历,怎么在我们的oracle的版本里一直都不能少呢。

这个就要追朔到Oracle的创业阶段了, 1977年6月,埃里森,Bob Miner和Ed Oates在硅谷共同创办了一家名为软件开发实验室(Software Development Laboratories,SDL)的计算机公司,这个只有三个人的公司就是后来在独领数据库风骚的ORACLE公司的前身。 当时埃里森年界32岁,由于合同的关系还在自己原来的公司里不能出来,只是一个程序员而已。他过不来,总要有写代码的人呀,公司的第一个程序员出现了,他的名字就是scott,他的猫的名字就叫trigger,可能是为了这个第一位的程序员的缘故吧,所以也就有了scott这个用户,而且一直没有忘怀,留恋至今。

        1983年3月,RSI发布了ORACLE第三版的,Miner和Scott这两个老牛用c语言,在埃里森的高压下进行第三版的开发,要知道,C语言当时推出不久,用它来写ORACLE软件也是具有一定的风险的,但除此之外,别无他法。很快就证明了这样做是多么的正确:C编译器便宜而又有效,还有很好的移植性。

        不过,当这个第三版还没有结束的时候。scott离开了Oracle公司,也许是c开发和初始阶段的无休止的变更,让scott无法承受,这个大牛选择了离开公司并出售了自己的4%的股票,不过scott离开Oracle以后,还是混迹于数据库开发市场,他自己创立了PointBase公司,是一个不错的嵌入式数据库,不过好像是java写的,我曾经还用之开发过项目。这位大牛没有想到,日后这个由他开笔的Oracle是未来时代的数据库巨人,那4%的相当于几亿美元哟。

时代造就英雄,每个时代的伟大产品后面都有英雄人物所不同常人的故事,不过其实也是那么的平常,不过是做了不平常的事情而已。

  • 10
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值