一、开始前的准备
1.启动Oracle
启动监听服务:OracleOraHome90TNSListener
启动实例服务:OracleServiceOrac
2.Oracle系统用户
Oracle三大系统用户
默认用:system/welcome
超级用户:sys/welcome 权限最大
普通用户:scott/tiger
3.登录Oracle的方式
Windows窗口下的sqlplus的操作 运行->sqlplusw.exe
DOS下的sqlplus的操作 运行-> sqlplus.exe
登录Oracle但不连接数据库 运行->sqlplusw /nolog
connect 用户名/密码@主机连接字符串 连接到指定用户
4.Oracle常用操作
show user 查看当前用户 select * from tab where tabtype='TABLE' 查看当前用户下的表
desc dept 察看表dept的结构
quit/exit 退出
clear screen 清除屏幕
set linesize 200 设置一行显示200个字符
set pagesize 20 设置每页显示20行
spool 文件名 (spool c:\abc.txt) 作日志文件命令 spool off
alter session set nls_date_format = 'yyyy-mm-dd'; 改日期的默认格式
conn /as sysdba select * from v$version;查看当前Oracle的版本
conn system/welcome select * from v$tablespace; 查看表空间
5.表空间 用户 表三者的关系
一个用户可以使用一个或多个表空间,一个表空间也可以供多个用户使用
用户和表空间没有隶属关系。
表空是一个用来管理数据存储逻辑概念,表空间只是和数据文件发生关系,数据文件是物理的,
一个表空间可以包含多个数据文件,而一个数据文件只能隶属一个表空间
二、常规操作
1.DDL语句(数据定义语言) Data Define Language
create alter drop truncate 开头的语句 truncate table <表名>
特点:<1>建立和修改数据对象
<2>建立和修改直接存入库中,直接生效
创建表空间:Create tablespace Product datafile 'D:\test\aa.DBF' size 100M
删除表空间:Drop tablespace Product
创建用户: Create user zhangsan identified by "welcome" default tablespace Product
修改用户: Alter user zhangsan identified by "Hello"
授予用户连接的权限: grant connect to zhangsan;
撤销用户连接权限: revoke connect from zhangsan;
授予用户在表空间创建对象的权限
grant unlimited tablespace to zhangsan;
grant resource to zhangsan;
系统特权:unlimited tablespace表示用户可以在任意表空间中创建对象,且此权限只能授予用户而不能授予角色
resource角色:给用户RESOUCE权限后,用户就拥有在所有表空间上建表权限
授予用户zhangsan对Emp表增、删、查、改的权限
grant select on scott.empa to y2;
delete
update
insert
all (=select,delete,update,insert)
with grant option 授予用户权限,则接受权限的用户可以将此权限授予其他用户.
(1).建表,并指定表空间
示例: Create table tab1
(
no number(4),
name varchar2(10)
)tablespace Product;
学生表 Student
Create table student
(
xh number(4) primary key, --学号
name varchar2(10) not null, --姓名
sex char(2) check (sex in ('男','女')),--性别
birthday date,--生日
sal number(7,2), --奖学金
classid number(2) references class(classid) --班级
); 班级表class
Create table class
(
classid number(2), --班级编号
cname varchar2(20) --班级名字
);
外键引用的列一定是主键或有unique约束的列
drop table student; 删除表的结构和数据
delete from student; 只删除数据,速度慢,数据可以恢复
truncate table student; 删除记录的 速度快 数据不能恢复
添加字段(学生所在班级classid)
alter table student add (classid number(2));
修改字段的长度
alter table student modify (xm varchar2(12)) ;
修改字段的类型(不能有记录的)
alter table student modify (xh varchar2(5));
删除一个字段
alter table student drop column sal;
删除表
drop table student;
表的名字修改
rename student to stu;
字段如何改名字
--先删除
a)alter table student drop column sal;
--再添加
b)alter table student add (salary number(7,2));
Number数据类型的存储范围
精度 存储字节数
1 - 9 5
10-19 9
20-28 13
29-38 17