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才能创建用户,给用户权限。 |
--=============================================
-- 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/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |