oracle--第一天PLSQL--bai
Posted Ipeter
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的主要内容,如果未能解决你的问题,请参考以下文章