#数据定义语言
数据定义语言: (Data Definition Language, DDL) 是SQL语言集中负责数据结构定义与数据库对象定义的语言,由CREATE、ALTER与DROP三个语法所组成。
#数据库对象
数据库对象,是数据库的组成部分,有表、约束、索引、视图、序列、同义词、触发器、存储过程、函数、用户等。
Oracle中数据库对象命名原则
-
-
- 必须由字母开始,长度在 1–30个字符之间。
- 名字中只能包含 A–Z, a–z, 0–9, _ (下划线),$ 和 #。
- 同一个Oracle服务器用户所拥有的对象名字不能重复。
- 名字不能为Oracle的保留字。
- 名字是大小写不敏感
-
#创建表
建表语句语法
您必须具备 :
-
-
- CREATE TABLE的权限
- 一定的存贮空间(ALTER USER 用户名 QUOTA 尺寸 ON 表空间名字)
-
您需要指定:
-
-
- 表名
- 列名、列的类型及列的宽度
-
DEFAULT 选项
-
-
- 指定在插入或更新数据时,列的默认值
- 合法的值可以是字面值、表达式或SQL函数
- 非法的值是另一个列的名称或虚拟列
- 默认值的数据类型必须和列的类型匹配
-
#数据类型
#建表语句语法
默认值应用 插入默认值
#用子查询语法创建表
新表的字段列表必须与子查询中的字段列表匹配
字段列表可以省略
Select列表中的表达式列需要给定别名,如果没有别名会产生错误
#引用另一个用户的表
如果一个表不属于当前用户,如果引用它,必须把方案名放在表名的前面。例如,scott.emp
#Oracle中表的分类
Oracle 数据库中的表分为下面两类:
-
-
- 用户表:由用户创建和维护的表的集合,它包含用户所使用的数据。
- 数据字典:由Oracle 服务器创建和维护的表的集合,它包含数据库信息,比如是表的定义,数据库结构的信息等,可以把它理解为管理表的表,由Oracle服务器创建和维护。如user_tables
-
##修改表
#添加新列
增加列原则: 可以添加或修改列 /不能指定新添加列的位置,新列会成为最后一列。
如在dossier表上增加性别字段
#修改已存在的列
列的修改可以修改数据类型,长度,及默认值。
修改数据类型:已有的行数据必须为空。
修改长度原则:
数值型修改长度:当长度向小改时,已有行的数该列必须为空;当长度向大改时,可以随意修改。
字符型修改长度:当长度向小改时,只要修改后的值能容纳下当前已有数据的最大值即可,当长度向大改时,可以随意修改。
修改列的默认值: 默认值的修改不会影响已经存在的行,只影响新增加的行。
#删除列
可以用DROP子句从表中删除列,包括列的定义和数据。
删除列原则:
-
-
- 列可以有也可以没有数据。
- 表中至少保留一列。
- 列被删除后,不能再恢复。
- 被外键引用的列,不能被删除。
-
##删除表
删除表语法:
只有表的创建者 或具有DROP ANY TABLE权限的用户才能删除表
删除表原则:
-
-
- 表中所有的数据和结构都被删除。
- 任何视图和同义词被保留但无效。
- 所有与其相关的约束和索引被删除。
- 任何未完成的事务被提交。
-
##重命名表
##截断表
TRUNCATE和DELETE区别
TRUNCATE是DDL,只能删除表中所有记录,释放存储空间,使用ROLLBACK不可以回滚。
DELETE是DML,可以删除指定记录,不释放存储空间,使用ROLLBACK可以回滚。
##相关数据字典
##本章重点总结
-
- 数据类型
- 表的两种创建方式
- 修改表的三种情况:添加列、修改原有列的属性、删除列
- 删除表
- 重命名表
- 截断表