oracle2

表空间是数据库最大的逻辑单元,一个Oralce数据库至少包含一个表空间,就是名为SYSTEM的系统表空间。
每个表空间是由一个或多个数据文件组成的,一个数据文件只能与一个表空间相关联。
从物理上来说:表空间是一些数据文件,用来存放数据库数据。
从逻辑上来说:表空间是将多个数据库对象有规律的组织起来,便于用户管理。
为什么需要表空间?
1、数据库对象非常多时,便于用户管理。
2、数据量非常大时,便于将数据分布在不同的磁盘中,减少磁盘读写的开销。

系统表空间
安装Oracle数据库时,系统默认创建的表空间。
System:主要存放管理员创建的对象
Users:主要存放一般用户创建的对象
Temp:临时表空间,主要用于排序操作

默认表空间
创建用户时,可以为该用户指定默认表空间,也就是该用户今后创建的表等数据库对象时,都会存放在该默认表空间中。
创建用户时,如果不指定默认表空间,则默认为Users表空间。
为用户指定默认表空间语法:
create user  用户名 identified by 密码
default tablespace 表空间名;

创建表空间语法
create tablespace test                    --表空间名称
datafile ‘D:/oradata/orcl/test.dbf’   --表空间对应的数据文件
size 32m                                           --初始大小
autoextend on                                 --自动增长打开
next 32m maxsize 2048m;              --每次增长32,最大到2G
删除表空间语法
drop tablespace test
[including contents and datafiles];

[…]可选项,有则表示删除表空间的内容和对应的数据文件

字符数据类型
char:固定长度字符串,最大可以存放 2000字节
varchar2:可变长度字符串,最大可以存放4000字节
long:可变长度字符串,最大可以存放2GB
数值数据类型number
可以存放整数,浮点数,实数
NUMBER [( p[, s])]
P表示精度(一共有几位)
S表示小数位数
日期时间类型
Date:精确到整数秒,05/20/2010 16:55:14
Timestamp:秒值精确到小数点后6位, 05/20/2010 16:55:14 .000000


RAW数据类型
用于存放二进制数据,最多存放2000字节
Long RAW数据类型
用于存放可变长度二进制数据,最多存放2GB
LOB大对象数据类型,最多存放4GB
Clob字符型大对象
Blob二进制数据大对象,可以存放图片/声音

创建表 create
create table student(
 sid number(4), --学号
 sname varchar2(20), --姓名
 sex char(2),   --性别
 birthday date, --生日
 sal number(7,2) --奖学金
);

演示创建主键、非空、默认、检查、外键等约束。

复制表
 CREATE TABLE <table_name>
 as <SELECT 语句>(需注意的是复制表不能复制表的约束);

示例:create table emptest
 as select * from emp;如果只复制表的结构不复制表的数据则:
 create table emptest
 as select * from emp where 1=2;

修改表 alter
增加一列:alter table 表名 add (列名 类型);
修改字段的长度:alter table 表名 modify (列名 类型);
删除一列:alter table 表名 drop colnum 列名;
修改表的名字:rename 表名 to 表名;
查看表结构:desc 表名;


增加数据
单行插入
Insert into 表名 (column1,column2,...)
values ( value1,value2, ...);
注意:日期格式为‘DD-MON-YY’,如’20-5月-10’

多行插入
把一个表中的数据插入另一个表中
insert  into 表名 <SELECT 语句>;

删除数据
delete from 表名 where 条件;
truncate table 表名;
前者删除数据可以恢复,而后者不能恢复,但truncate 效率更好。
演示用rollback恢复数据。

修改数据
    UPDATE 表名 set 列名1=值1,列名2=值2...WHERE <条件>

事务是最小的工作单元,作为一个整体进行工作
保证事务的整体成功或失败,称为事务控制
用于事务控制的语句有:
COMMIT;--提交
ROLLBACK [TO savepoint];--回滚
SAVEPOINT <savepoint>; --设置保存点位置

SQL:结构化查询语言
SQL支持下列类别的命令:
数据定义语言(DDL)
用于改变数据库结构,包括创建、更改和删除数据库对象
Create/alter/drop
数据操纵语言(DML)
用于检索、插入和修改数据
Insert/delete/update/select
事务控制语言(TCL)
Commit/rollback/savepoint
数据控制语言(DCL)
为用户提供权限控制命令
Grant/revoke

 

--具有dba角色的管理员操作
--建表空间
create tablespace stuSpace
datafile 'D:/stuSpace.dbf'
size 10M   --初始大小
autoextend on  --自增张
next 2M maxsize 1024M;  --最大大小
--建用户
create user stu identified by stu
default tablespace stuSpace;--给用户指定默认表空间
--授予权限
grant connect to stu;
grant resource to stu;
grant dba to stu;

--建表
create table stuInfo
(
   stuID number(4),
   stuName varchar2(20),
   stuSex char(2),
   stuBirth date,
   stuSal number(4,2)
);
select * from stuInfo;
--添加约束
--1非空约束
alter table stuInfo
modify stuID not null;
alter table stuInfo
modify stuName not null;
--2默认值
alter table stuInfo
modify stuSex default '男';
--3主键 PK_列名
alter table stuInfo
add constraint PK_stuID primary key(stuID);
--4检查约束 CK_列名
alter table stuInfo
add constraint CK_stuSex check(stuSex='男' or stuSex='女');
--5外键 FK_列名
create table Scores
(
   sid number,
   Score number,
   stuID number--stuInfo.stuID
);
--主表:被用,主键
--从表:使用,外键
alter table Scores
add constraint FK_stuID foreign key(stuID)
references stuInfo(stuID);

--测试
insert into stuInfo values(1,'张三',default,'4-6月-10',88.88);
insert into stuInfo values(2,'张三',default,'4-6月-10',88.88);
insert into stuInfo values(3,'张三',default,'4-6月-10',88.88);
--Oracle默认的日期格式为:DD-Mon-YY

update stuInfo set stuName='李四',stuSex='女',stuSal=stuSal+10
where stuID=2;

--提交事务
commit;

insert into Scores values(1,80,1);

--事务保存点
savepoint p1;
delete from scores;

savepoint p2;
delete from stuInfo;

--回滚事务,提交之后不能回滚
rollback;
rollback to p2;--回滚保存点之后的操作

SELECT * from stuInfo;
select * from scores;

truncate table scores;--不能删除有引用关系的表

--复制表(不复制约束)
create table stuBack
as
select * from stuInfo;

create table stuBack1
as
select * from stuInfo where 1=2;  //只复制表的结构

select * from stuBack1;

--多行插入
insert into stuBack1
select * from stuInfo;

--修改表结构一列
1.添加
alter table stuInfo
add(stuAge number);


2,删除
alter table stuInfo
drop column stuAge;


3删除表约束
alter table stuInfo
drop constraint 约束名;

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值