oracle学习笔记一

基本的数据存储对象,以行和列的形式存在,列 也就是字段,行也就是记录
数据字典 也就是系统表,存放数据库相关信息的表
约束条件 执行数据校验,保证了数据完整性的
视图 一个或者多个表数据的逻辑显示
索引 用于提高查询的性能
同义词 对象的别名




数据库对象的命名规则
1、对象名称必须以字母开头
2、有效的字符包括数字、字母和三个特殊字符(# _ $)
3、不要使用oracle的保留字作为对象名称
4、同一用户下的对象不能同名,即使是不同的对象类型










数据类型 说明
char(size) 定长字符,≤2000个字节
varchar2(size) 变长字符,≤4000个字节
date 日期数据,默认的格式是dd-mm-yy:如11-6月-06
timestamp 日期数据,要比date数据更确切,包含时分秒。
integer 整型数据
number[(s,p)] 数字型,可存放实型和整型 ,精度(p)和范围(s)
long 可变字符,≤2GB个字符
float,real 是NUMBER的子类型
blob 存放图形、声音和影像,大二进制对象,≤4GB
clob 存放大文本文件,≤4GB




建表的语句
标准的建表语法:
CREATE TABLE table_name
(
column_name datatype [DEFAULT expr] , …
);
使用子查询创建表的语法
CREATE TABLE table
[column(, column...)]
AS subquery;
带数据的
create table departments02
as select * from departments
不带数据的
create table departments03
as select * from departments where 1>2
不省略字段列表
create table departments04 (
"部门编号",
"部门名称",
"管理者编号“ )
as select department_id,department_name,manager_id from departments
省略字段列表
create table departments05
as select department_id "部门编号", department_name "部门名称" from departments


ALTER TABLE 语句
增加字段
ALTER TABLE table
ADD (column datatype [DEFAULT expr]
[, column datatype]...);
修改字段
ALTER TABLE table
MODIFY (column datatype [DEFAULT expr]
[, column datatype]...);
删除字段
ALTER TABLE table
DROP column (columns);


删除表的内容
TRUNCATE TABLE table_name;
清除表中所有的记录,delete可以选择删除表中的一部分
是DDL语句,不可以回滚,delete可以使用rollback回滚,放弃修改。
释放表的存储空间,delete不释放空间




删除表
DROP TABLE table_name;


使用RENAME语句改变对象名称,可以修改表、视图、序列或者同义词的名称


RENAME old_name TO new_name;




数据字典提供了下列信息:
1、数据库的物理和逻辑结构
2、对象的定义和空间分配
3、完整性约束条件
4、用户
5、角色
6、权限
7、审计(把对数据库的操作记录下来)




主要通过两类字典视图查询:
1、DBA:所有方案(整个数据库)包含的对象信息
格式:dba_对象名称的复数形式
查询用户视图:
select * from dba_views
查询用户同义词:
select * from dba_synonyms
查询用户表 select * from dba_tables
查询用户约束
select * from dba_constraints
查看用户的序列
select * from dba_sequences




2、USER:用户方案的对象信息


格式:user_对象名称的复数形式
查询用户视图:
select * from user_views
查询用户同义词:
select * from user_synonyms
查询用户表 select * from user_tables
查询用户约束
select * from user_constraints
查看用户的序列
select * from user_sequences


查询某个表的约束时,表名必须大写
SELECT constraint_name, constraint_type
FROM user_constraints
WHERE table_name IN ('EMP', 'DEPT');


你可能感兴趣的:(oracle学习)