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 ,
   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),
   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
   foreign  key (id) references  person2(id);
表已更改。
SQL>

 

本文转自ylbtech博客园博客,原文链接:http://www.cnblogs.com/ylbtech/archive/2012/08/09/2630347.html,如需转载请自行联系原作者

相关文章
|
6月前
|
Oracle 关系型数据库 Java
实时计算 Flink版操作报错之读取Oracle数据库时遇到找不到驱动,是什么原因
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
实时计算 Flink版操作报错之读取Oracle数据库时遇到找不到驱动,是什么原因
|
6月前
|
Oracle 关系型数据库 MySQL
实时计算 Flink版操作报错之遇到报错 Oracle 19C,如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
6月前
|
Oracle 关系型数据库 MySQL
实时计算 Flink版操作报错合集之采集oracle的时候报ORA-65040:不允许从可插入数据库内部执行该操作如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
243 3
|
6月前
|
DataWorks Oracle 关系型数据库
DataWorks操作报错合集之尝试从Oracle数据库同步数据到TDSQL的PG版本,并遇到了与RAW字段相关的语法错误,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
91 0
|
4月前
|
Oracle 关系型数据库 数据库
|
4月前
|
分布式计算 Oracle 大数据
MaxCompute产品使用合集之没有数据源,只是将批量状态和时间写入Oracle表里,该如何操作
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
6月前
|
SQL Oracle 关系型数据库
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作
137 0
|
5月前
|
SQL DataWorks Oracle
DataWorks产品使用合集之datax解析oracle增量log日志该如何操作
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
56 0
|
6月前
|
Oracle 关系型数据库 MySQL
实时计算 Flink版操作报错合集之写Oracle时出现的缺失等号错误如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
70 9
|
6月前
|
消息中间件 Oracle 关系型数据库
实时计算 Flink版操作报错之同步Oracle时出现主题为空的报错该怎么解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。

推荐镜像

更多