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常用数据库对象(片段)的更多相关文章

  1. ORACLE常用数据库字段类型

    ORACLE常用数据库字段类型   常用的数据库字段类型如下:   字段类型 中文说明 限制条件 其它说明  CHAR 固定长度字符串 最大长度2000 bytes     VARCHAR2 可变长度 ...

  2. ORACLE常用数据库类型(转)

    oracle常用数据类型 1.Char 定长格式字符串,在数据库中存储时不足位数填补空格,它的声明方式如下CHAR(L),L为字符串长度,缺省为1,作为变量最大32767个字符,作为数据存储在ORAC ...

  3. oracle 备份数据库对象(存储过程PROCEDURE,FUNCTION,VIEW,TRIGGER...)

    开发过程中,需要不停的备份数据库对象, 特别是存储过程, 每次手动备份不免很低能啊 历经几次修改终于, 完美了,O(∩_∩)O哈哈~      (当然,你也可以再改简便一点~~~) select db ...

  4. oracle(创建数据库对象)

    1 --创建数据库 2 --1.SYSDBA系统权限 3 startup:--启动数据库. 4 shutdown:--关闭数据库. 5 alter database[mount]|[open]|[ba ...

  5. MySQL基本命令和常用数据库对象

    MySQL基本命令: 连接远程主机的MySQL服务(为了保证安全性,执行下面命令时,可以省略-p后面的密码,执行命令后系统会提示输入密码) mysql -p 密码 -u 用户名 -h 主机地址 --d ...

  6. Oracle常用数据库表操作

    配置数据库: user:orcl.passward:71911.Hao全局数据库名:orcl..解锁数据库用户名,SCOTT,SYSTEM,SYS,   PWD:71911.Hao输入sqlplus, ...

  7. oracle(查询数据库对象1)

    1 --查询表信息 2 xxx_tables--包含表的基本描述信息和统计信息 3 xxx_tab_columns--包含表中列的描述信息和统计信息 4 xxx_all_tables--包含当前数据库 ...

  8. 【Java EE 学习 28 上】【oracle学习第二天】【子查询】【集合运算】【几种数据库对象】

    一.子查询 1.为什么要使用子查询:问题不能一步求解或者一个查询不能通过一步查询得到. 2.分类:单行子查询和多行子查询. 3.子查询的本质:一个查询中包含了另外一个或者多个查询. 4.使用子查询的规 ...

  9. Oracle 数据库对象

    数据库对象是数据库的组成部分,常常用CREATE命令进行创建,可以使用ALTER命令修改,用DROP执行删除操作.前面已经接触过的数据库对象有表.用户等. 今天将学习更多的Oracle数据库对象: 同 ...

随机推荐

  1. Android中FrameAnimation动画的使用

    Frame Animation 表示帧动画,是顺序播放事先做好的图像,跟电影类似,Android SDK提供了另外一个类AnimationDrawable来定义使用Frame Animation. 下 ...

  2. java操作xml文件--修改节点

          上一篇文章我介绍了SAX方法解析XML文件的过程,这篇文章讲解的内容是利用DOM方法修改XML文件的节点内容.       下面依然是首先贴出XML文件: <?xml version ...

  3. Servlet处理流程分析-Servlet学习之旅(二)

    tomcat的处理处理客户端流程分析 tomcat即是servlet容器也具有web服务器的功能,即也具有html页面的功能. 1.首先客户端会将html请求发给tomcat内置的web服务器 2.w ...

  4. 安装解压版本的MySQL,安装过程中的常见命令,检查windows系统错误日志的方式来检查MySQL启动错误,关于Fatal error: Can't open and lock privilege

     以端口 port = 3306 # 设置mysql的安装目录 basedir=D://Installed//mysql-5.6.26-winx64//mysql-5.6.26-winx64 # ...

  5. Activity与Fragment的生命周期详解

    在安卓中Activity与Fragment是非常相似的两个类,它们各自都拥有自己的生命周期,且都可以用来显示布局文件中的视图.其中Activity是通过setContenView()显示视图,而Fra ...

  6. 【嵌入式开发】 ARM 汇编 (指令分类 | 伪指令 | 协处理器访问指令)

    作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42408137 转载请著名出处 本博客相关文档下载 :  -- AR ...

  7. 【翻译】Ext JS最新技巧——2015-10-21

    原文:Top Support Tips Kevin Cassidy:全宽度的字段错误信息 有考虑过让验证信息显示在表单字段的下面(msgTarget:'under'),但最后发现验证信息被压缩显示了吗 ...

  8. 欢迎进入我的个人博客 anzhan.me

    CSDN的博客依旧会更新,但是还是专注于技术. 个人的博客 http://anzhan.me 不单单会同步csdn的技术文章,还会有个人的更多私人的分享,包括旅行日记.欢迎各位朋友经常去看看,大家有私 ...

  9. python字符串与数字类型转化

    数字转字符串:str(数字),如str(10) 相反:int(字符串),如int('10') 另外,import string后 用string.atoi('100',base),转换为int,bas ...

  10. GIT版本控制 — GIT与SVN的相互转换 (三)

    git-svn git-svn用于Git和SVN的转换,可以把Git仓库迁移成SVN仓库,反之亦可. 详细介绍可见[1],或者命令行输入git-svn. Bidirectional operation ...