Oracle(十)-------------------创建与管理表
2012-03-15 19:09
711 查看
常见的数据库对象 1、 表:基本数据存储集合,由行和列组成 2、 视图:从表中抽出的逻辑上相关的数据集合 3、 序列:提供有规律的数值 4、 索引:提高查询的效率 5、 同义词:给对象起别名 用户定义的表: a) 用户自己创建并维护的一组表 b) 包含了用户所需的信息 数据字典: c) 由 Oracle Server 自动创建的一组表 d) 包含数据库信息 命名规则: 表名和列名: 必须以字母开头 必须在 1–30 个字符之间 必须只能包含 A–Z, a–z, 0–9, _, $, 和 # 必须不能和用户定义的其他对象重名 必须不能是Oracle 的保留字 Oracle默认存储是都存为大写 数据库名只能是1~8位,datalink可以是128位,和其他一些特殊字符 Create table 语句: 必须具备: CREATE TABLE权限 存储空间 必须指定: 表名 列名, 数据类型, 数据类型的大小 create table demo (name varchar(20) ) 使用子查询创建表: 时候用 AS subquery 选项,将创建表和插入数据结合起来 指定的列和子查询中的列要一一对应 通过列名和默认值定义列 SQL> create table demo2 2 as 3 select ename,sal from emp ; Default值: 执行insert操作时,可以为其指定默认值 值、表达式和SQL语句都可以作为默认值 其他的列名或者是伪列都是非法的 默认值的类型必须和该列的类型一致 CREATE TABLE hire_dates (id NUMBER(8),hire_date DATE DEFAULT SYSDATE); 数据类型: 1、 varchar2(size):可变长字符数据 最大长度为4000 bytes 可做索引的最大长度为749 2、 char(size):固定长字符数据 最大长度为2000 bytes 3、 number(p,s):可变字符数据 数字类型 P有效位,S为小数位 4、 date:日期型数据 5、 long:可变长字符数据,最大可达2G 6、 clob:字符数据,最大可达到4G 7、 raw(long,raw):原始的二进制数据 8、 blob:二进制数据,最大可达到4G 9、 bfile:存储外部文件的二进制数据,最大可达到4G 10、 rowid:行地址 是一个伪列 ALTER TABLE 语句 使用 ALTER TABLE 语句追加, 修改, 或删除列的语法. 追加一个新列,新列是表中的最后一列 SQL> alter table demo add ( 2 sal number 3 ); 表已更改。 可以修改列的数据类型, 尺寸, 和默认值。对默认值的修改只影响今后对表的修改 SQL> alter table demo modify (sal varchar2(20)); 表已更改。 使用 DROP COLUMN 子句删除不再需要的列. SQL> alter table demo drop column sal; 表已更改。 删除表: 数据和结构都被删除 所有正在运行的相关事物被提交 所有相关索引被删除 DROP TABLE 语句不能回滚 SQL> drop table qqq; 改变对象的名称: 执行RENAME语句改变表, 视图, 序列, 或同义词的名称 必须是对象的拥有者 SQL> rename demo2 to qqq; 清空表: TRUNCATE TABLE 语句: 删除表中所有的数据 释放表的存储空间 TRUNCATE语句不能回滚 可以使用 DELETE 语句删除数据 SQL> truncate table qqq; 约束 约束是表一级的限制 如果存在依赖关系,约束可以防止错误的删除数据 约束的类型: NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY CHECK 约束规则: 用户可以自定义约束,也可以使用Oracle Server的sys_cn格式命名约束 约束创建的时机: 创建表的时候,同时创建约束 表结构创建完成后 约束可以定义在列一级,或者是表一级 通过数据字典查看约束 非空性约束与唯一性约束: create table checkTable(email varchar2(30) not null,constraint chk_email unique(email)); insert into checkTable values ('111@111.com'); 会插入一条记录,如果再插入一条相同的记录,会报错,因为有唯一性约束,当然如果再增加几个字段,向其它字段中插入信息而不向email中插入任何数据也是会报错的,因为有不为空的约束,如果email有一个默认值就不会出现由于不能为空而出现的问题了 主键约束: 1 create table bookType( 2 bt_id number(9), 3 bt_name varchar2(30), 4 constraint bt_id_pk primary key(bt_id) 5* ) 外键约束: 1 create table books( 2 bk_id number(9), 3 bk_name varchar2(30), 4 bt_id number(9), 5 constraint bk_id_pk primary key(bk_id), 6 constraint bt_id_fk foreign key (bt_id) references bookType(bt_id) on delete cascade 7* ) SQL> / 不能删除有外键约束的记录 外键约束(续) FOREIGN KEY: 在子表中,定义了一个表级的约束 REFERENCES: 指定表和父表中的列 ON DELETE CASCADE: 当删除父表时,级联删除子表记录 ON DELETE SET NULL: 将子表的相关依赖记录的外键值置为null SQL> delete from bookType where bt_id=1; check约束 定义每一行记录所必须满足的条件 下面的表达式可以使用在check约束中: 引用CURRVAL, NEXTVAL, LEVEL, 和ROWNUM 调用SYSDATE, UID, USER, 和USERENV 函数 另一个表的查询记录 SQL> create table check01( 2 sal number(3,2) 3 , 4 constraint sal_ck check(sal>0.2) 5 );
相关文章推荐
- asm管理的Oracle 创建用户表空间
- oracle 10g 学习之创建和管理表(7)
- Oracle_创建和管理表
- OracleDBA用户管理(创建、授权、更改)
- Oracle管理与维护.安装创建启动关闭数据库的常见问题(一)
- Oracle笔记(九) 表的创建及管理
- [*用Oracle来创建学生信息管理系统*]
- 全面学习ORACLE Scheduler特性(4)创建和管理Schedule
- Oracle管理-创建表空间和用户授权
- ORACLE中的用户管理、创建、删除和查询
- Oracle 数据库权限管理及用户创建以及查看当前实例名
- 4.oracle表的管理(数据类型,表创建删除,数据CRUD操作)
- Oracle表的创建与管理
- 源码-Oracle数据库管理-第十二章-使用PL/SQL创建Oracle程序-Part 1(PL/SQL基础)
- 4.windows和Linux下创建oracle用户名表空间,表,插入数据,用户管理表等操作
- oracle表的管理(数据类型,表的创建,删除,数据操作)
- oracle的用户创建以及要注意的权限,角色,对象等管理
- oracle表的管理(数据类型,表创建删除,数据CRUD 操作)
- oracle基础知识1----用户(创建用户)和表空间、管理表
- Oracle用户创建、授权、角色管理和更改字符集。