oracle数据库SQL开发之创建和维护表

oracle数据库SQL开发之创建和维护表

  • 一、数据定义语言
  • 二、数据库对象
  • 三、创建表
    • (一)创建数据表 create table 表名
    • (二)数据类型
  • 四、修改表(列数据) --alter table 表名
  • 五、删除表 drop table(表名)
  • 六、重新命名表
  • 七、截断表 ----truncate table 表名;
  • 八、数据字典 ----由Oracle 服务器创建和维护的表

一、数据定义语言

–数据定义语言: (Data Definition Language,DDL) 是SQL语言集中负责数据结构定义与数据库对象定义的语言,由create、alter与drop,rename,truncate语法所组成。

二、数据库对象

数据库对象,是数据库的组成部分,有表、约束、索引、视图、序列、同义词、触发器、存储过程、函数等
oracle数据库SQL开发之创建和维护表_第1张图片
Oracle中数据库对象命名原则
– 必须由字母开始,长度在 1–30个字符之间。
– 名字中只能包含 A–Z, a–z, 0–9, _ (下划线),$ 和 #。
– 同一个Oracle服务器用户所拥有的对象名字不能重复。
– 名字不能为Oracle的保留字。
– 名字是大小写不敏感

三、创建表

(一)创建数据表 create table 表名

1.直接创建

CREATE TABLE course(表名)
            (
                                   course_no NUMBER(4),
                                   course_name VARCHAR(20),
                                   tearcher VARCHAR(12),
                                   credit NUMBER(2) DEFAULT 4        --默认值
                )

2…用子查询语法创建表

CREATE TABLE dept10
                    AS
                           SELECT empno, ename, sal +1000 newSalary
                            FROM emp
                            WHERE deptno = 10;

Select列表中的表达式列需要给定别名,如果没有别名会产生错误

(二)数据类型

字符(串)型
(1)char(size) 固定长度字符型数据,长度的大小以字节为单位,默认和最小长度为1;最大长度为 2000;
(2)varchar2(aize) 可变长度字符数据,最小长度是 1;最大长度是4000
(3)clob 可变长度字符数据,最大可存储4G数据

数值型
(1)number 数值型:可以表示整数,也可以表示小数,表数范围- 10的 125次方到10的126次方。
(2)number(n) 整型

(3)number(p,s) 数值型:总长度为p,小数位最大为s位 ,整数位最大为p-s位,p的 范围从1到38,s的范围从-84到127

日期型
(1)date 包括年月日时分秒
(2)timestamp 精度比DATE更高一些,可以精确到毫秒

图片类型
(1)blob 最大可存储4G二进制的数据,可以存放图片,声音 ,文件

四、修改表(列数据) --alter table 表名

1.新增列 alter table…add… --不能指定新添加列的位置,新列会成为最后一列。
alter table dossier add (sex CHAR(1));
2. 修改列 alter table…modify(列名 …) --列的修改可以修改列名,数据类型,长度,及默认值
8i版本之后,可以修改列名字
alter table 表名 rename column 原有列名 to 新列名 。
把dossier表性别(sex) 列,修改为长度为2 ----alter table dossier modify (sex char(2));

  添加默认值               
 -alter table dossier  modify (sex default ‘ 男’);

3.删除列 alter table…drop…
删除列原则:
• 列可以有也可以没有数据。
• 表中至少保留一列。(要有表的样子)
• 列被删除后,不能再恢复。
被外键引用的列,不能被删除

五、删除表 drop table(表名)

– 删除表权限:
• 只有表的创建者
• 或具有drop any table权限的用户才能删除表

– 删除表原则:
• 表中所有的数据和结构都被删除
• 任何视图和同义词被保留但无效。
• 所有与其相关的约束和索引被删除
• 任何未完成的事务被提交。

六、重新命名表

必须是对象的所有者(权限问题)
  **rename 旧表名 to 新表名;**

七、截断表 ----truncate table 表名;

• 执行truncate语句的前提,必须是表的所有者
• 或者有delete any table系统权限来截断表。

truncate 和delete区别:
– truncate是DDL,只能删除表中所有记录,释放存储空间,使用rollback不可以回滚。
– delete是DML,可以删除指定记录,不释放存储空间,使用rollback可以回滚。

八、数据字典 ----由Oracle 服务器创建和维护的表

数据字典表的数据是由oracle自动维护的相关数据字典

– 查询数据字典

select table_name from user_tables

– 查看数据字典结构

 desc user_tables

你可能感兴趣的