《oracle教学课件》尚硅谷-宋红康-07-创建和管理表.ppt
第7节创建和管理表,讲师:宋红康 新浪微博:尚硅谷-宋红康,目 标,通过本章学习,您将可以:描述主要的数据库对象创建表描述各种数据类型修改表的定义删除,重命名和清空表,常见的数据库对象,对象描述表 基本的数据存储集合,由行和列组成。视图从表中抽出的逻辑上相关的数据集合。序列 提供有规律的数值。索引提高查询的效率同义词 给对象起别名,Oracle 数据库中的表,用户定义的表:用户自己创建并维护的一组表包含了用户所需的信息如:SELECT*FROM user_tables;查看用户创建的表数据字典:由 Oracle Server 自动创建的一组表包含数据库信息,SELECT table_name FROM user_tables;,SELECT*FROM user_catalog;,查询数据字典,SELECT DISTINCT object_type FROM user_objects;,查看用户定义的表.,查看用户定义的各种数据库对象,查看用户定义的表,视图,同义词和序列,命名规则,表名和列名:必须以字母开头必须在 130 个字符之间必须只能包含 AZ,az,09,_,$,和#必须不能和用户定义的其他对象重名必须不能是Oracle 的保留字,$abc,2abc,_abc,a-b,a#d,CREATE TABLE 语句,必须具备:CREATE TABLE权限存储空间必须指定:表名列名,数据类型,尺寸,CREATE TABLE schema.table(column datatype DEFAULT expr,.);,语法确认,创建表,DESCRIBE dept,数据类型,数据类型描述VARCHAR2(size)可变长字符数据CHAR(size)定长字符数据NUMBER(p,s)可变长数值数据DATE 日期型数据LONG 可变长字符数据,最大可达到2GCLOB字符数据,最大可达到4GRAW(LONG RAW)原始的二进制数据BLOB二进制数据,最大可达到4GBFILE存储外部文件的二进制数据,最大可达到4GROWID行地址,使用子查询创建表,使用 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是空表。,使用子查询创建表,使用子查询创建表举例,DESCRIBE dept80,CREATE TABLE dept80 AS SELECT employee_id,last_name,salary*12 ANNSAL,hire_date FROM employees WHERE department_id=80;Table created.,ALTER TABLE 语句,使用 ALTER TABLE 语句可以:追加新的列修改现有的列为新追加的列定义默认值删除一个列重命名表的一个列名,ALTER TABLE 语句,使用 ALTER TABLE 语句追加,修改,或删除列的语法.,ALTER TABLE tableADD(column datatype DEFAULT expr,column datatype.);,ALTER TABLE tableMODIFY(column datatype DEFAULT expr,column datatype.);,ALTER TABLE tableDROP COLUMN column_name;,ALTER TABLE table_name RENAME COLUMM old_column_name TO new_column_name,追加一个新列,DEPT80,追加一个新列,DEPT80,新列,追加一个新列,使用 ADD 子句追加一个新列新列是表中的最后一列,ALTER TABLE dept80ADD(job_id VARCHAR2(9);Table altered.,修改一个列,可以修改列的数据类型,尺寸和默认值对默认值的修改只影响今后对表的修改,删除一个列,使用 DROP COLUMN 子句删除不再需要的列.,重命名一个列,使用 RENAME COLUMN table_name TO子句重命名列,删除表,数据和结构都被删除所有正在运行的相关事务被提交所有相关索引被删除DROP TABLE 语句不能回滚,DROP TABLE dept80;Table dropped.,清空表,TRUNCATE TABLE 语句:删除表中所有的数据释放表的存储空间TRUNCATE语句不能回滚可以使用 DELETE 语句删除数据,可以回滚对比:delete from emp2;select*from emp2;rollback;select*from emp2;,TRUNCATE TABLE detail_dept;Table truncated.,改变对象的名称,执行RENAME语句改变表,视图,序列,或同义词的名称必须是对象的拥有者,RENAME dept TO detail_dept;Table renamed.,总 结,语句描述CREATE TABLE 创建表ALTER TABLE 修改表结构 DROP TABLE 删除表RENAME TO 重命名表TRUNCATE TABLE 删除表中的所有数据,并释放存储空间,通过本章学习,您已经学会如何使用DDL语句创建,修改,删除,和重命名表.,以上这些DDL的命令,操作外,皆不可回滚!,