Oracle基本语法(SQLPlus)

目录:

前言:

准备工作:

登录:

1.打开SQL Plus命令行工具

第一种方式:

 第二种方式:

2.以不同用户登录 

SYSTEM(普通管理员):

SYS(超级管理员):

不显示密码方式:

 显示密码方式:

SCOTT(普通用户):

若是出现被锁住的情况:​

解决方法: 

SQL基本命令

1.数据定义语言(DDL)

数据库操作 

查询所有用户:

查看当前用户:

创建用户并指定其表空间:

给用户授予dba的权限(超级管理员):

删除用户(超级管理员):

 切换用户登录:

表操作

查询:

查询某个用户下所有表名:

查询某个用户下表个数:

查询某个用户的表结构:

查询指定表的建表语句:

创建:

数据类型(链接):

创建表空间:

​编辑

创建表:

给表添加注释:

给字段添加注释: 

 表备份:

修改:

重命名表:

添加字段:

修改字段名:

修改数据类型:

删除:

删除表字段:

删除表:

删除表空间:

删除指定表并重新创建该表:

2.数据操作语言(DML)

添加数据(insert)

给指定字段添加数据:

给表中批量添加数据:

修改数据(update) 

修改数据:

删除数据(delete)

删除数据:

​编辑

3.数据查询语言(DQL)

编写顺序:

执行顺序:

基本查询

查询多个字段:

设置别名:

去除重复记录:

条件查询

语法:

​编辑

条件:

聚合函数

分组查询

排序查询

分页查询 

4.数据控制语言(DCL)

管理用户

查看当前用户:

权限控制

查询用户权限: 

授予权限:

回收权限:

函数

使用

sys.dual 

字符串函数

数值函数

日期函数

日期表示:

函数概述:

 eg:

sysdate:

next_day(): 

​last_day():​

round() :

​add_months():​

months_between(): 

extract(): 


前言:

1.使用的数据库不同,所使用的语法也略有不同

2.SQL对大小写不敏感,无论大小写,sql自动转换为大写

3.Oracle中对引号里面的内容大小写敏感

3.表空间名、文件路径......等需要用单引号将其包含

4.一般引号里面的内容需要大写


准备工作:

(1).Win+R打开services.msc

 

 (2)启动一些服务:

(qwq我不知道哪些有用,哪些没用,所以我都把打开了,不知道有没有负面影响,大家参考一下别的博客吧)


登录:

1.打开SQL Plus命令行工具

第一种方式:

 第二种方式:

(1)win+R 打开cmd

(2)输入sqlplus

2.以不同用户登录 

注意:

1.使用用户口令这种形式登录的时候,是不显示密码的,口令输入的时候是不显示的,直接输就好

2.若是想以显示密码的形式输入,直接在用户名那一块输入:用户名/密码

3.超级管理员(sys)输入时需要注意指定 as sysdba

SYSTEM(普通管理员):

SYS(超级管理员):
不显示密码方式:

用户名:SYS

密码:sys密码 as sysdba

 显示密码方式:

用户名:sys/sys密码 as sysdba

SCOTT(普通用户):
若是出现被锁住的情况:
解决方法: 

(1)登录超级管理员账户,

(2)输入alter user 用户名 account unlock; 

 

(3)重新登录即可:


SQL基本命令


1.数据定义语言(DDL)

数据库操作 

查询所有用户:

select distinct(OWNER) from all_tables;

查看当前用户:

show user;

创建用户并指定其表空间:

create user 用户名 identified by 密码 default tablespace 表空间;

给用户授予dba的权限(超级管理员):

 grant dba to 用户;

删除用户(超级管理员):

(1)查看用户是否有活跃对话

select sid as session_id, serial# from v$session where username='用户名';

(2)如果查询结果显示有活动的会话,结束这些会话

kill session 'session_id, serial#' immediate;

 (3)删除用户

drop user 用户名 cascade;

  

 切换用户登录:

conn 用户名/密码

表操作

查询:
查询某个用户下所有表名:

(用户名注意大写)

select table_name from dba_tables where owner = '用户名';

查询某个用户下表个数:

(用户名注意大写)

select count(*) from all_tables where OWNER = '用户名';

查询某个用户的表结构:
desc 用户名.表名;

查询指定表的建表语句:

(表名、用户名注意大写)

select dbms_metadata.get_ddl('TABLE', '表名','用户名') from dual;

