內容簡介 |
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才能創建用戶,給用戶權限。 |
--=============================================
-- 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。 3,外鍵約束---所有約束中最重要的一個,外鍵是關系的體現。 3_1,建表的時候添加主外鍵約束(主表)。 3_2,外鍵產生於主鍵(外表)。
擴展:鍵的意義? 1,主鍵的作用? |
--=============================================
-- 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>
![]() |
作者:ylbtech 出處:http://ylbtech.cnblogs.com/ 本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。 |