第一章 数据库基础

数据库
    按照数据结构来组织、存储和管理数据的仓库,是对数据持久化的工具。

使用数据库的优点:
        存储大量数据
        保持数据信息的完整、一致性
        数据的共享和安全

SQL(Structured Query Language)结构化的查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

SQL语言包含4个部分:
    DDL(Data Definition Language)数据定义语言,如数据表的建立修改删除等
    DML(Data Manipulation Language)数据操作语言,如对数据的增删改
    DQL(Data Query Language)数据查询语言,如对数据的查询
    DCL(Data Control Language)数据控制语言,如事务的提交回滚,权限控制等


PL/SQL
        Procedural Language/SQL  过程化SQL语言
是ORACLE对SQL语言的扩展,在普通的SQL中加入了编程语言的特点,例如:变量的使用和流程语句的控制等

DDMS
        DataBase  Management System 数据库管理系统,负责对数据库进行统一的管理和操作,确保数据操作的安全性和完整性

数据的存储
    关系型数据库使用数据表来存储数据,通过对表与表的完整性实施,实现表关系的维护。

数据表
    每行数据就是写入表中的每个实体
    数据库中以2维表的方式记录数据
   
ORACLE的数据内容
    客户端应用程序
    服务器端
    数据库实例
    数据库服务
    数据库监听器

表空间
    存放数据表的空间,是ORACLE存储关系数据的物理空间。
    DBMS提供对表空间中数据的逻辑映射。表空间由同一个磁盘的一个或多个数据文件构成,这些文件称为DATA   FILE,一个数据文件只能属于一个表空间。

注意点:每个数据库实例中必须要有一个表空间(默认为SYSTEM)


所有关系对象型数据库的数据内容都是记录在数据表里面的
        ORACLE的数据表记录在表空间中
        SqlServer的数据表是记录在数据库里的
        
        ORACLE中表空间只能记录数据库
        SqlServer中的数据库不光能记录数据表,还能记录和这些相关的其他对象(用户对象、存储过程对象、权限、索引)

        ORACLE中的数据表直接和用户关联,同一个用户可以将多张表存储在不同的表空间内。比如:用户admin 可以在a表空间建立c表,还能在b表空间内建立d表,但是不能在b表空间建立同名的c表。
        SqlServer中的数据表和架构名有关,架构名又和数据库相关。
                比如:架构名admin可以在a数据库中建立c表,也能同时在b数据库中建立c表。

安装Oracle和卸载Oracle
    安装文档
    卸载Oracle 
         运行----- regedit----到注册表 ---在注册表里 HKEY_LOCAL_MACHINE--------SOFTWARE里 删除ORACLE ,SYSTEM里将CONTROLSet001,002 和CurrentControlSet里的与Oracle相关的注册表信息删除
----------重启--------------把物理文件删除-------最后再重启



--编写sql语句的注释
注意:SQL语句不区分大小写
在编写SQL语句时没有规定的编写规范,公司里各有各的编写规范:1、都是大写    2、都是小写    3、关键字为大写,其余小写
 
表空间
1、 新建表空间
           create    tablespace    表空间名    datafile    存放路径    size 文件大小    autoextend on
存放路径 用单引号  ' '
   
   
  1. --创建表空间
  2. create tablespace mySpace datafile 'd:/mySpace.dbf' size 10m autoextend on;

2、  删除表空间
            drop    tablespace    表空间名    including    contents
            删除表空间(假删除,断开表空间与DBMS的关联)
            including contents表示删除表空间的同时也删除表空间内的数据表数据
   
   
  1. --删除表空间
  2. drop tablespace mySpace including contents


Oracle 用户
    注意:创建了表空间后用户是不能访问该表空间的,因此需要建立用户后设定用户的可访问权限
                Oracle通过对用户身份和权限增强安全性
  
3、创建用户
        create    user 用户名    identified    by 密码     default    tablespace    表空间名
        密码必须字母开头
        default    tablespace    默认表空间表示当使用该用户登陆DBMS并进行数据表的创建时,数据表默认保存的表空间。
   
   
  1. --创建用户
  2. create user tom identified by tom123
    
    
  1. create user tom identified by tom123 default tablespace mySpace

4、删除用户
        drop    user   用户名     cascade(级联)
   
   
  1. --删除用户
  2. drop user tom

