oracle学习笔记一

来源:互联网 发布:js算法与数据结构 编辑:程序博客网 时间:2024/05/18 00:08
   基本的数据存储对象,以行和列的形式存在,列也就是字段,行也就是记录
数据字典    也就是系统表,存放数据库相关信息的表
约束条件    执行数据校验,保证了数据完整性的
视图    一个或者多个表数据的逻辑显示
索引    用于提高查询的性能
同义词      对象的别名




数据库对象的命名规则
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');



原创粉丝点击