数据库发展和类型
数据库目录结构
Oracle 数据库的一些基本操作
创建用户
create user 用户名 identified by 密码;
给用户修改密码
alter user 用户名 identified by 新密码;
修改自己的密码
password 用户名;
删除用户
drop user 用户名 [cascade]可选参数 cascade
在删除用户时,注意: 如果要删除的用户,已经创建了表,那么就需要在删除的时候带一个参数 cascade; Cascade 有级联的作用
l 给用户赋权限
grant 权限/角色 to 用户名;
收回用户权限
revoke 权限/角色 from 用户名;
系统权限:是数据库管理相关的权限:create session(登录权限)、create table(创建表权限)、create index(创建索引权限)、create view(创建视图权限)、create sequence(创建序列权限)、create trriger(创建触发器权限)
connnect 角色:是授予用户的最基本的权利,能够连接到 oralce 数据库中,并在对其他用户的表有访问权限时,做 SELECT、UPDATE、INSERTT 等操作。Create session--建立会话;Alter session--修改会话;Create view--建立视图。Create sequence--建立序列等权限
resource 角色:具有创建表、序列、视图等权限。Create table--建表;Create trigger-- 建立促发器;Create procedure--建立过程;Create sequence—建立序列;Create type--建立类型等权限;
dba 角色:是授予系统管理员的,拥有该角色的用户就能成为系统管理员了,它拥有所有的系统权限。
表空间:
创建表空间必须使用 system 用户创建
create tablespace hpu56(表空间名)
datafile 'E:\datebase\hpu6.DBF' //指定指向的数据文件路径
size 5m //初始化表空间大小为 5m
autoextend on next 2m //自动扩展,每次扩展 2m
maxsize unlimited; // unlimited最大扩展量没有限制,100M最大扩展到100M
创建用户指定默认表空间
create user 用户名 identified by 密码 default tablespace 表空间名;
修改用户默认表空间:
alter user 用户名 default tablespace 表空间名;
查看表空间:
select * from v$tablespace;
查看用户默认表空间:
select username,default_tablespace from dba_users where username='SCOTT';
创建表:
create table 表的名称(字段名称 1 数据类型, 字段名称 2 数据类型);
create table 表的名称 as select 字段名称 1, 字段名称 2... from表的名称 ;
修改表
alter table 语句添加、修改或删除列的语法
添加列
alter table 表的名称 add(字段名称1 数据类型, 字段名称2 数据类型...);
alter table 表的名称 add 字段名称 数据类型;
修改列
alter table 表名 modify(字段名称1 数据类型, 字段名称2 数据类型...);
alter table 表名 modify字段名称 数据类型;
删除列
alter table 表名 drop(字段名称1 , 字段名称2,...);
alter table 表名 drop 字段名称;
修改表的名称
rename 表名 to 新表名;
修改列名
alter table 表名 rename column 旧列名 to 新列名;
查看表结构
desc 表名;
约束
约束分为: 非空(NOT NULL)约束、 唯一(UNIQUE)约束、主键(PRIMARY KEY)约束、外键(FOREIGN KEY)约束、条件(CHECK)约束,约束存在表user_constraints中。
非空(NOT NULL)
添加非空
create table 表名称 (字段名称1 数据类型,字段名称2 数据类型 not null);
alter table 表名 modify 字段名 not null;
删除非空
alter table 表名 modify 字段名 null;
唯一(UNIQUE)
添加修改唯一
create table 表名称 (字段名称1 数据类型,字段名称2 数据类型 unique);
alter table 表名 add constraint 约束名 unique (字段名称1,字段名称2);
删除唯一
alter table 表名 drop constratint 约束名称;
注意:oracle 中 unique 可以为 null,而且允许多行为 null
主键(PRIMARY KEY)
添加修改主键
create table 表名称 (字段名称1 数据类型,字段名称2 数据类型 primary key);
create table 表名称 (字段名称1 数据类型,字段名称2 数据类型 , constraint 约束名primary key (字段名称1,字段名称2));
alter table 表名 add constraint 约束名 primary key (字段名称1,字段名称2);
删除主键
alter table 表名 drop primary key cascade;
这是因为如果在两张表存在主从关系,那么在删除主要的主键约束时, 必需带上 cascade 选项
注意:每个表只能有且有一个主键约束。
特别说明 primary key 与 unique 的区别:
1、一张表可以有多个 unique(唯一)约束;
2、一张表只能有一个主键;
3、设置为主键的列不能有 null 值;
外键(FOREIGN KEY)
外键(FOREIGN KEY)约束:用来维护从表(Child Table)和主表(Parent Table)之间的引用完整性.能够维护数据库的数据一致性,数据的完整性。防止错误的垃圾数据入库;
用于定义主表和从表之间的关系,外键约束要定义在从表上,主表则必需具有主键约束或是 unique 约束,当定义外键约束后,要求外键列数据必需在主表的主键列存在或是为 null
添加修改主键
create table 表名称 (字段名称1 数据类型,字段名称2 数据类型 references 主表名称(字段名) );
create table 表名称 (字段名称1 数据类型,字段名称2 数据类型 , constraint 约束名 foreign key (字段名称) references主表名称(字段名)));
alter table 表名 add constraint 约束名 foreign key(字段名称) references 主表名称(字段名);
删除主键
alter table 表名 drop constratint 约束名称;
特别说明:froeign key 外键的细节
1、外键指向主键列;
2、外键可以指向 unique 列;
3、建表时先建主表,再建从表;删除表先删从表,再删主表。
4、外键列属性值要与主键或 unique 列属性值的类型保持一致
5、外键列的值,必需在主键列中存在。但外键列的值允许为 null
条件(CHECK)