Oracle深入学习
一、甲骨文公司介绍
甲骨文公司,是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989年正式进入中国市场。
2013年,甲骨文已超越 IBM ,成为继 Microsoft 后全球第二大软件公司
二、用户与表空间管理
1、表空间管理
---1.创建用户临时表空间
create temporary tablespace user_temp
tempfile 'C:\DATE\USER_TEMP_0001.DBF' size 1024m
extent management local;
--2.创建用户数据表空间
create tablespace user_date_default
logging datafile 'C:\DATA\user_data_default_001.dbf'
size 1024m
reuse
extent menagement local
segment space management auto;
--3.创建用户(每个项目,都创建独立用户)
create user oa identified by 123456
default tablespzce user_date_default
temporary tablespace user_temp;
2、表空间授权
--授权
--最低权限
grant connect,resource to oa;
--最高权限
grant connect,resource,dba to oa;
--删除表空间(级联删除,把此用户有的东西都删除)
drop user oa cascade;
--删除临时表空间
drop tablespace user_temp
including contents and datafiles;
--删除表空间
drop tablespace user_data_default
including contents and datafiles;
--查看表空间大小
1)select tablespace_name,bytes/1024/1024
from dba_data_files;
2)select
tablespace_name,
sum(bytes/1024/1024)
from dba_data_files
group by tablespace_name;
--对表空间进行增加数据库扩大的容量
alter tablespace oa_data
add datafile 'C:\DATA\OA_DATA_002.DBF'
size 100m
autoextend on next 5m maxsize 1024m;
三、SQL分类、数据类型
1、SQL分类
1.DDL数据定义语句(create,alter,drop)
create table aaa(
t1 varchar2(10)
)
2.DML操纵语句(insert,update,delete)
insert into aaa values('123');
insert into aaa(tt1) values('123');
--插入多条数据
insert all
into aaa values('456')
into aaa values('789')
into aaa values('369')
select 1 from dual;
commit
select * from aaa
--数据的物理地址(rowid)
select rowid,rownum,tt1 from aaa;
delete from aaa where ROWID = 'AAA***AAIAAACiVAAB'
--修改数据信息
update aaa set tt1='aaaaa'
2、Oracle数据类型
--char类型(固定长度类型)
--数据不足长度,会填空格
create table test1(
a char(6)
)
insert into test1(a) values('123')
--varchar2类型(不固定类型,少于4000)
create table test2(
a varchar2(10)
)
insert into test2(a) values('12345');
--number实数类型(默认38位)
create table test3(
a number
)
create into test3(
a number(100)
)
--加入日期数据
insert into test6 values(
to_date('2019-03-03 10:10:10','yyyy-mm-dd hh24:mi:ss')
)
四、序列
create sequence myseq
select myseq.nextval from dual
select myseq.currval from dual
insert into test(id,username) values(myseq.nextval,'小茗')
五、左关联(一对一)
CREATEE TABLE idcard(
idcard_num CAHR(18) PRIMARY KEY,
name VARCHAR2(20),
address VARCHAR2(20)
minzu VARCAHR2(20)
)
CREATE TABLE stu(
sno VARCAHR2(10) PRIMARY KEY,
name VARCHAR2(20),
idcard_num CHAR(18)
)
INSERT INTO idcard(idcard_num,name,address,minzu)
VALUES