内容简介 |
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://www.cnblogs.com/ylbtech/archive/2012/08/09/2630347.html,如需转载请自行联系原作者