zoukankan      html  css  js  c++  java
  • Oracle: 二、Oracle用户操作和表操作

    内容简介

     1,用户操作。2,表的基本操作。3,表的约束(序列除外)。

     4,创建序列(Sequence)。5,表约束添加删除。

     

    技术与环境

    操作系统:

    windows

    语言类别:

    SQL之PL/SQL

    thankyou: sunshine, 谢谢你的默默付出

    数据库:

    Oracle

    学习软件:

    Oracle 10g

    课程总策划:

    yuanbo

    English name:

    sunshine

    个人主页:

    http://www.cnblogs.com/ylbtech/

    科研团队:

    ylbtech

    教研团队:

    ylbtech

     

    1,用户操作

    ylb_tip:

    1)只用system才能创建用户,给用户权限。
    2)没有数据库,创建用户,登录就可以使用。

    --=============================================
    -- ylb:Oracle
    --1,用户操作
    -- 16:08 2011-12-24
    --=============================================
    
    Microsoft Windows XP [版本 5.1.2600]
    (C) 版权所有 1985-2001 Microsoft Corp.
    C:\Documents and Settings\Administrator>sqlplus
    SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 12月 24 10:34:35 2011
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    请输入用户名:  system
    输入口令:
     
    连接到:
    Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production
     
    SQL> create user ylb identified by m123;
    用户已创建。
     
    SQL> grant connect,resource to ylb;
    授权成功。
     
    SQL> connect ylb/m123;
    已连接。
    
    SQL> show user;
    USER 为 "YLB"
    
    SQL> connect system/m123;
    已连接。
    
    SQL> show user;
    USER 为 "SYSTEM"
    
    SQL> drop user ylb cascade;
    用户已删除。
     
    SQL> connect ylb/m123;
    ERROR:
    ORA-01017: invalid username/password; logon denied
    
    警告: 您不再连接到 ORACLE。
    SQL>
    
    2,表的基本操作
    --=============================================
    -- ylb:Oracle
    --1,表的基本操作(建表,增、查、改、删,清空表,删除表)
    -- 16:08 2011-12-24
    --=============================================
     
    SQL> show user;
    USER 为 "SYSTEM"
    
    SQL> create user ylb identified by m123;
    用户已创建。
     
    SQL> grant connect,resource to ylb;
    授权成功。
     
    SQL> connect ylb/m123;
    已连接。
    
    SQL> show user;
    USER 为 "YLB"
    
    SQL> create table users
      2  (
      3  userid number(4) not null,
      4  username varchar(100)
      5  );
    表已创建。
     
    SQL> desc users;
     名称                                      是否为空? 类型
     ----------------------------------------- -------- ----------------------------
     USERID                                    NOT NULL NUMBER(4)
     USERNAME                                           VARCHAR2(100)
    SQL> insert into users(userid,username) values(101,'zhiMen');
    已创建 1 行。
    SQL> insert into users values(102,'ylb');
    已创建 1 行。
    SQL> select * from users;
        USERID
    ----------
    USERNAME
    --------------------------------------------------------------------------------
           101
    zhiMen
           102
    ylb
    
    SQL> insert into users values(103,'xiaoming');
    已创建 1 行。
     
    SQL> update users set username='xiaoxiao' where userid=103;
    已更新 1 行。
     
    SQL> select * from users;
        USERID
    ----------
    USERNAME
    --------------------------------------------------------------------------------
           101
    zhiMen
           102
    ylb
           103
    xiaoxiao
    
    SQL> delete users where userid=103;
    已删除 1 行。
     
    SQL> truncate table users;
    表被截断。
     
    SQL> select * from users;
    未选定行
     
    SQL> drop table users;
    表已删除。
    SQL> select * from users;
    select * from users
                  *
    第 1 行出现错误:
    ORA-00942: 表或视图不存在
    
    SQL>
    
    3,表的约束(除序列外)

    ylb_tip:

    1,唯一 unique  唯一,可以null。
    2,default---在oracle不是约束,是列的属性,所以没有约束名称。

    3,外键约束---所有约束中最重要的一个,外键是关系的体现。

      3_1,建表的时候添加主外键约束(主表)。

      3_2,外键产生于主键(外表)。

     

    扩展:键的意义?

    1,主键的作用?
      防止数据冗余。
    2,外键---外键必须产生于主表的主键
      特点1:主表没有的数据,在外表不能添加。
      特点2:外表存在的数据,对应主表主键不能删除,即先删外键,再删主键。

    --=============================================
    -- ylb:Oracle
    --1,主键约束(PK)
    --2,非空约束(Not null)
    --3,唯一约束(Unique)
    --4,检查约束(Check)
    --6,外键约束(FK)
    --7,序列(Sequence)【专题】这儿不讲
    -- 16:08 2011-12-24
    --=============================================
     
    SQL> connect system/m123;
    已连接。
    SQL> --1,创建用户
    SQL> create user yb identified by m123;
    用户已创建。
     
    SQL> --2,给用户授权
    SQL> grant connect,resource to yb;
    授权成功。
     
    SQL> --3,切换到用户
    SQL> connect yb/m123;
    已连接。
    
    SQL> --4,展示当前用户
    SQL> show user;
    USER 为 "YB"
    
    SQL> --5,主键约束测试
    SQL> create table userPK
      2  (
      3  userid number(4) primary key,
      4  username varchar(100)
      5  );
    表已创建。
    SQL> insert into userPK values(101,'niuJing');
    已创建 1 行。
    SQL> insert into userPK values(101,'xiaoLiu');
    insert into userPK values(101,'xiaoLiu')
    *
    第 1 行出现错误:
    ORA-00001: 违反唯一约束条件 (YB.SYS_C004129)
    
    SQL> --6,唯一约束测试
    SQL> create table userUnique
      2  (
      3  userid number(4) not null,
      4  username varchar(100) unique
      5  );
    表已创建。
    SQL> insert into userUnique values(101,'pengYun');
    已创建 1 行。
    SQL> insert into userUnique values(102,'pengYun');
    insert into userUnique values(102,'pengYun')
    *
    第 1 行出现错误:
    ORA-00001: 违反唯一约束条件 (YB.SYS_C004131)
    
    SQL> --7,检查约束测试
    SQL> create table userCheck
      2  (
      3  userid number(4) not null,
      4  sex char(3) check(sex in('男','女'))
      5  );
    表已创建。
    SQL> insert into userCheck values(101,'男');
    已创建 1 行。
    SQL> insert into userCheck values(102,'你');
    insert into userCheck values(102,'你')
    *
    第 1 行出现错误:
    ORA-02290: 违反检查约束条件 (YB.SYS_C004133)
    
    SQL> --8,默认
    SQL> create table userDefault
      2  (
      3  userid number(4) not null,
      4  sex char(3) default('男')
      5  );
    表已创建。
    SQL> insert into userDefault values(101,'男');
    已创建 1 行。
    SQL> insert into userDefault(userid) values(102);
    已创建 1 行。
    SQL> select * from userDefault;
        USERID SEX
    ---------- ------
           101 男
           102 男
    SQL> --9,外键约束,主表是userPK
    
    SQL> create table Orders
      2  (
      3  orderID number(4) not null,
      4  total number(6,2),
      5  userID number(4) references userPK(userID)
      6  );
    表已创建。
    
    4,创建序列(Sequence)

    ylb_tip:

    序列与表是两个对象。而sqlserver的identity是列的属性,绑定在列上。

    --==========================================
    --ylb:Oracle
    --1,序列创建实例
    --17:23 2011-12-27
    --==========================================
    
    SQL> connect yb/m123;
    已连接。
    SQL> --1,创建序列
    SQL> create sequence seq1 start with 100 increment by 1;
    序列已创建。
    SQL> --2,查看当前序列值
    SQL> select seq1.currval from dual;
    select seq1.currval from dual
           *
    第 1 行出现错误:
    ORA-08002: 序列 SEQ1.CURRVAL 尚未在此会话中定义
    
    SQL> create table userSeq
      2  (
      3  userID number(4) not null,
      4  username varchar(100)
      5  );
    表已创建。
    SQL> insert into userSeq values(seq1.nextval,'weiWei');
    已创建 1 行。
    SQL> --3,查看表
    SQL> select * from userSeq;
        USERID
    ----------
    USERNAME
    --------------------------------------------------------------------------------
           100
    weiWei
    
    SQL> --4,总结:当我们的序列还没有初始化时,查看当前的序列值是无效的。
    SQL> select seq1.currval from dual;
       CURRVAL
    ----------
           100
    SQL> select seq1.nextval from dual;
       NEXTVAL
    ----------
           101
    SQL> --5,删除序列
    SQL> drop sequence seq1;
    序列已删除。
    SQL>
    
    5,表约束的添加,删除
    --===============================================
    --ylb:Oracle
    --ylb_munu:表的约束添加
    --主键约束(PK)
    --非空约束(Not null)
    --唯一约束(Unique)
    --检查约束(Check)
    --默认约束(Default)
    --外键约束(FK)
    --17:27 2011-12-27
    --===============================================
     
    SQL> --创建表基本约束
    SQL> create table person
      2  (
      3  id number(4) primary key,
      4  name varchar(100) not null,
      5  sex char(3) check(sex in('男','女')),
      6  orderID number(4) unique,
      7  loginDate date default sysdate
      8  );
    表已创建。
     
    SQL> --1,创建表
    SQL> create table person2
      2  (
      3  id number(4),
      4  name varchar(100),
      5  sex char(3),
      6  orderID number(4),
      7  loginDate date
      8  );
    表已创建。
    
    SQL> alter table person2 add constraint pk_person2_id  
    primary key(id);
    表已更改。
    SQL> --2,添加检查约束
    SQL> alter table person2 add constraint ch_person2_sex 
    check(sex in('男','女'));
    
    表已更改。
    SQL> --3,添加唯一约束
    SQL> alter table person2 add constraint 
    un_person2_orderID unique(orderID);
    表已更改。
    SQL> --4,添加非空约束
    SQL> alter table person2 modify name varchar(100) not 
    null;
    表已更改。
    SQL> --5,添加默认约束
    SQL> alter table person2 modify loginDate date default 
    sysdate;
    表已更改。
    SQL> --6,创建外表
    SQL> create table orders
      2  (
      3  orderID number(4),
      4  total number(6,2),
      5  id number(4)
      6  );
    表已创建。
    SQL> --7,添加外键约束,主表是person2(id),外表是order
    (id)
    SQL> alter table orders add constraint 
    fk_person2_orders_id
      2  foreign key(id) references person2(id);
    表已更改。
    SQL>
    

     

    warn 作者:ylbtech
    出处:http://ylbtech.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    CISM国际注册信息安全经理认证与其他认证的差异
    CISD注册信息安全开发人员
    ISACA率先将技能网络安全培训与基于实际操作的考试和认证相结合
    信息安全意识
    2015版CISM国际注册安全经理中文教材
    如何持久建立信息安全意识宣贯/不解释
    北京CISSP免费考前模拟辅导讲座
    信息安全泄露越来越冲“钱”去
    利用碎片时间了解虚拟化安全---第一部分
    如何修改WAMP中mysql默认空密码
  • 原文地址:https://www.cnblogs.com/ylbtech/p/2630347.html
Copyright © 2011-2022 走看看