Oracle数据库(含sql基础)

本文深入介绍了Oracle数据库的基础知识,包括Oracle的卸载重装、sqlplus命令、scott用户表结构以及数据库、实例、表空间、用户、数据文件和数据表之间的关系。接着详细阐述了SQL的基本分类,如DDL、DQL、DML和DCL,以及等关键词的使用。文章还涵盖了多表关联查询、子查询、常用函数、数据更新与事务管理。此外,讨论了表的创建与管理,约束创建与管理,以及进阶内容,如序列、同义词、视图、索引、用户管理、数据库备份和数据库设计原则。
摘要由CSDN通过智能技术生成

*********************** 基础 *************************

一、准备知识

1、Oracle的卸载重装

  • oracle卸载之后可能无法立即重装
  • 电脑进入安全模式,删除对应磁盘路径的oracle相关文件;
  • 在注册表中搜索与 oracle 相关内容,并且删除;
  • 重启电脑一般情况下即可重新安装;​
  • oracle安装完成后,所有服务设置为手动,只启动实例服务和监听服务即可 ;

2、sqlplus命令总结

  • sqlplus输入密码的时候是不会显示的
  • set linesize 长度 设置每行长度
  • set pagesize 长度 设置每页长度
  • conn 用户名/密码 (as sysdba) 切换用户,如果是 sys 用户一定要写 as sysdba
  • host 本机命令 调用本机命令​

一行数据显示不全(sqlplus中):col name format a20;set linesize 200

3、scott用户表结构

  • dept部门表、emp员工表、salgrade工资等级表、bonus工资条表

4、Oracle数据库、实例、表空间、用户、数据文件和数据表之间的关系

  • oracle 数据库和其他数据库不一样的是 oracle 的表和其他的数据库对象都是存在用户下的;
  • 不同的用户可以在同一个表空间下建立同名的表,同名的表通过用户来区分;
  • 关于Oracle 的用户和表空间关系的详细说明
    在这里插入图片描述

二、SQL基本分类

1、DDL(数据定义语言):CREATE、ALTER 、DROP

#修改表结构
ALTER TABLE <tablename>
MODIFY (column definition);
ADD (column definition);
DROP COLUMN column;

#查看表结构
DESC <tablename>;

#给表里的字段加上约束条件
ALTER TABLE 表名 ADD CONSTRAINT PRIMARY KEY (字段名);
ALTER TABLE 表名 ADD CONSTRAINT UNIQUE (字段名);
alter table test1 add constraint u_id unique(id);
alter table test1 add constraint key_id primary key(id);

#改表名
alter table persons2 rename to personone;
#改列名
alter table persons  rename COLUMN name to pname;

2、DQL(数据查询语言):SELECT…FROM…WHERE…

  • distinct是对行去重,不是对列去重;
  • select可以输出常量,数字原样输出,字符串加单引号,可以用 || 拼接;
  • 限制数据条数的查询:top(sql server)、limit(mysql)、ROWNUM(oracle);
select * from (select emp.*,rownum rn from emp where rownum <10) temp  where
temp.rn between 2 and 5;

3、DML(数据操作语言):INSERT、UPDATE、DELETE

--oracle批量insert
insert all into persons2 values(1,'haha',23)
    into persons2 values(2,'haha',23)
    into persons2 values(3,'haha',23)
    into persons2 values(4,'haha',23)
    into persons2 values(5,'haha',23)
  select 1 from dual;
--mysql批量insert
INSERT INTO example
(example_id, name, value, other_value)
VALUES
(100, 'Name 1', 'Value 1', 'Other 1'),
(101, 'Name 2', 'Value 2', 'Other 2'),
(102, 'Name 3', 'Value 3', 'Other 3'),
(103, 'Name 4', 'Value 4', 'Other 4');

4、DCL(数据控制语言):GRANT、REVOKE、COMMIT、ROLLBACK

--授予对象权限
GRANT SELECT,UPDATE  ON   order_master
  TO MARTIN;

--取消对象权限
REVOKE SELECT,UPDATE  ON  order_master
  FROM MARTIN;

--事务相关
UPDATE xxx;
 SAVEPOINT mark1;
DELETE FROM xxx;
 SAVEPOINT mark2;
 ROLLBACK TO SAVEPOINT mark1;
 COMMIT;

三、where | group by | order by | having等关键词使用

1、聚合函数和 group by

  • group by 只能使用 from 和 where 中定义的别名;
  • select中有聚合函数但是后面没有group by,则select子句中不能再出现其他的字段
  • 使用了group by 后select子句中只能出现聚合函数和分组字段
  • 聚合函数嵌套之后,select子句中只能有嵌套的聚合函数,不能包含其他的字段
  • select、having、order by都可以使用聚合函数 ;
  • 分组之后的过滤用having,但是这个过滤是只针对聚合函数和分组字段的;

2、伪列(rowid、rownum)& 伪表(dual)

rownum
  • 行号是自动生成的,一旦select出来就是临时表的一个列,是固定值;rownum 只能用小于
    select emp.* ,rownum rn from emp where rownum < 3;
  • 行号的应用:查询第一行;查询第n到m行(实现分页操作),具体代码的形式如下
select * from
(select *,ROWNUM rn fromwhere ROWNUM<=(
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值