Oracle基础笔记七

第七章 创建和管理表

1.常见的数据库对象

对象 描述

表              基本的数据存储集合,由行和列组成。

视图 从表中抽出的逻辑上相关的数据集合。

序列 提供有规律的数值。

索引 提高查询的效率

同义词 给对象起别名

2.命名规则

表名和列名:

必须以字母开头

必须在 1–30 个字符之间

必须只能包含 A–Z, a–z, 0–9, _, $, 和 #

必须不能和用户定义的其他对象重名

必须不能是Oracle 的保留字

3.数据类型

数据类型                 描述

VARCHAR2(size)         可变长字符数据

CHAR(size)   定长字符数据

NUMBER(p,s)           可变长数值数据

DATE 日期型数据

LONG 可变长字符数据,最大可达到2G

CLOB 字符数据,最大可达到4G

RAW (LONG RAW) 原始的二进制数据

BLOB 二进制数据,最大可达到4G

BFILE 存储外部文件的二进制数据,最大可达到4G

ROWID 行地址

4.创建表

4.1CREATE TABLE 语句:

必须具备:CREATE TABLE权限和存储空间

必须指定:表名,列名, 数据类型, 尺寸

语法:

CREATE TABLE dept(

deptno NUMBER(2),

dname VARCHAR2(14),

loc VARCHAR2(13)

);

4.2使用子查询创建表

使用 AS subquery 选项,将创建表和插入数据结合起来

指定的列和子查询中的列要一一对应,通过列名和默认值定义列

CREATE TABLE table

[(column, column...)]

AS subquery;

复制现有的表:

create table emp1 as select * from employees;

create table emp2 as select * from employees where 1=2;

--创建的emp2是空表。

举例:

CREATE TABLE dept80

AS     SELECT  employee_id, last_name,

salary*12 ANNSAL,

hire_date

FROM    employees

WHERE   department_id = 80;

5.ALTER TABLE 语句

使用 ALTER TABLE 语句可以:

追加新的列

修改现有的列

为新追加的列定义默认值

删除一个列

重命名表的一个列名

使用 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  column_name;

ALTER TABLE table_name RENAME COLUMM old_column_name

TO new_column_name

5.1使用 ADD 子句追加一个新列

ALTER TABLE dept80

ADD (job_id VARCHAR2(9));

5.2可以修改列的数据类型, 尺寸和默认值,其中对默认值的修改只影响今后对表的修改

ALTER TABLE dept80

MODIFY (last_name VARCHAR2(30));

ALTER TABLE dept80

MODIFY (salary number(9,2) default 1000);

5.3使用 DROP COLUMN 子句删除不再需要的列.

ALTER TABLE  dept80

DROP COLUMN  job_id;

5.4使用 RENAME COLUMN [table_name] TO子句重命名列

ALTER TABLE  dept80

RENAME COLUMN  job_id TO id;

6.删除表

数据和结构都被删除

所有正在运行的相关事务被提交

所有相关索引被删除

DROP TABLE 语句不能回滚

DROP TABLE dept80;

7.清空表

TRUNCATE TABLE 语句:

TRUNCATE TABLE detail_dept;

删除表中所有的数据

释放表的存储空间

TRUNCATE语句不能回滚

可以使用 DELETE 语句删除数据,可以回滚

对比:

delete from emp2;

select * from emp2;

rollback;

select * from emp2;

8.总结:以下这些DDL的命令,操作外,皆不可回滚

语句 描述

CREATE TABLE 创建表

ALTER TABLE 修改表结构

DROP TABLE 删除表

RENAME  TO   重命名表

TRUNCATE TABLE 删除表中的所有数据,并释放存储空间

时间: 2024-10-10 20:38:38

Oracle基础笔记七的相关文章

Oracle基础笔记十

第十章 视图 1.视图:从表中抽出的逻辑上相关的数据集合. 视图是一种虚表. 视图建立在已有表的基础上, 视图赖以建立的这些表称为基表. 向视图提供数据内容的语句为 SELECT 语句, 可以将视图理解为存储起来的 SELECT 语句. 视图向用户提供基表数据的另一种表现形式 2.为什么使用视图 控制数据访问 简化查询 避免重复访问相同的数据 3.分类:简单视图和复杂视图 特性           简单视图       复杂视图 表的数量        一个       一个或多个 函数    

