表空间
表空间是数据库最大的逻辑单元,一个Oralce数据库至少包含一个表空间,就是名为SYSTEM的系统表空间。
每个表空间是由一个或者多个数据文件组成的,一个数据文件只能与一个表空间相关联。
表空间的大小等于构成该表空间的所有数据文件大小之和。
从物理上来说:表空间对应数据文件,用来存放数据库数据。
从逻辑上来说:表空间将数据库对象有规律的组织起来,便于用户管理。
系统表空间
安装Oracle数据库时,系统默认创建的表空间。
System:主要存放管理员创建的对象
Users:主要存放一般用户创建的对象
用户自定义表空间
创建表空间语法
create rablespace test --表空间名称
datafile 'D:\oradata\orcl\test.dbf' --表空间对应的数据库文件
size 32m --初始大小
autoextend --自动增长打开
删除表空间语法
drop tablespace test
including contents datafiles;
including contents and datafiles--表示删除表空间的内容和对应的数据文件
默认表空间
默认表空间
创建用户时,可以为该用户指定默认表空间,即该用户今后创建的表等数据库对象,都会存放在该默认表空间中。
创建用户时,如果不指定默认表空间,则默认为Users表空间。
为用户指定默认表空语法
create user 用户名 identified by 密码
default tablespace 表空间名;
Oracle数据类型
字符数据类型
char:固定长度字符串,最大可以存放2000字节
varchar2:可变长度字符串,最大可以存放4000字节
long:可变长度字符串,最大可以存放2GB
数值数据类型number
可以存放整数,浮点数,实数
NUMBER[(p[,s])]
p表示精度(一共有几位),最高精度为38位
s表示小数整数
日期时间类型
Date:精确到整数秒,12/23/2021 10:37:12
Timestamp:秒值精确到小数点后六位,12/23/2021 10:37:12.000000
RAW数据类型
用于存放二进制数据,最多存放2000字节
Long RAW数据类型
用于存放可变长度二进制数据,最多存放2GB
LOB大对象数据类型,最多存放4GB
Clob字符型大对象
Blob二进制数据大对象,可以存放图片/声音
Oracle表管理
表rable:是最基本的数据库对象,用于存储数据
创建表语法:
create table student(
sid number(4),--学号
sname carchar2(20),--姓名
sex char(2);--性别
birthday date,--生日
sal number(7,2)--奖学金
);
删除表语法:
drop rable student;
修改表 alter table
增加一列 alter table 表明 add (列名 类型);
修改字段的长度 alter table 表名 modify (列名 类型);
删除一列 alter table 表名 drop column 列名;
修改表的名字 rename 旧表名 to 新表名;
查看表结构 desc 表名; (注意:此命令局限于命令窗口)
为表添加约束
约束 constraint:保证数据的完整性,避免非法数据。
主键约束 primary key
外键约束 foreign key
检查约束 check
是否为空 null | not null
默认值 default
添加约束语法:
alter table 表名
drop constraint 约束名 约束类型 约束条件;
删除约束语法:
alter table 表名
drop constraint 约束名;
复制表
复制表:利用现有表创建新表
CREATE TABLE<table_name> as <SELECT 语句>;(注意:复制表不能复制表的约束语)
提示:
create table emptest
as select * from emp;
只复制表的结构不复制表的数据
create table emptest
as select * from emp where 1=2;
数据管理-insert
增加数据
单行插入
insert into 表名 (column1,column2,...)
values(value1,value2,...);
注意:日期格式为'DD-MON-YY',如'23-12月-21'
多行插入:向所有表中插入查询结果集
insert into 表名<SELECT 语句>;
注意:前后列名必须一一对应,如:
insert into test(tid,tname) select tid,tname from demo;
数据管理-delete
删除数据
delete from 表名 where 条件;
truncate table 表名;
注意:
1、delete删除数据,会记录到日志文件,可以通过事务控制语句恢复
2、truncate删除数据,不会记录到日志文件,不能恢复,但执行效率相对于delete要快
数据库管理-update
修改数据
UPDATE 表名 set 列名1=值1,列名2=值2...
WHERE条件>;
事务控制语句
事务是最小的工作单元,作为一个整体进行工作
保证事务的整体成功或失败,称为事务控制
用于事务控制的语句有:
COMMIT; 提交事务
ROLLBACK [TO savepoint];回滚事务
SAVEPOINT <savepoint>;设置保存点位置
SQL总结
SQL:结构化查询语言
SQL支持下列类别的命令:
数据定义语言(DDL)
用于改变数据库结构,包括创建、更改和删除数据库对象
create/alter/drop
数据操纵语言
用于检索、插入和修改数据
insert/delete/update/select
事务控制语言(TCL)
commit/rollback/savepoint
数据控制语言(DCL)
为用户提供权限控制命令
grant/revoke