目录
一、需要启动的服务(必知):
OracleServiceORCL oracle数据库服务
OracleOraDb11g_home1TNSListener oracle监听服务
操作如下:输入 services.msc 命令 确定 如下:
确定显示如图鼠标右击打开即可:
二、常用数据表(常识)
如emp、dept、salgrade等表,这几个表存储在系统账号scott下,可以通过scott账号查看表格的基本情况。
二、关于Oracle数据库的开发环境(必知)
启动步骤:Oracle->应用程序开发->SQL Plus
用户名:scott
口令:tiger(密码,开始为默认为tiger,根据设置而定)
主机字符串:orcl
如图:
三、PL/SQL Developer 集成开发环境
它是Oracle的第三方工具;
因为oracle的开发环境糟糕,因此我们采用第三方的
四、新建SQL窗口(必知)
文件 --> 新建 --> SQL窗口
作用:用sql脚本代码完成数据库的增、删、改、查操作
五、账户、表空间、数据库(常识)
结构:
开辟(分配)数据库空间----表空间(TableSpace)。
表空间代替了数据库,创建数据库就是开辟账户空间。
六、Oracle的安装--号称史上最麻烦的安装
安装教程: Oracle 安装
七、启动服务,进入Oracle,PL/SQL(常识)
7.1 创建数据库和账户(所产生的文件)
数据库
物理的:数据文件.dbf;日志文件.log;控制文件.ctl;
虚拟的:表空间(可以用户开辟)
数据库实例
启动的数据库对应一个数据库实例,由实例来访问和控制数据库。
问:先创建表空间还是用户?
先创建表空间,再给用户分配表空间
关于账户:
----sys和system管理员账号,在装软件时就已分配好的,因此可以用这账号开辟表空间。
----scott(释放账号(普通用户账号):给我们用和看的),密码是tiger。
注意:千万不要去改这账号和密码,全球都是一样的。(改是可以改,但别去改)
超级管理员的权限:
关于账户登录:
可以用sys或system管理员账号登录,也可以用scott账户登录。
怎么登?
1.在开始菜单中选择oracle目录--应用程序开发--sql plus
2.在cmd状态下,直接通过命令sqlplus来登录。
在oracle下输入命令:
sys/sys as sysdba --sysdba是数据库系统管理员
解释:第一个sys是账户,第二个sys是密码,该账号做为管理员登录。
思考:
管理员账户可以调用一般账户的表吗?
select * from scott.emp;
一般账户可以调一般账户的表吗?
7.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;
用;号隔开,代表代码写完了,可以执行了
如果你是管理员账号,调别的用户的账号可以吗?可以
--账户.表;
select * from scott.emp;
如果你是一般用户的账号可以调别人的吗?正常情况下不行,除非授权。
关于账户在Oracle有另一个名词叫:模式
select * from 模式.表;
比如scott就是个模式
比如其它的对象就是个模式
每个对象都是个模式
进入PL/SQL
1.all objects ==> my objects
2.左侧的都了解了,oracle就完了
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 控制文件-
Relos 角色-
Synonyms 同义词-
Database links
Tablespaces 表空间-
Clusters
7.2 给表空间分配账户
1.创建账户,指定访问表空间,但未给它赋任何权限,登录时是登不了的!
create user 用户名
identified by 密码
[default tablespace 表空间]
[temporary tablespace 临时的表空间] --该行一般不用
案例:
create user u_dml
indentified by 123
default tablespace t_table
7.3 要给角色授权
7.4 撤销权限或角色:
八、建表
建的表都在Tables里面。
两种建表方式:
1.视图
2.代码
create table tb_88
(
sid number, --int类型用number
sname varchar2(55), --没有varchar
sex varchar2(10)
)
九、综合案例(代码部分)
1.SYS 超级管理员 (SQL脚本)
--创建表空间
create tablespace ts_sb
datafile 'D:\software\tools\oracle\app\oradata\orcl\ts_sb.dbf'
size 5M
create user u_zz
identified by 123
default tablespace ts_sb
#分配权限或角色
grant privileges or role to user;
#撤销权限或角色
revoke privileges or role from user;
#问题:创建的u_zz用户登录失败
#给予u_zz分配或角色
grant connect,resource to u_zz;
#撤销u_zz用户 权限或角色
revoke connect,resource from u_zz;
--词汇:模式
select * from scott.emp;
2.Scott 普通用户 (SQL脚本)
#注释
-- 单行注释
/*多行注释*/
#oracle数据库时不区分大小写的
#建议全大写,尤其是关键字
#Oracle数据库创建表时必须得有表空间
#学会创建表空间(类似sqlserver中的数据库)
#表空间:tablespace
#表空间的作用:存储数据表
#表空间创建完成之后必须使用"用户"去管理这个表空间。
#表空间创建必须是SYS超级管理员登录创建
/*
创建语法:
create tablespace 表空间名称
datafile '数据文件的存储路径(oracle安装目录)'
size 大小
*/
--创建一个表空间存储数据表
create tablespace ts_sb
datafile 'D:\software\tools\oracle\app\oradata\orcl\ts_sb.dbf'
size 5M
#表空间创建完成后使用用户操作
#用户管理
#用户创建必须是SYS超级管理员登录创建
/*
语法:
create user 用户名称
identified by 初始密码
default tablespace 表空间名称
*/
create user u_zz
identified by 123
default tablespace ts_sb
#用户创建完成后需要管理分配权限才能正常登录
# connect resource
#分配权限或角色
grant privileges or role to user;
#撤销权限或角色
revoke privileges or role from user;
---------------------------------------------------------
/*
浏览器窗口中的关键词
user 用户
tablespace 表空间
table 表格
function 函数
procedure 存储过程
packages 程序包
trigger 触发器
sequence 序列
synonyms 同义词(别名)
*/
#scott用户下四张表
select * from emp;--员工表
select * from dept;--部门表
select * from bonus;
select * from salgrade
--创建表
#考虑字段的类型
#oracle中的类型: 数值(number)字符串(varchar2)
/*
语法
create table tb_名称
(
字段1 数据类型,
字段1 数据类型,
字段1 数据类型
)
*/
--创建一个学生信息表
create table tb_student
(
sid number,
sname varchar2(50),
ssex varchar2(2)
)
#查询数据
select * from tb_student;
#添加数据
insert into tb_student values(1,'张三','男')
#删除数据
delete from tb_student where sid = 1;
#修改数据
update tb_student set sname = '宋威' where sid = 1;
#约束:限制数据
#主键约束 primary key
#非空约束 not null
#检查约束 check
#默认约束 default
#唯一约束 unique
#外键约束 references
create table tb_stu
(
sid number primary key,
sname varchar2(100) not null,
ssex varchar2(2) check (ssex = '男' or ssex = '女'),
saddress varchar2(100) default '湖南省',
sfz varchar2(100) unique
)
create table tb_score
(
sid number references tb_stu(sid),
gride number
)