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/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM