oracle--第一天PLSQL--bai
第一天:
-- 创建book表
create table book
(
bid number primary key,
bname varchar2(20) not null,
price number(10,2) not null
)
-- 插入数据
insert into book(bid,bname,price)values('20','西游记','170.5');
insert into book(bid,bname,price)values('12','红楼梦','190.5');
insert into book(bid,bname,price)values('22','三国演义','150.5');
insert into book(bid,bname,price)values('32','梅','140.5');
--查询
select * from book;
--清空表
delete from book;--删除数据
truncate table book;---删除数据,含日志
--查询所有的逻辑对象。所有。 前缀dba_ system用
select count(1) from dba_objects;--查询所有的逻辑对象。所有。
select * from dba_users;--查看所有的用户
select * from dba_tables;--查询所有的表· 前缀all_
--查询所有的逻辑对象.本用户权限范围下的能看的所有。
select count(1) from all_objects;--查询所有的逻辑对象。所有。
select * from all_users; --查看权限下能看到的所有用户
select * from all_tables; --查询所有的表·
--查询本用户私有的逻辑对象
select * from user_objects;
select * from user_users; --查看本用户。
select * from user_tables;--查看本用户的所有私有表 select * from v$instance;--oracle实例的情况
select * from v$session; --oracle所有连接的情况 -- 使用system的normal对soctt用户进行解锁
alter user scott account unlock; -- 使用system的normal对soctt用户进行密码解锁
alter user scott identified by orcl; -- 创建1个用户
create user bai identified by orcl; --创建用户bai,指定密码为orcl。
--默认的表空间是users,默认的临时表空间是temp;
grant connect,resource to bai;-- 将连接及创建对象权限交给bai drop user bai cascade; -- 删除用户bai 第二天:
---创建用户java2
create user java2 identified by orcl;
grant connect,resource to java2;
--java2登录后,建表并插入数据
create table student1
(
sid number primary key ,
sname varchar2(20) not null,
sex varchar2(20) not null,
age number not null check(age>=0 and age<=120)
) insert into student1 values('11','白','男','18');
insert into student1 values('21','白2','男','18');
insert into student1 values('31','白3','男','18');
---创建用户java3
create user java3 identified by orcl;
grant connect,resource to java3; --将student1表的查询及修改及删除权限授予java3
grant select,update,delete on student1 to java3;
--授权后,java3就能执行成功 --无法插入(无此权限)
select * from java2.student1;
delete from java2.student1 where sid='31';
insert into java2.student1 values('34','黑','女','90');--无法插入(无此权限) {用户角色权限}:
-- 查看当前用户的所有角色
select * from user_role_privs;
--查看用户的表对象权限
select * from user_tab_privs;
--查看用户的系统权限
select * from user_sys_privs;
--查看指定角色的权限
select * from role_sys_privs;
--使用system登录,将创建视图的权限授予java2
grant create view to java2;
--使用java2登录后,可以创建视图
create view j2_view2 as
select * from java2.student1;
--让1个角色拥有其他多个角色的功能总和
create role myrole;
--让myrole继承于connect角色的权限
grant connect to myrole;
grant resource to myrole-- 10g里面,resource是无法继承的。
--查看角色所继承的角色
select * from role_role_privs where role='MYROLE';
--使用system登录,从java2回收创建视图的权限
revoke create view from java2; {常用逻辑对象}: {表空间}:
--创建表空间
create tablespace bai_ts2 datafile 'E:\1.dbf' size 6M;
--创建用户,绑定表空间
create user java_bai2 identified by orcl
default tablespace bai_ts2;
--修改指定用户的默认表空间
alter user java_bai2
default tablespace bai_ts2; grant connect,resource to java_bai2;
select * from dba_users where username='JAVA_BAI2'; --扩容
alter tablespace bai_ts2
add datafile 'E:\2.dbf' size 50M; --删除表空间
drop tablespace bai_ts2 including contents; {视图}:
--视图的创建
查询员工编号、员工名及所在部门的名称
create or replace view emp_basic_info_view
as
select scott.emp.empno as 员工编号,scott.emp.ename as 员工名,
scott.dept.dname as 部门名 from scott.emp ,scott.dept
where scott.emp.deptno = scott.dept.deptno --查询视图
select * from emp_basic_info_view delete from system.emp_basic_info_view where 员工编号='7369'; --创建一个学生信息(INFOS)表和约束
CREATE TABLE INFOS
(
STUID VARCHAR2(7) NOT NULL, --学号 学号=‘S’+班号+2位序号
STUNAME VARCHAR2(10) NOT NULL, --姓名
GENDER VARCHAR2(2) NOT NULL, --性别
AGE NUMBER(2) NOT NULL, --年龄
SEAT NUMBER(2) NOT NULL, --座号
ENROLLDATE DATE, --入学时间
STUADDRESS VARCHAR2(50) DEFAULT '地址不详', --住址
CLASSNO VARCHAR2(4) NOT NULL --班号 班号=学期序号+班级序号
)
ALTER TABLE INFOS ADD CONSTRAINT PK_INFOS PRIMARY KEY(STUID);--创建一个主键约束
ALTER TABLE INFOS ADD CONSTRAINTS UN_STUNAME UNIQUE(STUNAME);--创建唯一约束
--创建各种check约束
ALTER TABLE INFOS ADD CONSTRAINT CK_INFOS_GENDER CHECK(GENDER = '男' OR GENDER = '女');
ALTER TABLE INFOS ADD CONSTRAINT CK_INFOS_SEAT CHECK(SEAT >=0 AND SEAT <=50);
ALTER TABLE INFOS ADD CONSTRAINT CK_INFOS_AGE CHECK(AGE >=0 AND AGE<=100);
ALTER TABLE INFOS ADD CONSTRAINT CK_INFOS_CLASSNO CHECK((CLASSNO >='1001' AND CLASSNO<='1999') OR (CLASSNO >='2001' AND CLASSNO<='2999')); --创建一个成绩表(SCORES)表和约束
CREATE TABLE SCORES
(
ID NUMBER , --ID SQL Server中可以使用identify创建自动增长列,但是Oracle中的自动增长需要借助 序列(Sequence)完成
TERM VARCHAR2(2), --学期 S1或S2
STUID VARCHAR2(7) NOT NULL, --学号
EXAMNO VARCHAR2(7) NOT NULL, --考号 E+班号+序号
WRITTENSCORE NUMBER(4,1) NOT NULL, --笔试成绩
LABSCORE NUMBER(4,1) NOT NULL --机试成绩
)
ALTER TABLE SCORES ADD CONSTRAINT CK_SCORES_TERM CHECK(TERM = 'S1' OR TERM ='S2');
ALTER TABLE SCORES ADD CONSTRAINT FK_SCORES_INFOS_STUID FOREIGN KEY(STUID) REFERENCES INFOS(STUID);--Oracle中的外键约束定义
oracle--第一天PLSQL--bai的更多相关文章
- Oracle第一天
		
