概述
常见数据库对象
- DML:主要为增删改查等数据管理操作
- 表中声明为主键的列通常用序列来实现
- 同义词不是临时的别名,命名好后,以后都可以使用该别名
- 约束:创建完表后,对表的约束
- DDL命令都不可回滚
- 清空表数据(truncate):属于DDL语句
- 从表结构的角度看:
- DML:横向操作,修改表中记录
- DDL:纵向操作,例如添加列,修改列
- 查询用户创建的表,可使用代码或图形化界面
- GUI中my objects:用户创建的自己的数据库对象
—
命名规则
- 创建表,类比创建类,要指定类名(是一个标识符),命名要遵守命名规则
- 红字为SQL与Java的命名规则的不同处
实例
Java:1,3合法
SQL:只有最后一个合法
创建表
- varchar2(20):表明20字符长度大小
- number(10,2)表明总共10位,小数点2位
- date不需要指明数据所占空间
- 有创建表的系统权限才能创建表
- 创建表的声明格式:列名+该列对应的数据类型+该列占用的存储空间(十进制式,如3位整型,最大为999)
- 两种方式:1. 白手起家,必为空表 2. 从其他表导入来创建表(同时导入了数据),create as格式
- 以导入方式创建空表,可通过添加过滤条件实现
- 如where 1=2 ,通过过滤满足1=2条件的数据,这肯定不满足——》create空表
- 表结构一样:select *(达到复制表的目的)
数据类型
- 红字为常用数据类型
- number类型对应Java的int类型,都叫整型,但实质上不一样
- 字符串型:Oracle中为varchar2,而sql为varchar
- char类比Java的string,为不可变字符序列,而varchar类比stringbuffer,为可变字符序列
- BLOB数据类型用于存储图片,视频等
修改表
增加列
- 新的列是表中最后一列
修改列
- 可修改存储空间大小,数据类型,默认值等
- 仅对修改后的数据操作生效,之前保存原样(仅对今后表的添加项产生影响)
- 表中该列若有数据,不允许修改数据类型了(修改数据空间和默认值是可以的)
删除列
重命名列
删除表
清空表
- DDL语句:执行完,自动提交,回滚无效
- DDL语句相当于一次性操作,写入硬盘,没法undo,已经保存了
- 增删改操作只是暂时性写入内存——》 rollback——》回写回去
改变对象名称
- rename不用加table关键字,因为其作用对象为整个数据库对象
总结
练习
- 设置为不可用后,输入desc +table_name,查看表结构,此时没有该列,不意味着不存在该列,但效果等同于不存在该列
- 若再设置为可用,则在查询表结构时可看见该列