创建:
数据类型(链接):

Oracle中的数据类型详解_oracle smallint-CSDN博客

创建表空间:

 create tablespace 表空间名 datafile '文件路径\文件名.dbf' size 表空间大小;

 

创建表:
#创建表
create table 表名(字段1 字段1类型,字段2 字段2类型,字段3 字段3类型,.......字段n 字段n类型) ;       

给表添加注释:
 comment on table 表名 is '注释';

 

给字段添加注释: 
comment on column 表名.字段名 is '注释';

 表备份:
create table 用户名.备份表名 as select * from 用户名.需要备份的表名;

 

修改:
重命名表:
alter table 用户名.旧表名 rename to 新表名;

添加字段:
alter table 用户名.表名 add 新字段名 新字段类型 default '默认值';

修改字段名:
 alter table 用户名.表名 rename column 旧字段名 to 新字段名;

修改数据类型:
 alter table T1.emp1 modify temp varchar(30);

删除:
删除表字段:
alter table 用户名.表名 drop column 字段名;

删除表:
drop table 表名;

删除表空间:

(1)查看是否有其它用户在使用该表空间:

select * from dba_users where default_tablespace='表空间名';

(2)若有,则删除这些用户或者将这些用户迁移到别的表空间

(3)删除表空间

drop tablespace 表空间名 including contents and datafiles;

删除指定表并重新创建该表:
truncate table 表名;


2.数据操作语言(DML)

添加数据(insert)

注意:

1.插入数据注意顺序

2.插入的数据大小要合法

给指定字段添加数据:

insert into 表名 (字段1,字段2......) values(值1, 值2......);

给表中批量添加数据:

insert all into 用户名.表名(字段1,字段2,字段3......) values(值1,值2,值3.......)into 用户名.表名(字段1,字段2,字段3......) values(值1,值2,值3.......)
select * from dual;

修改数据(update) 

修改数据:

 注意:如果没有条件,则会修改整张表

update 表名 set 字段1=值1,字段2=值2......[where 条件];

删除数据(delete)

删除数据:

注意:如果没有条件,则会删除整张表

update 表名 set 字段1=值1,字段2=值2......[where 条件];


3.数据查询语言(DQL)

编写顺序:

select [distinct|all] 字段列表from 表名where 查询条件group by 分组字段列表having 分组后条件列表order by 排序字段列表:asc或者desc
;

作示范的表结构:

表名:T_STUDENT

执行顺序:

from 表名 : 从哪张表查询where 条件 :查询条件group by 分组条件 :分组having 分组后查询条件 :分组后查询条件select 字段列表 :选择字段order by 排序方式 :对查询结果进行排序
;

基本查询

查询多个字段:

select 字段1,字段2,字段3...from 表名;select * from 表名;

设置别名:

select 字段1[as 别名1],字段2 [as 别名2]......from 表名;

去除重复记录:

select distinct 字段列表 from 表名;

条件查询

语法:

select 字段列表 from 表名 where 条件列表;

条件:

比较运算符功能
>
>=
<
<=
=
<> 或 !=不等于
between...and...在某个范围之内
in(...)在in之后的括号中,多选一
like 占位符模糊匹配(_匹配单个字符,%匹配任意个字符)
is null
and 或 &&并且
or 或 ||
not 或 !

聚合函数

select 聚合函数(字段列表) from 表名;

注意:

        对一列进行计算 所有null值不参与聚合函数的计算

函数功能
count统计数量
max最大值
min最小值
avg平均值
sum求和

分组查询

select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];
where
分组之前执行,不满足where条件的不参与分组,where不能对聚合函数进行判断
having
分组之后对结果进行过滤,having可以对聚合函数进行判断

eg:

排序查询

select 字段列表 from 表名 order by 字段1 排序方式1, 字段2 排序方式2;
asc升序(默认)
desc降序

分页查询 

(oracle查询没有limit关键字,引入rownum进行分页查询)

select * from
(select rownum rn, t.* from(select 字段 from t_student) t where rownum <= 终止行
)where rn >= 起始行;


4.数据控制语言(DCL)

管理用户

查看当前用户:

show user;

切换用户:

connect 用户名/密码;

注意连接到数据库超级管理员的时候:

可能会出现以下错误:

解决方法:

connect sys/密码 as sysdba

 

权限控制

查询用户权限: 

select * from dba_sys_privs where grantee='用户名';

授予权限:

 grant 权限 to 用户;
权限说明
create session登录权限
create table创建表的权限
drop any table删除任意表
insert any table向任意表中插入行
update any table修改任意表中行的权限
select on 表名 查看指定表的权限

 eg:

回收权限:

revoke select on 用户2.表2 from 用户1; #回收用户1查看表2的权限


函数

使用

一般形式:

select 函数 from 表名 where 条件;

如果只是想看函数的返回结果可以使用以下形式:

select 函数 from sys.dual;

sys.dual 

dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录

字符串函数

eg:

 

 

数值函数

eg: 

日期函数

日期表示:

日期-月份-年份   

eg:21-9月-2024

函数概述:

 eg:

sysdate:

next_day(): 
 last_day():
round() :
 add_months():
months_between(): 

extract(): 



如有错误,欢迎指正!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/31973.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

408计算机组成原理

todo:有逻辑的分门别类的整理笔记&#xff0c;方便复习 总 理解不了就直接背下来&#xff0c;学越多就越能理解 计算机系统概述 简要目录 基本概念 字长 MAR MDR PC IR CU ALU 通用寄存器、标志寄存器、标志控制器 ACC 地址译码器 通用寄存器 PU C语言编译过程 数据通路带…

DAY10-力扣刷题

1.最后一个单词的长度(简单) 58. 最后一个单词的长度 - 力扣&#xff08;LeetCode&#xff09; 给你一个字符串 s&#xff0c;由若干单词组成&#xff0c;单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大子…

Unity3d自定义TCP消息替代UNet实现网络连接

以前使用UNet实现网络连接,Unity2018以后被弃用了。要将以前的老程序升到高版本,最开始打算使用Mirro,结果发现并不好用。那就只能自己写连接了。 1.TCP消息结构 (1). TCP消息是按流传输的,会发生粘包。那么在发射和接收消息时就需要对消息进行打包和解包。如果接收的消息…

Nutch爬虫在大数据采集中的应用案例

引言 在当今信息爆炸的时代&#xff0c;大数据的价值日益凸显。网络作为信息的海洋&#xff0c;蕴藏着丰富的数据资源。Nutch&#xff0c;作为一个开源的Java编写的网络爬虫框架&#xff0c;以其高效的数据采集能力和良好的可扩展性&#xff0c;成为大数据采集的重要工具。本文…

Mac安装多个jdk环境(jdk8+jdk17)保姆级

Mac安装多个jdk环境&#xff08;jdk8jdk17&#xff09;保姆级 背景&#xff1a;新机安装开发环境发现需要找很多文章&#xff0c;&#xff0c;&#xff0c;&#xff0c;这里一篇文章安装所有环境 文章目录 Mac安装多个jdk环境&#xff08;jdk8jdk17&#xff09;保姆级&#x1f…

C语言入门系列:指针入门(超详细)

文章目录 一&#xff0c;什么是指针1&#xff0c;内存2&#xff0c;指针是什么&#xff1f; 二&#xff0c;指针的声明1&#xff0c;声明指针类型变量2&#xff0c;二级指针 三&#xff0c;指针的计算1&#xff0c;两个指针运算符1.1 *运算符1.2 & 运算符1.3 &运算符与…

【Arthas案例】应用包含两个相同全限定类名StaticLoggerBinder,引起log4j.Level类找不到异常

3分钟内解决问题 两个不同的GAV依赖冲突&#xff0c;包含相同全限定类名&#xff0c;引起ClassNotFoundException Maven依赖的三坐标体系GAV(G-groupId&#xff0c;A-artifactId&#xff0c;V-version) 【案例1】某应用依赖两个GAV不同的jar&#xff0c;但包含两个相同全限定类…

OpenCv形态学(一)

目录 形态学转换 结构元素 腐蚀 膨胀 开运算 闭运算 形态学梯度 顶帽 黑帽 图像轮廓 查找轮廓 绘制轮廓 形态学转换 形态变换是一些基于图像形状的简单操作。通常在二值图像上执行。它需要两个输入&#xff0c;一个是我们的原始图像&#xff0c;第二个是决定操作性…

6月21日(周五)AH股总结:沪指失守3000点,恒生科技指数跌近2%,多只沪深300ETF午后量能显著放大

