个人主页:wei_shuo的个人主页
Hello World !
文章目录
- 创建表空间
- 表空间管理
- 创建表空间
- 创建用户与赋权
- 表的创建 | 修改 | 删除
- 数据的增 | 删 | 改 | 查
- 伪列查询
- ROWID
- ROWNUM
- 约束
- 主键约束——primary key
- 外键约束——foreign key
- 非空约束——not null
创建表空间
SQL Server数据库与Oracle数据库之间最大的区别要属
表空间设计
。Oracle数据库开创性地提出了表空间的设计理念,这为Oracle数据库的高性能
做出了不可磨灭的贡献。可以这么说,Oracle中很多优化都是基于表空间
的设计理念而实现
表空间作用
- 决定数据库实体的空间分配
- 设置数据库用户的空间份额
- 控制数据库部分数据的可用性
- 分布数据于不同的设备之间以改善性能
- 备份和恢复数据
表空间管理
- 查看系统当前用户
select * from user_users;
- 查询表空间
select * from sys.dba_tablespaces;select tablespace_name from dba_tablespaces;
- 删除表空间
drop tablespace 表空间名 including contents and datafiles ;
- 修改表空间自动扩展大小
alter database datafile 'E:\JetBrains\DG\Data\waterboss.dbf' autoextend on next 100m;
- 修改表空间大小
alter database datafile 'E:\JetBrains\DG\Data\waterboss.dbf' resize 1024m;
- 创建临时表空间
create temporary tablespace tmp_tbs2 tempfile 'E:\JetBrains\DG\Data\tmp_tbs2' size 100m;
- 创建用户,指定默认表空间,指定临时表空间,指定配额
create user test1 identified by "123456" default tablespace tbs2 -- 指定默认表空间 temporary tablespace tmp_tbs2 -- 指定临时表空间 quota 500 on tbs2; -- 指定配额
创建表空间
-- 创建表空间create tablespace waterboss -- 创建表空间waterbossdatafile 'E:\JetBrains\DG\Data\waterboss.dbf' -- 数据文件位置size 100m -- 指定数据文件大小autoextend on next 10m; -- 指定数据文件存满后自动扩展内存大小
- tablespace 指定表空间名
- datafile 指定数据文件位置
- size 设置表空间大小
- autoextend on 用于设置自动增长,如果储存量超过初始大小,则开始自动扩容
- next 用于设置扩容表空间大小
创建用户与赋权
创建用户与赋权
- 创建用户后需要使用
grant
命令给用户授权
才能登陆用户-- 创建用户create user wateruseridentified by itcastdefault tablespace waterboss;-- 删除用户drop user TEST1 cascade ;-- 创建用户权限grant dba to wateruser;
- wateruser 创建的用户名
- identified by 用于设置用户的密码
- default tablespace 用于指定默认表空间名称
- grant dba to wateruser; 给用户wateruser赋予DBA权限即可登录
表的创建 | 修改 | 删除
- 表的创建
create table 表名(...);create table user01(id int,name varchar(20),address varchar(20));
- 表的修改
-- 语法:alter table 表名 add 列名 类型(长度)[约束];alter table mydb1 add id varchar(20);
- 表的删除
-- 语法:drop table 表名;drop table student;
数据的增 | 删 | 改 | 查
- 数据的增添(insert)
1.向表中插入某些 insert into 表(列1,列2,列3…) value(值1,值1,值1…); 2.向表中插入所有列 insert into 表 value(值1,值1,值1…); insert into stu(sid,name,gender,age,birth,address,score)values(001,"一一","男",18,"2002-11-25","武汉",100),(002,"二二","女",10,"2002-10-21","武汉",80),(003,"三三","女",10,"2002-10-21","武汉",70);insert into stu values(004,"六六","男",40,"2002-10-21","武汉",80);
数据的删除(delete)
delete 只删除
内容
truncate类似于drop table 删除表(删除表
内容
和结构
)
delete from 表名 [where 条件]; truncate table 表名 或者 truncate 表名 delete from stu where sid = 11;delete from stu;truncate table stu;truncate stu;
- 数据的修改(update)
update 表名 set 字段名=值,字段名=值…; update 表名 set 字段名=值,字段名=值… where 条件; update stu set address = '武汉';update stu set address = '北京' where sid = 001;update stu set address = '上海' where sid >= 5;update stu set address = 'wuhan' , score = 0 where sid = 10;
- 数据的查询(select)
-- 语法:select * from 表名;select * from student;-- 查询学生表的所有内容
伪列查询
Oracle表的使用过程中,实际表中还有一些附加的列,称为伪列。伪列就像表中的列一样,但是表中并不存储。伪列只能查询,不能进行增删改操作
ROWID
- 表中每一行在数据文件中都有一个物理地址,ROWID伪列返回的就是该行的物理地址
- 使用ROWID可以快速定位表中某一行,ROWID值可以唯一的标识表中一行
- ROWID返回的是该行的物理地址,因此使用ROWID可以显示是如何存储的
查询语句
select rowid,t.* from T_AREA t;
ROWNUM
查询结果集中,ROWNUM为结果集中每一行标识一个行号,通过ROWNUM伪列可以限制查询结果集中返回的行数
查询语句
select rownum,t.* from T_OWNERTYPE t;
约束
主键约束——primary key
主键约束在表中定义一个主键来
唯一确定
表中每一行数据的标识符,要求主键列数据唯一
,并且不允许为空
- 创建主键约束
-- 单列主键create table 表名(...<字段名><数据类型>primary key ...);-- 多列主键create table 表名(... primary key(字段1,字段2,...));
- 修改主键约束
-- 修改表结构添加主键create table 表名(...);alter table <表名> add primary key(字段列表);
- 删除主键约束
alter table drop primary key;
外键约束——foreign key
外键约束主要是在
父子表关系
中体现的一种约束操作,用于在两个表之间建立关系,需要指定引用主表的哪一列
- 创建外键约束
constraint 外键名 foreign key (从表的外键字段名) references 主表名 (主表的主键字段名)
- 方式一:创建表时设置外键约束
create table if not exists emp(eid varchar(20) primary key,ename varchar(20),age int,dept_id varchar(20),constraint emp_fk foreign key (dept_id) references dept (detpno));
- 方式二:创建表后设置外键约束
alter table 从表名 add constraint 外建名 foreign key (从表的外键字段名) references 主表名 (主表的主键字段名);
- 删除外键约束
alter table <数据表名> drop foreign key 外键名;
非空约束——not null
- 方式一:创建表时指定
语法:<字段名><数据类型> not null;
create table user04(id int,name varchar(20) not null,address varchar(20) not null);insert into user04(id,name,address) values(1001,'一一','武汉');insert into user04(id,name,address) values(1001,null,null);insert into user04(id,name,address) values(1001,'','');
- 方式二:创建表之后指定
语法:alter table 表名 modify 字段 not null;
use mydb3;create table user05(id int,name varchar(20) not null,address varchar(20) not null);alter table user05 modify name varchar(20) not null;alter table user05 modify address varchar(20) not null;desc user05; -- 查看表结构insert into user05(id,name,address) values(1001,'魏硕','武汉');insert into user05(id,name,address) values(1001,null,null);insert into user05(id,name,address) values(1001,'','');
- 删除非空约束
语法:alter table 表名 modify 字段 类型
alter table user05 modify name varchar(20);alter table user05 modify address varchar(20);