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,如需转载请自行联系原作者

相关文章
|
3月前
|
SQL Oracle 关系型数据库
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作
87 0
|
9月前
|
SQL 存储 Oracle
Oracle数据库中日期的操作、主键自增与分页查询
Oracle数据库中日期的操作、主键自增与分页查询
79 0
|
4月前
|
Oracle 关系型数据库
Oracle - 表操作语句
Oracle - 表操作语句
25 0
|
7月前
|
SQL 存储 Oracle
Oracle SQL操作和查询
SQL是结构化查询语言(Structured Query Language),专门用于数据存取、数据更新及数据库管理等操作。
91 0
|
9月前
|
Oracle 关系型数据库 Java
hibernate操作Oracle出现违反唯一约束条件
出现这个问题的原因无非是主键冲突,我这里引起主键冲突的原因是实体类使用的ID策略为
|
10月前
|
SQL Oracle 前端开发
Oracle更改数据后后台无法操作 一直加载
今天用dbutils操作Oracle,在SQL developer里面测试执行完update语句后,在后台操作,前端页面一直加载,
|
11月前
|
Oracle 关系型数据库 数据库
|
11月前
|
SQL XML Oracle
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作(下)
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作(下)
|
11月前
|
SQL XML Oracle
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作(中)
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作(中)
|
11月前
|
SQL Oracle 关系型数据库
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作(上)
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作(上)