DDL:数据定义语言
是SQL语言集中负责数据结构定义与数据库对象定义的语言,由create,alter与drop三个语法所组成
Oracle数据库对象命名原则:
1)必须由字母开始,长度在1-30字符之间
2)名字中只能包含A-Z,a-z,0-9,_,$,#
3)同一个Oracle服务器用户所拥有的对象名字不能重复
4)名字不能为Oracle的保留字
5)名字是大小写不敏感
表:
前提:
1)具有create table的权限
2)一定的存储空间
表分类:
1)用户表
2)数据字典表:Oracle自动维护 user_tables
default选项:
1)指定在插入或更新数据时列的默认值
2)合法的值可以是字面值,表达式或SQL函数
3)非法的值是另一个列的名称或虚拟列
4)默认值的数据类型必须和列的类型匹配
表操作:
1)创建表(create):
1-1)普遍建表
create table 表名(
列名 数据类型 [属性特征],
列名 数据类型 [属性特征],
...
列名 数据类型 [属性特征]
)
1-2)子查询建表
语法:
create table 表名 as 子查询;
PS:
1)子查询中select列表中的表达式列(如sal+100)需要给定别名,如果没有别名会出错
2)新表的字段列表必须与子查询中的字段列表匹配
3)字段列表可以省略
1-3)引用另一个用户的表
select * from 方案名.表名;
注意点:创建表时可以使用默认值
2)修改表(alter):
语法:alter table 表名 add()
modify
drop
RENAME COLUMN 原有列名 TO 新列名
3)删除表(drop):
drop table 表名;
4)截断表(truncate):表的所有或者有delete any table权限
TRUNCATE TABLE 表名;
5)重命名表(rename):表的创建者
RENAME 旧表名 TO 新表名;
修改表的注意点:
增加新列:
1)可以添加或修改列
2)不能指定新添加列的位置,新列会成为最后一列
修改已存在的列:
1)可以修改列名,数据类型,长度和默认值
2)修改数据类型:已有的行数据必须为空(对应列为空)
3)修改长度原则
3-1)数值型修改长度
3-1-1)当长度向小改时,已有行数据该列必须为空;
3-1-2)当长度向大改时,可以随意修改
3-2)字符型修改长度
3-2-1)当长度向小改时,只要修改后的值能容纳下当前已有数据的最大值即可;
3-2-2)当长度向大改时,可以随意修改
4)修改列的默认值:
默认值的修改不会影响已经存在的行,只影响新增加的行
删除列:
1)可以用drop字句从表中删除列,包括列的定义和数据
2)列可以有也可以没有数据
3)表中至少保留一列(不能删除表中仅剩的最后一列)
4)列被删除后,不能再恢复
5)被外键引用的列,不能被删除
删除表注意点:
1)只有表的创建者或具有drop any table权限的用户才能删除表
2)表中所有数据和结构都被删除
3)任何视图和同义词都被保留但无效
4)所有与其相关的约束和索引被删除
5)任何未完成的事务被提交
truncate和delete的区别:
1)truncate是DDL语句,释放存储空间,使用rollback不可以回滚
delete是DML语句,不释放存储空间,使用rollback可以回滚
2)truncate只能删除表中所有记录,delete可以有条件的删除
3)truncate一页页删除,delete一行行删除
数据类型:
1)char:占用固定长度的空间,不够用空格填充
2)varchar2:长度可变
3)clob:长度可变,存储大数据(字节,文本),最大存储4GB
4)number:
4-1)number:数值型(整数或小数),表示范围-10的125次方~10的126次方
4-2)number(n):表示一个n位的整数
4-3)number(p,s):表示一个小数,小数位位数是s,
4-3-1)s>0:只能表示小数,精确到小数点右边s位,并四舍五入,然后检验有效位位数是否<=p
4-3-2)s<0:只能表示整数,并且精确到小数点左边s为,进行四舍五入,然后检验有效位位数是否<=p+|s|
4-3-3)s=0:只能表示整数
4-3-4)p<s:只能表示数字是绝对值小于1的数字,且从小数点右边开始的前s-p为必须是0,保留s位小数
5)date:年月日时分秒
6)timestamp:时间戳:精确到毫秒
7)blob:存储大数据(二进制,视频,音频,图片),最大存储4GB
数据字典表:
数据字典表由Oracle服务器创建和维护表,通过数据字典,可以很容易了解当前用户的对象信息.比如user_tables这个数据字典表,里面保存当前用户所有的表对象
方案:逻辑概念
用户名同名,表示该用户下所有数据库对象的集合.创建一个用户后,在该用户下创建第一张表后,Oracle会自动给该用户分配一个方案,方案名与用户名相同.
表空间:物理概念
物理地址,数据文件(.dbf),一个表空间可以有一个或者多个数据文件,一个数据文件只能属于一个表空间