Oracle中的对象包括对象包括了表、用户、视图、索引......等。
使用DDL语句来操作对象。
一、DDL语句
DDL指数据定义语言,用来操作数据库中的对象。
DDL属于隐式事务,执行即提交事务,对于数据库的改变是永久的。
创建对象:create
删除对象:drop
修改对象:alter
重命名对象:rename
二、用户
只要system或者sys账户,或者其它拥有操作账户权限的用户可以进行账户管理。
1、创建:
create user 用户名 identified by 密码
2、维护:
--赋予用户登录的权限 grant connect to 用户名; --赋予用户操作资源的权限 grant resoure to 用户名; --赋予角色的权限给用户 grant 角色名 to 用户名;
--撤销用户的权限 revoke 权限名/角色名 from 用户名
3、删除:
drop user 用户名;
4、忘记密码:
1、cmd窗口下输入:sqlplus /nolog 2、输入: conn /as sysdba 3、输入:alter user 用户名 identified by 新密码
三、表
分类:
用户表:由用户创建和维护的集合,包含用户信息。
数据字典:由数据库系统创建和维护的集合,包含数据库信息。
Oracle中常用的数据字典:
user_tables,包含本用户拥有的所有的表的信息。
user_objects,包含本用户拥有的所有的数据类型的信息。
user_catalog,包含本用户拥有的表、视图、同义词、序列的信息。
1、创建:
--指定列名列属性创建表 creat table 表名(列名1 数据类型1,列名2 数据类型2.......) --通过结果集创建表 --可以使用这种方式备份表(tablebak),但是备份表中只存字段名和数据,不会有约束。 creat table 表名 as 查询语句
2、维护:
--增加列 alter table 表名 add(列名 数据类型) --修改列 alter table 表名 modify(列名 数据类型 default 默认值) --删除列 alter table 表名 drop column 列名 --改列名 alter table 表名 rename column 原列名 to 新列名
--改表名 rename 原表名 to 新表名
--截断表,把表中所有数据删除。 truncate table 表名
3、删除:
--删除表 drop table 表名
四、约束
对于字段储存的数据进行约束。
主键约束(Primay Key):值唯一,且非空。
唯一约束(Unique):值唯一,可以有一个空。
检查约束(Check):自定义约束,对值进行限制。
非空约束(Not null):值不为空。
外键约束(Foregin Key):值必须为其它表已经存在的数据。
1、创建:
--创建表的时候创建约束 --除了外键约束,可在列后面直接指定约束 creat table 表名(列名 数据类型 constraint 约束名 约束,....) --除了非空约束,可以在列定义完后,定义约束 creat table 表名 (列名 数据类型,......, constraint 约束名 约束(列名)) --外键约束:必须在列定义完后单独定义外键,注意外键参照的表和列都必须已经存在 create table 表名(列名 数据类型,..... constraint 约束名 foreign key(列名) references 参照表名(参照列名))
--在表创建后,给字段添加约束 alter table 表名 add(列名 constraint 约束名 约束,.....)
2、维护:
--修改字段的约束 alter table 表名 modify (列名 constraint 约束名 约束,.....)
3、查看约束:
--查看约束 --使用数据字典可以查约束。Oracle中查看指定表的所有约束: select constraint_name,constraint_type,search_condition from user_constraints where table_name = 表名
4、启用与禁用:
--禁用约束 --注意:当此字段为另一个表的外键时,需要在结尾加cascade关键字,它声明与此列相关的约束全部禁用。 alter table 表名 disable constraint 约束名 cascade
--启用约束 alter table 表名 enable constraint 约束名
五、视图
视图是根据需求保存的一个结果集。
它能够作为一个表来被查询,也可通过它进行数据修改(不建议)。
对视图DML操作,实际上是操作数据源的表。
分类:
简单视图:数据来源一个表,列为单独列,无分组,可以进行DML操作。
复杂视图:数据来源多个表,列中可以有函数值、表达式,可以是分组结果,不能进行DML操作。
内建视图:每一个子查询获得的结果集都是一个内建视图,可以通过取别名来引用它的列。(在from子句中使用的子查询)
不能DML操作的列:
函数列,表达式列,通过distinct获得的列。
1、创建:
--视图的列名省略时,默认使用查询语句中的列名 --在结尾加上 with read only ,声明视图为只读视图 creat view 视图名(列名1,列名2,...) as 查询语句
2、删除:
drop view 视图名
标签:__,--,数据库,视图,约束,表名,Oracle,table,列名 From: https://www.cnblogs.com/lurenjia-bky/p/16994692.html