内容提要 沪指全天围绕3000点关口来回拉锯&#xff0c;收盘跌破3000点。白酒及光刻机概念集体走低&#xff0c;中芯国际港股跌超2%。CRO医药概念及水利股逆势走强。 A股低开低走 沪指全天围绕3000点关口来回拉锯&#xff0c;收盘跌破3000点&#xff0c;跌0.24%。深成指跌0.04…

ubuntu 20.04 访问csdn报错 Secure connection failed 解决

问题原因&#xff1a; 我一边更新源 sudo apt update & apt upgrade一边在看csdn&#xff0c;估计是这个导致的. 所以我直接把华为源换成了阿里源。 sudo apt update & apt upgrade再更新一次&#xff0c;解决。

探索语言模型的智能飞跃:预训练损失与突现能力的新视角

在人工智能的辉煌编年史中&#xff0c;语言模型&#xff08;LMs&#xff09;的崛起标志着自然语言处理领域的一个巨大飞跃。随着技术的进步&#xff0c;这些模型不仅在规模上日益庞大&#xff0c;更在性能上不断刷新着人们的认知边界。它们在问答、翻译、文本摘要等任务上展现出…

SQlyog连接到主机时报错:错误号码2058Plugin sha256 password could not be loaded

1.问题重述 MySQL版本&#xff1a;8.4.0 SQlyog连接到主机时报错&#xff1a;错误号码2058Plugin sha256 password could not be loaded&#xff0c;如下图 经过查阅资料得知出现这个问题是因为 mysl8之前的加密规则是 mysql_native_password &#xff0c;而在mysql8之后&…

Vue DevTools

介绍 什么是 Vue DevTools&#xff1f; Vue DevTools 是一款旨在增强 Vue 开发者体验的工具&#xff0c;它是一款功能强大且用途广泛的工具&#xff0c;可以在使用 Vue 应用程序时显着提高您的生产力和调试能力。它的实时编辑、时间旅行调试和全面检查功能使其成为任何Vue.js开…

帕金森患者饮食指南:科学调养,呵护健康

&#x1f33c;在医学的广阔领域中&#xff0c;帕金森病作为一种慢性神经系统疾病&#xff0c;除了需要专业的医疗治疗外&#xff0c;日常饮食的调养也显得尤为重要。 今天&#xff0c;就为大家带来一份专为帕金森患者打造的饮食建议&#xff0c;希望能为大家的健康调养提供一些…

数据库讲解---(数据库保护)【上】

目录 一.事务 1.1事务的概念【重要】 1.2事务的特性【重要】 1.2.1原子性(Atomicity) 1.2.2一致性(Consistency) 1.2.3隔离性(Isolation) 1.2.4持久性(Durability) 二.数据库恢复 2.1数据库系统的故障 2.1.1事务内部故障 2.1.2系统故障 2.1.3介质故障 2.1.4计算机…

Linux操作系统篇:多线程

一. Linux中线程是怎么理解的 1.1 线程概念 在Linux中&#xff0c;线程是在进程“内部”执行的&#xff0c;线程是处于进程的进程地址空间中运行&#xff0c;线程用到的资源都是进程的资源&#xff0c;线程是执行进程的一部分代码&#xff0c;线程是最小的执行流&am…

Android记录3--ExpandableListView使用+获取SIM卡状态信息

布局文件&#xff1a; /SIM_Card_Demo/res/layout/inbox.xml <LinearLayout xmlns:android“http://schemas.android.com/apk/res/android” xmlns:tools“http://schemas.android.com/tools” android:layout_width“match_parent” android:layout_height“match_par…

【代码】python实现一个BP神经网络-原理讲解与代码展示

​ 本文来自《老饼讲解-BP神经网络》https://www.bbbdata.com/ 目录 一、BP神经网络原理回顾1.1 BP神经网络的结构简单回顾1.2.BP神经网络的训练算法流程 二、python实现BP神经网络代码2.1.数据介绍2.2.pytorch实现BP神经网络代码 在python中要如何使用代码实现一个BP神经网络呢…

使用Rsbuild构建基于Vue3+Vant4开发h5应用

目录 一、介绍 1.1 Vant介绍 1.2 Rsbuild介绍 1.3 Vue介绍 二、构建应用 1.第一步 2.第二步 3.第三步 4.第四步 5.第五步 6.在项目中使用 Vant4 组件 7.移动端适配Rem 8. 执行 cnpm run dev 启动项目 一、介绍 1.1 Vant介绍 Vant 是一个轻量、可定制的移动端组…

单机小游戏好上架的应用市场有哪些?

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…