在上一篇博文中我们讨论到了DML、DDL、DCl,其中DDL是关于表结构的操作,也就是说我们是主要在讨论DDL
表的创建
除了传统的建表方法:create table 表名 (列名1 类型,列名2 类型,…)。在上一篇博文中,我们说到了在为表增加记录时的批处理,其中,我们也可以利用那种方法为我们创建表,只是我们不需要其中的数据,而是只要那张表的结构,这时候我们只要加上一个假条件即可
如上图所示,1=2为假,所以筛选不到任何记录,只得到表的结构。
约束
在谈及到表的创建,当然少不了约束,其中primary key,foreign key,unique,not null这4种约束在学习jdbC的时候已经做过大量练习,所以在这里只说check约束。
如图所示,我们使用check约束,规定gender只能为男/女,现在我们尝试增加一条记录
当我们在性别这一个属性中输入其他值时:
其中约束条件后面的英文字母SCOTT.SYS_C0011124
前面的Scott指的是当前用户名,后面SYS_C0011124指的是约束名。由于前面我们没有为check约束定义一个名字,所以Oracle用自己创建的名字。我们也可以为该约束创建一个名字
如上 使用constraint可以为约束命名,当我们再次添加记录不符合约束时就会:
建议:一般情况下,为了代码的整洁性,我们把定义表结构跟约束分离开来。
表的修改
对于创建表的时候,我们忘记了定义约束,或者输入错了列名,列的类型,都可以修改
列的增加
比如说,我们想增加多一个列,来存放图片,这时候我们输入语句:
列的删除
当我们觉得某一列是多余的时候,我们可以把它删除掉
列的修改
当我们需要修改列信息的时候,输入如下语句、
列的重命名
注意:关于column漏掉的情况,在重命名和删除列的时候需要column。如果忘记了,遇到错就加上去或者去掉。。。
表的删除
当我们要删除test4这张表的时候。
少了一张test4表,但是有了一张’乱码‘的表
Oracle回收站
这是因为Oracle有自己的回收站!那串乱码的文字就是该回收站的引用
我们看一下里面的内容
当我们在删除表的后面添加一个关键字purge 就会使要删除的表不出现在回收站中
我们来删除test3
在回收站中确实没有看到test3表。
但是我们怎样访问回收站里面的表呢?是直接把它的名字复制过来嘛?
我们应该在这个回收站地址的引用名字中加上双引号,然后就可以访问
注意:当用户为系统管理员的时候,没有回收站,所以使用系统管理员登陆数据库时要谨慎删除数据!