5、修改用户
        alter    user    用户名    identified    by   密码    default    tablespace    表空间名 

创建数据表(后面会学到)
   
   
  1. --创建数据表
  2. create table test
  3. (
  4. testid int
  5. )

查询(后面会学到)
   
   
  1. --查询
  2. --如果访问的对象不是当前登录用户创建的,则必须要用前缀用户名
  3. select * from tom.test
  4. select * from hr.employees
  5. select * from hr.jobs


(权限内容基本掌握)
创建用户后需要分配权限才能使用。

Oracle 将权限分为两类,分别是:
    系统权限:系统权限提供了用户在整个DBMS中执行操作的能力,会影响到整个数据库系统的安全
    对象权限:对象权限是指赋予用户在特定数据库对象执行特定操作的能力,这些对象可包括:数据表、视图、字段、序列等

常见的系统权限
    create    session    连接数据库
    create    sequence    创建序列
    create    synonym    创建同名对象
    create    table    创建表
    insert    any    table    往所有表中插入记录
    select    any    table    查询所有的表
    drop    table    删除表
    create user    创建用户
    ........

6、赋予系统权限
    grant    权限,权限    to    用户名     with    admin    option
with admin option 表示用户在获得权限的同时也具备分配该权限的功能
   
   
  1. --分配登录权限给用户
  2. grant create session to tom with admin option
  3. grant  create user,create table to tom

7、移除系统权限
    revoke    权限,权限    from    用户名
   
   
  1. --移除用户的权限
  2. revoke create user,create table from tom


常用的对象权限
    alter    修改
    insert    新增数据    
    update    修改数据
    delete    删除数据
    select    查询数据
    execute    执行存储过程
     ........
8、赋予对象权限
    grant    权限名,权限名   on  对象名   to  用户名
   
   
  1. --赋予对象权限只能访问hr.employees
  2. grant select on hr.employees to jack

9、撤销对象权限
    revoke   权限名,权限名   on  对象名  from  用户名
   
   
  1. --删除对象权限
  2. revoke select on hr.employees from tom


角色的使用
    角色是系统权限和对象权限的集合,可以分配给一个用户

角色分为系统角色 和 用户角色
    系统角色
    connection    只有最基本的权限范围
    resource       开发人员的权限,可以建表,建序列等
    dba                拥有所有系统级权限


10、 先创建角色,再赋予角色权限 最后将角色赋予用户
        1)创建角色
        create    role    角色名
   
   
  1. --创建角色名
  2. create role myRole

        2)赋予权限
        grant    系统权限    to    角色名
        grant    对象权限    on    对象名    to    角色名
   
   
  1. --将权限赋予给角色
  2. grant create session,create table ,select any table to myRole
  3. grant delete on hr.jobs to myRole

        3)使用角色
        grant    角色名    to    用户名
   
   
  1. --将角色分配给用户,该用户将具备该角色的所有权限
  2. grant myRole to tom


11、撤销角色
        revoke    角色名    from    用户名
   
   
  1. --撤销角色
  2. revoke myRole from tom


12、表空间转移
        步骤一:使表空间下线
            alter    tablespace    表空间名    offline
        步骤二:修改表空间使用的数据文件路径
            alter    database    rename    file    源文件    to    新文件
        步骤三:使表空间上线
            alter    tablespace    表空间名    online


13、表空间导入导出
    表空间在转移过程中DBMS中始终记录着被转移表空间的原始位置,如果A电脑中不存在某个表空间希望实现转移的话就无法实现,因此我们需要将表空间导入并导出。

只能在SQL Plus中执行操作
   导出数据   

  
  
  1. 1、--导出数据库所有的数据
  2. $exp 用户名/密码@服务名 file = 路径名.dmp ;
  3. 2、--导出某个用户的数据
  4. $exp 用户名/密码@服务名 file = 路径名.dmp owner=(用户名) ;
  5. 3、--导出某个表空间
  6. $exp 用户名/密码@服务名 file = 路径名.dmp tablespaces=(表空间名);
  7. 4、--导出某张表
  8. $exp 用户名/密码@服务名 file = 路径名.dmp tables=(表名);

   导入数据
full = y 表示全部
   
   
  1. --导入数据
  2. $imp 用户名/密码@服务名 file = 路径名.dmp full=y;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值