Oracle基础笔记

=====================================第一章:oracle数据库基础============================================= Orace特点: 1.跨操作系统,跨硬件平台的数据操作能力 2.支持多用户,大事务量的处理 3.在保持数据安全性和完整性方面的性能优越 4.支持分布式数据处理,具有可移植性 Sqlserver特点: 1.只能在windows上运行 Oracle和Sqlserver两者的共同点: 1.都是关系型数据库 表

Oracle基础(七):数据库事务

一.基本概念 1.事务(Transaction):是并发控制的基本单位.所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位.例如,银行转账工作:从一个账号扣款并使另一个账号增款,这两个操作要么都执行,要么都不执行.所以,应该把它们看成一个事务.事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性. 2.事务与锁 当执行事务操作时,oracle会在被作用的表上家锁,防止其他用户改表的结构. 3.事务的操作过程 1)事务的开始(默认自动开始)

Oracle学习笔记七 锁

锁的概念 锁是数据库用来控制共享资源并发访问的机制. 锁用于保护正在被修改的数据 直到提交或回滚了事务之后,其他用户才可以更新数据 对数据的并发控制,保证一致性.完整性.             并行性 -允许多个用户访问同一数据 一致性 - 一次只允许一个用户修改数据 完整性 - 为所有用户提供正确的数据.如果一个用户进行了修改并保存,所做的修改将反映给所有用户 锁的类型 行级锁:对操作的数据行进行锁定,防止其他用户(连接)进行修改. 表级锁:对整个表进行锁定. 行级锁 对正在被修改的行进行锁

Oracle基础笔记九

第九章 约束 1.什么是约束 约束是表级的强制规定 有以下五种约束:NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY CHECK 2.注意事项 如果不指定约束名 ,Oracle server 自动按照 SYS_Cn 的格式指定约束名 创建和修改约束: 建表的同时 建表之后 可以在表级或列级定义约束 可以通过数据字典视图查看约束 3.表级约束和列级约束 作用范围: ①列级约束只能作用在一个列上 ②表级约束可以作用在多个列上(当然表级约束也 可以作用在一个列上) 定义方

Oracle基础笔记十一

第十一章 其他数据库对象 1.什么是序列? 序列:提供有规律的数值. 序列: 可供多个用户用来产生唯一数值的数据库对象 自动提供唯一的数值 共享对象 主要用于提供主键值 将序列值装入内存可以提高访问效率 1.2.定义序列 CREATE SEQUENCE 语句 CREATE SEQUENCE sequence [INCREMENT BY n]  --每次增长的数值 [START WITH n]    --从哪个值开始 [{MAXVALUE n | NOMAXVALUE}] [{MINVALUE n

Oracle基础笔记十四

第十四章 高级子查询 1.子查询 子查询 (内查询) 在主查询执行之前执行 主查询(外查询)使用子查询的结果 SELECT select_list FROM table WHERE expr operator (SELECT select_list FROM  table); 问题:查询工资大于149号员工工资的员工的信息 SELECT last_name FROM   employees WHERE  salary > (SELECT salary FROM   employees WHERE

Oracle基础(七)数据表

一.创建表 语法: CREATE TABLE [schema.]table (column datatype[,column datatype[,...]); 说明: CREATE TABLE:为创建表的关键字. schema:表示对象的所有者即模式的名称,如果用户在自己的模式中创建表,则可以不指定所有者的名称. table:表示表的名称 column:表示列的名称 datatype表示该列的数据类型及宽度. 示例: --会员表 create table user( id number not

Oracle基础笔记四

第四章 多表查询 1.笛卡尔集 笛卡尔集会在下面条件下产生: 省略连接条件 连接条件无效 所有表中的所有行互相连接 为了避免笛卡尔集, 可以在 WHERE 加入有效的连接条件. 2.Oracle 连接 使用连接在多个表中查询数据. select table1.column,table2.column from table1,table2 where table1.column = table2.column 在 WHERE 子句中写入连接条件. 在表中有相同列时,在列名之前加上表名前缀 2.1等