Oracle第一天 v3.1 整体安排(3天) 第一天:Oracle的安装配置(服务端和客户端),SQL增强(单表查询). 第二天:SQL增强(多表查询.子查询.伪列-分页),数据库对象(表.约束.序 ...
 - Oracle 第一天
		
Oracle 第一天 1.oracle数据库下载.安装和配置 1.1 下载压缩包后解压并将压缩包2里面的文件覆盖至压缩包1中 1.2 按照步骤逐步安装 1.3 设置管理员密码时,默认情况下四个管理员是 ...
 - 如何区分oracle服务器、oracle客户端、plsql?
		
大家在安装oracle数据库的时候,是不是有很多区分不清的概念,以至于束手无策呢?现在有一个问题,就是怎么区分oracle服务器.oracle客户端.plsql三者的概念?我想,新手在安装的时候可能会 ...
 - 本机不装Oracle,使用plsql连接远程Oracle的方法
		
由于Oracle的庞大,有时候我们需要在只安装Oracle客户端如plsql.toad等的情况下去连接远程数据库,可是没有安装Oracle就没有一切的配置文件去支持.最后终于发现一个很有效的方法,Or ...
 - oracle SQL in plsql
		
刚安装好的oracle和plsql,以oracle11g为例 1.刚安装好后有两个默认的系统账号和初始密码:sys/change_on_install,system/manager 2.如果忘记了或不 ...
 - Windows 64位下装Oracle 11g,PLSQL Developer的配置问题,数据库处显示为空白的解决方案
		
安装pl sql 后,若下图的数据库处为空.则需要安装32位的客户端,说明pl sql不支持64位客户端连接. 解决办法: 1.下载32位Oracle客户端,并安装 2.设置PLSQL Develo ...
 - Oracle总结【PLSQL学习】
		
PLSQL介绍 PLSQL是Oracle对SQL99的一种扩展,基本每一种数据库都会对SQL进行扩展,Oracle对SQL的扩展就叫做PLSQL... SQL99是什么 (1)是操作所有关系型数据库的 ...
 - 不安装Oracle客户端使用PLSQL连接Oracle数据库的方法
		
1,下载PL\SQL http://dl8.cr173.com/soft1/PLSQLDeveloper10_ha.zip(这个是我下载的,带破解和汉化); 2,下载完后傻瓜式安装 ,这里说下,1是P ...
 - 不安装oracle,使用plsql连接oracle
		
通常企业开发时,数据库是不会在我们本地安装的(废话),所以使用plsql时,没必要的话,我们尽量不去安装oracle,太大了: 接下来说一下本人plsql,不安装oracle的使用步骤: 1.个人本地 ...
 - oracle10g、oracle client和plsql devement 三者之间的关系
		
oracle10g是服务器,如果本机安装了oracle10g,没有必要安装oracle client,只要配置好DNS,就可以使用plsql devement连接 当然你也可以同时安装orac ...
 
随机推荐
- GDAL生成Erdas Imagine
			
GDAL原生支持超过100种栅格数据类型,涵盖所有主流GIS与RS数据格式,包括• ArcInfo grids, ArcSDE raster, Imagine, Idrisi, ENVI, GRAS ...
 - 在SharePoint 2013 之中使用JS从Add-in程序中读取用户配置文件的属性
			
经过无数次的实验,只有这个程序可以运行正常 ,代码贴出来纯的JSOM,在我的实验环境老是返回未知错误,为了这一个简单的任务,我已经搞了2天了,不过终于搞出来了,使用各种方法后,还有使用代码. func ...
 - 取代SharedPreferences的多进程解决方案
			
Android的SharedPreferences用来存储一些键值对, 但是却不支持跨进程使用. 跨进程来用的话, 当然是放在数据库更可靠啦, 本文主要是给作者的新库PreferencesProvid ...
 - .a静态库构架合成
			
一.如果类库生成的构架和对应设备的构架不一致,会链接报错 如果项目中使用类库后,遇到形似Undefined symbols for architecture x86_64(x86_64架构下有未定义的 ...
 - 【代码笔记】iOS-中国地图
			
一,效果图. 二,工程图. 三,代码. AppDelegate.m #import "AppDelegate.h" //加入头文件 #import "DrawMapVie ...
 - swift学习笔记3——类、结构体、枚举
			
之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...
 - C# 知识特性 Attribute
			
C#知识--获取特性 Attribute 特性提供功能强大的方法,用以将元数据或声明信息与代码(程序集.类型.方法.属性等)相关联.特性与程序实体关联后,可在运行时使用"反射"查询 ...
 - Mysql Join
			
在前面的博文中,我们已经学会了如果在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据. 本章节我们将向大家介绍如何使用 MySQL 的 JOIN 在两个或多个表中查询 ...
 - Hadoop技巧系列索引
			
本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink Hadoop技巧(01):插件,终端权限 Had ...
 - Spring事物管理
			
spring事务配置的五种方式 前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识.通过这次的学习发觉Spring的事务配置只 ...