Oracle常用数据库对象(片段)
1:用户和权限
1.1 用户的创建
a)语法--- create user 用户名 identified by 密码;
b)创建用户abcd,并设定密码为abcd;---注意:操作数据库对象是需要DBA(数据库管理员)权限的;
create user abcd identified by bjsxt;
1.2 给用户授权
Oracle中的权限很多,为了方便用户管理权限,提供了角色这个概念。角色代表一个身份,该身份拥有固定的权限。常见的角色:DBA(数据库管理员),CONNECT(临时用户,拥有少量的权限),RESOURCE(比较靠谱的权限,拥有更多的权限,不能管理数据库);
a)给abcd用户授予普通用户的权限
grant connect,resource to abcd;
b)从abcd用户撤销resource权限
revoke resource from abcd;
1.3 删除用户
drop user abcd;
1.4修改用户
1.4.1修改用户密码
alter user abcd identified by 123;
1.4.2锁定用户和解锁用户
a)锁定用户
alter user abcd account lock;
b)解锁用户
alter user abcd account unlock;
2.数据库表
2.1Oracle中的数据类型
2.1.1字符类型
a)varchar2---可变长度的字符串
b)cahr ---不可变长度的字符串,效率较高;
2.1.2数值类型
number,既可以表示整数,也可以表示浮点数;
2.1.3日期时间类型
a)date,存放日期和时间;
b)timestamp,比date更精确的日期时间类型;
2.1.4 lob类型
a)blob,用于存放二进制数据,可以用于存放文件、图片、音频、视频等二进制数据;
b)clob,用于存放答文本信息;
2.2创建表格
创建学生表,字段包含学号、姓名、性别、年龄、入学日期、班级、email等信息;
create table student(
sno number(4),
sname varchar(12),
gender char(3),
age number(3),
sdate date,
clazz varchar2(20),
email varchar2(50)
)
2.3修改表格
2.3.1添加字段
alter table student add(score number(3));
2.3.2修改字段的类型
alter table student modify(score number(5,2));
2.3.3重命名字段
alter table student rename column score to fenshu ;
2.3.4删除字段
alter table student drop column fenshu;
2.3.5删除表格
drop table stu;
3.表格的约束
constraints,约束,用于对表格的额数据进行限制,保证表格数据的完整性和一致性。
语法:constraints 约束名+约束类型(约束字段)
3.1主键约束(primary key)
主键约束用于唯一标识一条记录的字段,必须保证即非空有唯一。
一张表中,只能有一个主键;
a)在表级别定义主键约束,对约束统一管理
create table student (
sno number(4),
sname varchar2(12),
gender char(3),
age number(3),
sdate date,
clazz varchar2(20),
email varchar2(50),
constraints pk_student primary key (sno)
);
b)在列级别添加主键约束
create table student (
sno number(4) constraints pk_student primary key,
sname varchar2(12),
gender char(3),
age number(3),
sdate date,
clazz varchar2(20),
email varchar2(50)
);
c)在列级别添加简化版约束
create table student (
sno number(4) primary key,
sname varchar2(12),
gender char(3),
age number(3),
sdate date,
clazz varchar2(20),
email varchar2(50)
);
d)联合主键,只能在表级别定义,因为一个表只能有一个主键
create table student (
sno number(4),
sname varchar2(12),
gender char(3),
age number(3),
sdate date,
clazz varchar2(20),
email varchar2(50),
constraints pk_student primary key (sno, email)
);
3.2非空约束not null
字段值不允许为空,非空约束只能在列级别定义
create table student (
sno number(4),
sname varchar2(12) not null,
gender char(3),
age number(3),
sdate date,
clazz varchar2(20),
email varchar2(50),
constraints pk_student primary key (sno)
);
3.3唯一约束 (unique)
要求字段值不能重复;
create table student (
sno number(4),
sname varchar2(12) not null,
gender char(3),
age number(3),
sdate date,
clazz varchar2(20),
email varchar2(50), -- unique,
constraints pk_student primary key (sno),
constraints uk_student_email unique (email)
);
3.4 检查约束(check)
用于限定字段值的取值范围;
create table student (
sno number(4),
sname varchar2(12) not null,
gender char(3) check (gender in ('男', '女')),
age number(3),
sdate date,
clazz varchar2(20),
email varchar2(50),
constraints pk_student primary key (sno),
constraints uk_student_email unique (email),
constraints ck_student_age check (age between 18 and 30)
);
3.5外键约束(foreign key)
用于约束表和表之间的关系,两张标的依赖关系,以emp表和dept表为例,emp表依赖dept表,因此,dept表可以被称之为主表,emp表被称之为从表。
注意:
》主表中,只有主键或唯一建才可以被从表参考;
》从表中作为外键的列,类型一定要和主表的被参考列相同;
a)建立主表clazz
create table clazz (
cno number(3) primary key,
cname varchar2(20) not null,
croom number(3)
);
b)建立从表,并定义外键Student
create table student (
sno number(4),
sname varchar2(12) not null,
gender char(3) default '男' check (gender in ('男', '女')),
age number(3),
sdate date,
email varchar2(50),
cno number(3),
constraints pk_student primary key (sno),
constraints uk_student_email unique (email),
constraints ck_student_age check (age between 18 and 30),
constraints fk_student_cno foreign key (cno) references clazz (cno)
);
c)也可以在列级别定义外键,如下
create table student (
sno number(4),
sname varchar2(12) not null,
gender char(3) default '男' check (gender in ('男', '女')),
age number(3),
sdate date,
email varchar2(50),
cno number(3) references clazz(cno),
constraints pk_student primary key (sno),
constraints uk_student_email unique (email),
constraints ck_student_age check (age between 18 and 30)
);
d)外键中的删除问题;
》主表中的数据在被引用时,无法直接删除,默认情况下,需要先删除主表中的数据。
》可以在定义外建时,设置删除策略为cascade(级联),表示当删除主表的信息时,同时删除从表中的所有关联的信息
create table student (
sno number(4),
sname varchar2(12) not null,
gender char(3) default '男' check (gender in ('男', '女')),
age number(3),
sdate date,
email varchar2(50),
cno number(3),
constraints pk_student primary key (sno),
constraints uk_student_email unique (email),
constraints ck_student_age check (age between 18 and 30),
constraints fk_student_cno foreign key (cno) references clazz (cno) on delete cascade
);
》可以在定义外建时,设置删除策略为set null(设空),表示当删除主表的信息时,将从表中的相关数据设置为null
create table student (
sno number(4),
sname varchar2(12) not null,
gender char(3) default '男' check (gender in ('男', '女')),
age number(3),
sdate date,
email varchar2(50),
cno number(3),
constraints pk_student primary key (sno),
constraints uk_student_email unique (email),
constraints ck_student_age check (age between 18 and 30),
constraints fk_student_cno foreign key (cno) references clazz (cno) on delete set null
);
3.6在修改表格时添加约束
a)给student表添加约束
-- 主键约束
alter table student add constraints pk_student primary key (sno);
-- 唯一约束
alter table student add constraints uk_student_email unique (email);
-- 检查约束
alter table student add constraints ck_student_age check (age between 18 and 30);
alter table student add constraints ck_student_gender check (gender in ('男','女'));
-- 外键约束
alter table student add constraints fk_student_cno foreign key (cno) references clazz (cno);
Oracle常用数据库对象(片段)的更多相关文章
- ORACLE常用数据库字段类型
ORACLE常用数据库字段类型 常用的数据库字段类型如下: 字段类型 中文说明 限制条件 其它说明 CHAR 固定长度字符串 最大长度2000 bytes VARCHAR2 可变长度 ...
- ORACLE常用数据库类型(转)
oracle常用数据类型 1.Char 定长格式字符串,在数据库中存储时不足位数填补空格,它的声明方式如下CHAR(L),L为字符串长度,缺省为1,作为变量最大32767个字符,作为数据存储在ORAC ...
- oracle 备份数据库对象(存储过程PROCEDURE,FUNCTION,VIEW,TRIGGER...)
开发过程中,需要不停的备份数据库对象, 特别是存储过程, 每次手动备份不免很低能啊 历经几次修改终于, 完美了,O(∩_∩)O哈哈~ (当然,你也可以再改简便一点~~~) select db ...
- oracle(创建数据库对象)
1 --创建数据库 2 --1.SYSDBA系统权限 3 startup:--启动数据库. 4 shutdown:--关闭数据库. 5 alter database[mount]|[open]|[ba ...
- MySQL基本命令和常用数据库对象
MySQL基本命令: 连接远程主机的MySQL服务(为了保证安全性,执行下面命令时,可以省略-p后面的密码,执行命令后系统会提示输入密码) mysql -p 密码 -u 用户名 -h 主机地址 --d ...
- Oracle常用数据库表操作
配置数据库: user:orcl.passward:71911.Hao全局数据库名:orcl..解锁数据库用户名,SCOTT,SYSTEM,SYS, PWD:71911.Hao输入sqlplus, ...
- oracle(查询数据库对象1)
1 --查询表信息 2 xxx_tables--包含表的基本描述信息和统计信息 3 xxx_tab_columns--包含表中列的描述信息和统计信息 4 xxx_all_tables--包含当前数据库 ...
- 【Java EE 学习 28 上】【oracle学习第二天】【子查询】【集合运算】【几种数据库对象】
一.子查询 1.为什么要使用子查询:问题不能一步求解或者一个查询不能通过一步查询得到. 2.分类:单行子查询和多行子查询. 3.子查询的本质:一个查询中包含了另外一个或者多个查询. 4.使用子查询的规 ...
- Oracle 数据库对象
数据库对象是数据库的组成部分,常常用CREATE命令进行创建,可以使用ALTER命令修改,用DROP执行删除操作.前面已经接触过的数据库对象有表.用户等. 今天将学习更多的Oracle数据库对象: 同 ...
随机推荐
- UE4 C++与蓝图交互
一.C++调用蓝图的函数 本来应该有一个很好的示例,但一下却忘了适用于哪些地方,只有简单写一个步骤了. 1.新建一个C++类继承Actor,名称随意,我这里继承了一个SplineMesh,一样de,并 ...
- Ubuntu 16.04 安装和使用QQ最简洁的方式
推荐参考网址: 1 http://www.ubuntukylin.com/ 2 http://www.ubuntukylin.com/application/ Wine QQ 1 http:// ...
- linux2.6内核链表
一. 链表数据结构简介 链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式.相对于数组,链表具有更好的动态性,建立链 ...
- Android开发学习之路--UI之ListView
这里再学习写android的ListView,其实我们都使用过ListView,就像手机的联系人,就是用的ListView了.下面就实现下简单的ListView吧,首先是xml文件中添加相关的代码: ...
- "ORA-20100: 为 FND_FILE 创建文件 o0003167.tmp 失败"
今天在运行请求时候得到如下的错误日志: 原因:由于ORA-20100:为FND_FILE创建文件o0003167.tmp失败. 在请求日志的错误原因中您会找到更详细的信息. 查找了一些资料,总结 ...
- linux后台运行程序(secureCRT断掉或关闭后继续运行程序)
secureCRT断掉后想继续运行程序.也就是程序会在后台一直执行到结束. secureCRT通过ssh联接到client端运行程序,如果关掉窗口或者断开连接时,任务会被kill. 为了程序能够后台执 ...
- Java 学习之反射机制“解刨”分解类,并获取内容!
正常情况下,单纯的做开发是接触不到反射机制的(额,当然并不排除例外的情况了).下面我就对我学到的反射方面的知识做一个小小的总结,旨在复习和以后的查看. 原理分析: 所谓反射就是将一个类当做我们研究的对 ...
- React Native入门教程 1 -- 开发环境搭建
有人问我为啥很久不更新博客..我只能说在学校宿舍真的没有学习的环境..基本上在宿舍里面很颓废..不过要毕业找工作了,我要渐渐把这个心态调整过来,就从react-native第一篇博客开始.话说RN也出 ...
- 今日成为CSDN认证专家
认证时写的申请材料: 程序猿一枚毕业于南开工作于上海.喜欢读书,喜欢跑步,激情似火,心静如水. 喜欢编程,喜欢寻根问底各种技术,喜欢在各种新技术中汲取营养. 喜欢分享,因此以一些高质量的博文来回报各位 ...
- 《java入门第一季》之Socket编程通信和TCP协议通信图解
Socket编程通信图解原理: TCP协议通信图解