Oracle的基本操作(Not not CURD)Table

目录

1.Oracle的基础介绍

1.1 Oracle版本发展史

1.2 Oracle与其他数据库(SQL Service、MySQL)的区别

1.3 账户、表空间、数据库

1.2  启动服务,进入Oracle,PL/SQL

1.2.1  创建数据库和账户

1.2.2  创建表空间

1.2.3  给表空间分配账户

1.2.4 要给角色授权

1.2.5  撤销权限或角色

1.2.6  删除(注销)用户

1.3 建表

1.3.1 插入数据

1.3.2 指定表和字段的注释

1.3.3 联合主键的使用


 

1.Oracle的基础介绍

1.1 Oracle版本发展史

Oracle版本:

Oracle8i

Oracle 9i --网络版

8i/9i不可能再用了,就相当于win2000,我们现在用10g/11i比较多。

Oracle 10g --企业版、标准版、标准版1、精简版

Oracle 11g  -- 本人使用的是Oracle 11g

1.2 Oracle与其他数据库(SQL Service、MySQL)的区别

Sql中可以随时随意的创建数据库;

但Oracle只有一个数据库,一台电脑只会安装一个数据库。

Oracle只有创建账户,一个账号一个数据库。

1.3 账户、表空间、数据库

案例:两个用户创建2个不同的数据库

这两个同学都要在Oracle中找自己的数据库,刚说了一个Oracle只有一个数据库,

怎么办?为两个同学各创建一个账户,给账户开辟数据库空间----表空间(TableSpace)。

表空间代替了数据库,创建数据库就是开辟账户空间。

注意:Oracle为A账户开辟个空间,为B账户开辟个空间,请问A和B是不是在用同一个数据库?不同账号之间能不能互访?

答:是,不能(如果B要访问A的表空间需要管理员授权或者A表空间把自身的表公开)

1.2  启动服务,进入Oracle,PL/SQL

1.2.1  创建数据库和账户

数据库
    物理的:数据文件.dbf;日志文件.log;控制文件.ctl;
虚拟的:表空间(可以用户开辟)
数据库实例
启动的数据库对应一个数据库实例,由实例来访问和控制数据库。
注意:
问:先创建表空间还是账户?
先创建表空间,再给账号,比如告诉你这块地是你的,然后给你片钥匙。
关于账户:
----sys和system管理员账号,在装软件时就已分配好的,因此可以用这账号开辟空间。
----scott(释放账号:给我们用和看的),密码是tiger。
    注意:千万不要去改这账号和密码,全球都是一样的。(改是可以改,但别去改)
关于账户登录:
   可以用sys或system管理员账号登录,也可以用scott账户登录。
   怎么登?
   1.在开始菜单中选择oracle目录--应用程序开发--sql plus
   2.在cmd状态下,直接通过命令sqlplus来登录。

当然cmd下的用户界面差,我们用PL-SQL第三方来操作oracle,但是不能说sqlplus就不用了,以后在unix下面就只能用sqlplus写代码,比较悲催

在oracle下输入命令:
sys/sys as sysdba  --sysdba是数据库系统管理员
解释:第一个sys是账户,第二个sys是密码,该账号做为管理员登录。


思考:
管理员账户可以调用一般账户的表吗?
select * from scott.emp;

一般账户可以调一般账户的表吗?
答:不能,需要授权

1.2.2  创建表空间

基于应用性能和管理方面的考虑,最好为不同的用户创建独立的表空间。

创建表空间的语法:
	create tablespace 表空间名

	例:
	create tablespace t_table
	datafile 'e:\111.dbf'   --数据文件存方地址
	size 100M;
	--只要上面三行就OK了
	autoextend on next 32 maxsize unlimited
	logging
	extent management local
	segment space management auto;


My Objects
	Functions	函数-
	Procedures	存储过程-
	Packages	包-
	Package bodies	包体-	
	Types		类型-
	Type bodies	类型体-
	Triggers	触发器-
	Java sources	
	Jobs		工作
	Queues		队列
	Queue table	队列表格
	Libraries	
	Directories	
	Tables		表格-
	Views		视图-
	Materialized views
	Sequences	序列-
	Users		用户-
	Profiles	控制文件-
	Reles		角色-
	Synonyms	同义词-
	Database links
	Tablespaces	表空间-
	Clusters
用;号隔开,代表代码写完了,可以执行了
如果你是管理员账号,调别的用户的账号可以吗?可以
账户.表;
select * from scott.emp;

如果你是一般用户的账号可以调别人的吗?正常情况下不行,除非授权给别人访问自己的。
关于账户在Oracle有另一个名词叫:模式
    select * from 模式.表;

比如scott就是个模式
比如其它的对象就是个模式
每个对象都是个模式

1.2.3  给表空间分配账户

1.创建账户,指定访问表空间,但未给它赋任何权限,登录时是登不了的!
	create user 用户名
	identified by 密码
	[default tablespace 表空间]
	[temporary tablespace 临时的表空间]   --该行一般不用

	案例:
	create user u_dml
	identified by 123
	default tablespace t_table

1.2.4 要给角色授权

(把用户与角色区分搞清楚)
    角色:唐俪是个学生,是指角色
    用户:唐俪        ,是一个用户

    给角色授予权限:
    找到users-用户名-编辑-角色权限
	connect:临时用户的权限
	resource:正式用户的权限
	DBA:管理员(一般不用)

    分配权限或角色:
    Grant privileges or role To user;

    例:Grant connect,resource to u_dml; 
        --给dml角色分配权限

1.2.5  撤销权限或角色

Revoke privileges or role FROM user; 

例:revoke connect,resource from u_dml; --撤销dml角色的connect,resource权限

1.2.6  删除(注销)用户

DROP USER test

DROP USER test CASCADE
--cascade表示删除用户的同时删除其建立的实体

另一种授权:将某个表空间和表空间的操作权授给某用户
//将查询scott用户的stu表的权限授给test用户
GRANT SELECT ON scott.stu  TO test;

1.3 建表

建的表都在Tables里面。
 两种建表方式:
  1.视图
  2.代码
create table tb_88
(
	sid number,           --int类型用number
	sname varchar2(55),   --没有varchar
	sex varchar2(10)
)

--查看表里的数据:
select * from tb_88;

问:Oracle中有标识列吗?
oracle没有标识列,不过有个替代品(触发器+序列)

1.3.1 插入数据

1.3.1.1 插入单条数据

insert into tb_88(sid,sname,sex)
values(10,'张天','男');

1.3.1.2 同时插入多条数据

Insert into tb_88
Select 10,’张天’,’男’ from dual union
Select 20,’张三’,’女’ from dual

1.3.2 指定表和字段的注释

COMMENT ON TABLE pet IS '宠物';
COMMENT ON COLUMN pet.name IS '宠物昵称';

格式:
Create table tb_emp(
Sid number,
Sname varchar2(20) nut null,
Sex varchar2(4),
Constraint pk_sid primary key(sid),
Connstraint ch_sex char(sex)
)

注意:
不要物理删除硬盘上的dbf文件,oracle启动时到时找不到文件,oracle也启动不了,需要重装oracle。

删除删除一个数据库,是先删表空间,还是先删用户?

答:先删用户在删表空间

 drop user 用户名;

drop tablespace 表空间;

1.3.3 联合主键的使用

建的主键表:

外键表:

重点在主表的联合主键,然后子表在使用联合主键的时候就要有两个参才可以使用主键的联合主键

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值