–数据定义语言: (Data Definition Language,DDL) 是SQL语言集中负责数据结构定义与数据库对象定义的语言,由create、alter与drop,rename,truncate语法所组成。
–数据库对象,是数据库的组成部分,有表、约束、索引、视图、序列、同义词、触发器、存储过程、函数等
Oracle中数据库对象命名原则
– 必须由字母开始,长度在 1–30个字符之间。
– 名字中只能包含 A–Z, a–z, 0–9, _ (下划线),$ 和 #。
– 同一个Oracle服务器用户所拥有的对象名字不能重复。
– 名字不能为Oracle的保留字。
– 名字是大小写不敏感
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二进制的数据,可以存放图片,声音 ,文件
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 any table权限的用户才能删除表
– 删除表原则:
• 表中所有的数据和结构都被删除。
• 任何视图和同义词被保留但无效。
• 所有与其相关的约束和索引被删除。
• 任何未完成的事务被提交。
必须是对象的所有者(权限问题)
**rename 旧表名 to 新表名;**
• 执行truncate语句的前提,必须是表的所有者
• 或者有delete any table系统权限来截断表。
truncate 和delete区别:
– truncate是DDL,只能删除表中所有记录,释放存储空间,使用rollback不可以回滚。
– delete是DML,可以删除指定记录,不释放存储空间,使用rollback可以回滚。
数据字典表的数据是由oracle自动维护的相关数据字典
– 查询数据字典
select table_name from user_tables
– 查看数据字典结构
desc user_tables