0


Oracle数据库 | 基于SQL基础分析

在这里插入图片描述

个人主页:💗wei_shuo的个人主页

🏀 Hello World !🏀

文章目录


创建表空间

SQL Server数据库与Oracle数据库之间最大的区别要属

表空间设计

。Oracle数据库开创性地提出了表空间的设计理念,这为Oracle数据库的

高性能

做出了不可磨灭的贡献。可以这么说,Oracle中很多优化都是

基于表空间

的设计理念而实现

表空间作用

  • 决定数据库实体的空间分配
  • 设置数据库用户的空间份额
  • 控制数据库部分数据的可用性
  • 分布数据于不同的设备之间以改善性能
  • 备份和恢复数据

表空间管理

  • 查看系统当前用户
select*from user_users;
  • 查询表空间
select*from sys.dba_tablespaces;select tablespace_name from dba_tablespaces;
  • 删除表空间
droptablespace 表空间名 including contents and datafiles ;
  • 修改表空间自动扩展大小
alterdatabase datafile 'E:\JetBrains\DG\Data\waterboss.dbf' autoextend onnext100m;
  • 修改表空间大小
alterdatabase datafile 'E:\JetBrains\DG\Data\waterboss.dbf' resize 1024m;
  • 创建临时表空间
createtemporarytablespace tmp_tbs2 tempfile 'E:\JetBrains\DG\Data\tmp_tbs2' size 100m;
  • 创建用户,指定默认表空间,指定临时表空间,指定配额
createuser test1 identified by"123456"defaulttablespace tbs2     -- 指定默认表空间temporarytablespace tmp_tbs2   -- 指定临时表空间
    quota 500on tbs2;-- 指定配额

创建表空间

-- 创建表空间createtablespace waterboss     -- 创建表空间waterboss
datafile 'E:\JetBrains\DG\Data\waterboss.dbf'-- 数据文件位置
size 100m   -- 指定数据文件大小
autoextend onnext10m;-- 指定数据文件存满后自动扩展内存大小
  • tablespace 指定表空间名
  • datafile 指定数据文件位置
  • size 设置表空间大小
  • autoextend on 用于设置自动增长,如果储存量超过初始大小,则开始自动扩容
  • next 用于设置扩容表空间大小

创建用户与赋权

创建用户与赋权

  • 创建用户后需要使用grant命令给用户授权才能登陆用户
-- 创建用户createuser wateruser
identified by itcast
defaulttablespace waterboss;-- 删除用户dropuser TEST1 cascade;-- 创建用户权限grant dba to wateruser;
  • wateruser 创建的用户名
  • identified by 用于设置用户的密码
  • default tablespace 用于指定默认表空间名称
  • grant dba to wateruser; 给用户wateruser赋予DBA权限即可登录

表的创建 | 修改 | 删除

  • 表的创建
createtable 表名(...);createtable user01(
    id int,
    name varchar(20),
    address varchar(20));
  • 表的修改
-- 语法:alter table 表名 add 列名 类型(长度)[约束];altertable mydb1 add id varchar(20);
  • 表的删除
-- 语法:drop table 表名;droptable student;

数据的增 | 删 | 改 | 查

  • 数据的增添(insert)

*1.向表中插入某些**insert into 表(列1,列2,列3…) value(值1,值1,值1…);2.向表中插入所有列insert into 表 value(值1,值1,值1…);*

insertinto 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);insertinto 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 =0where 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

主键约束在表中定义一个主键来

唯一确定

表中每一行数据的标识符,要求主键列数据

唯一

,并且

不允许为空
  • 创建主键约束
-- 单列主键createtable 表名(...<字段名><数据类型>primarykey...);-- 多列主键createtable 表名(...primarykey(字段1,字段2,...));
  • 修改主键约束
-- 修改表结构添加主键createtable 表名(...);altertable<表名>addprimarykey(字段列表);
  • 删除主键约束
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 主表名 (主表的主键字段名);
  • 删除外键约束
altertable<数据表名>dropforeignkey 外键名;

非空约束——not null

  • 方式一:创建表时指定
语法:<字段名><数据类型>notnull;
createtable user04(
    id int,
    name varchar(20)notnull,
    address varchar(20)notnull);insertinto user04(id,name,address)values(1001,'一一','武汉');insertinto user04(id,name,address)values(1001,null,null);insertinto user04(id,name,address)values(1001,'','');
  • 方式二:创建表之后指定
语法:altertable 表名 modify 字段 notnull;
use mydb3;createtable user05(
    id int,
    name varchar(20)notnull,
    address varchar(20)notnull);altertable user05 modify name varchar(20)notnull;altertable user05 modify address varchar(20)notnull;desc user05;-- 查看表结构insertinto user05(id,name,address)values(1001,'魏硕','武汉');insertinto user05(id,name,address)values(1001,null,null);insertinto user05(id,name,address)values(1001,'','');
  • 删除非空约束
语法:altertable 表名 modify 字段 类型
altertable user05 modify name varchar(20);altertable user05 modify address varchar(20);
标签: 数据库 oracle sql

本文转载自: https://blog.csdn.net/weixin_62765017/article/details/127191333
版权归原作者 wei_shuo 所有, 如有侵权,请联系我们删除。

“Oracle数据库 | 基于SQL基础分析”的评论:

还没有评论