03.从简单的sql开始
从简单的sql开始
- 一、sql语句的种类
- 二、oracle的工作原理
- 三、oracle数据库常见基础命令
一、sql语句的种类
下面是SQL语句的分类、常用语句、使用方法:
分类 | 语句 | 使用方法 | 解释 |
---|---|---|---|
数据查询 | SELECT | SELECT column1, column2, … FROM table_name WHERE condition; | 用于从表中查询数据,可以指定要返回的列,以及筛选条件。 |
数据插入 | INSERT | INSERT INTO table_name (column1, column2, …) VALUES (value1, value2, …); | 用于向表中插入新的数据,指定要插入的列和对应的值。 |
数据更新 | UPDATE | UPDATE table_name SET column1 = value1, column2 = value2, … WHERE condition; | 用于更新表中的数据,指定要更新的列和对应的值,以及更新的条件。 |
数据删除 | DELETE | DELETE FROM table_name WHERE condition; | 用于删除表中的数据,指定要删除的数据行的条件。 |
表操作 | CREATE TABLE | CREATE TABLE table_name (column1 datatype, column2 datatype, …); | 用于创建新的数据表,指定表名和列名及其数据类型。 |
ALTER TABLE | ALTER TABLE table_name ADD column_name datatype; | 用于修改已有的数据表结构,添加新的列。 | |
ALTER TABLE table_name MODIFY column_name datatype; | 用于修改已有的数据表结构,修改列的数据类型。 | ||
ALTER TABLE table_name DROP COLUMN column_name; | 用于修改已有的数据表结构,删除列。 | ||
DROP TABLE | DROP TABLE table_name; | 用于删除已有的数据表。 | |
数据库操作 | CREATE DATABASE | CREATE DATABASE database_name; | 用于创建新的数据库。 |
DROP DATABASE | DROP DATABASE database_name; | 用于删除已有的数据库。 | |
数据库备份 | BACKUP | BACKUP DATABASE database_name TO disk = ‘backup_file_path’; | 用于备份数据库中的数据,将数据备份到指定的磁盘路径。 |
数据库恢复 | RESTORE | RESTORE DATABASE database_name FROM disk = ‘backup_file_path’; | 用于恢复数据库中的数据,从指定的磁盘路径中恢复数据。 |
权限管理 | GRANT | GRANT permission ON object TO user; | 用于授予用户对特定对象的权限。权限可以是SELECT、INSERT、UPDATE、DELETE等。 |
GRANT permission ON object TO role; | 用于授予角色对特定对象的权限。权限可以是SELECT、INSERT、UPDATE、DELETE等。 | ||
REVOKE | REVOKE permission ON object FROM user; | 用于撤销用户对特定对象的权限。权限可以是SELECT、INSERT、UPDATE、DELETE等。 | |
REVOKE permission ON object FROM role; | 用于撤销角色对特定对象的权限。权限可以是SELECT、INSERT、UPDATE、DELETE等。 | ||
事务控制 | BEGIN TRANSACTION | BEGIN TRANSACTION; | 用于开始一个事务。 |
COMMIT | COMMIT; | 用于提交一个事务,将事务中的操作永久保存到数据库中。 | |
ROLLBACK | ROLLBACK; | 用于回滚一个事务,撤销事务中的操作,恢复到事务开始之前的状态。 |
请注意,这只是每个分类下的常用语句示例,实际上还有更多的SQL语句和命令可供使用。使用方法也可能因不同的数据库管理系统而有所不同,需要根据具体情况进行调整。解释部分提供了对每个语句用途的简要说明。
二、oracle的工作原理
Oracle是一种关系型数据库管理系统(RDBMS),它的工作原理是基于客户端/服务器架构。下面是一个简单的例子来说明Oracle的工作方式:
-
客户端连接:首先,一个客户端应用程序(例如,一个网站或一个桌面应用程序)通过网络连接到Oracle数据库服务器。
-
查询发送:客户端应用程序发送一个SQL查询请求给数据库服务器。例如,客户端可能发送一个查询请求以获取某个表中的所有记录。
-
查询解析和优化:数据库服务器接收到查询请求后,会进行查询解析和优化的过程。在这个过程中,服务器会解析查询语句,确定查询的语义和语法,并且优化查询的执行计划。
-
执行查询:一旦查询被解析和优化,数据库服务器就会执行查询。它会根据查询的执行计划,访问存储在磁盘上的数据,并将结果返回给客户端。
-
数据存储和管理:Oracle使用表来存储数据。表由列和行组成,每一列代表一个特定的数据类型,每一行代表一个记录。Oracle还提供了事务管理和数据完整性的功能,以确保数据的安全性和一致性。
-
数据缓存和缓冲:为了提高查询性能,Oracle使用了数据缓存和缓冲机制。数据缓存是在内存中存储的数据副本,用于加速常用查询的执行。缓冲则是用于减少对磁盘的读写操作,通过将数据暂时保存在内存中。
-
事务管理:Oracle支持事务管理,这意味着多个查询可以作为一个逻辑单元进行处理。如果一个事务失败,所有对数据库的修改都会被回滚,以保持数据的一致性。
-
数据备份和恢复:为了保护数据免受硬件故障或其他灾难性事件的影响,Oracle提供了数据备份和恢复的功能。管理员可以定期备份数据库,并在需要时恢复到之前的状态。
总的来说,Oracle通过客户端/服务器架构、查询解析和优化、数据存储和管理、数据缓存和缓冲、事务管理以及数据备份和恢复等功能,提供了一个高效、可靠和安全的关系型数据库管理系统。
三、oracle数据库常见基础命令
命令如下:
命令 | 作用 |
---|---|
sqlplus / as sysdba | 以系统管理员(sysdba)身份连接数据库 |
startup | 启动数据库 |
shutdown | 关闭数据库 |
select status from v$instance; | 查看数据库状态 |
select user from dual; | 查看当前用户 (dual表是oracle用来构造完整函数的) |
Create user test identified by test default tablespace users; | 创建一个叫test的用户,其密码也为test |
grant dba to test; | 给test用户 |
示例如下:
[oracle@localhost ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.1.0 Production on Wed Nov 1 17:28:39 2023Copyright (c) 1982, 2009, Oracle. All rights reserved.Connected to an idle instance.SQL> startup
ORACLE instance started.Total System Global Area 1286066176 bytes
Fixed Size 2213016 bytes
Variable Size 352324456 bytes
Database Buffers 922746880 bytes
Redo Buffers 8781824 bytes
Database mounted.
Database opened.
SQL> select status from v$instance;STATUS
------------
OPENSQL> shutdown
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 1286066176 bytes
Fixed Size 2213016 bytes
Variable Size 352324456 bytes
Database Buffers 922746880 bytes
Redo Buffers 8781824 bytes
Database mounted.
Database opened.
SQL> select user from dual;USER
------------------------------
SYSSQL> select 1;
select 1*
ERROR at line 1:
ORA-00923: FROM keyword not found where expectedSQL> select 1 from dual;1
----------1SQL> Create user test identified by test default tablespace users;
User created.
SQL> grant dba to test;
Grant succeeded.
SQL> connect test/test; # 连接到test用户
Connected.
SQL> create table t(id int, name varchar2(10));
Table created.
SQL> insert into t values(1,me);
insert into t values(1,me)
SQL> Commit; # 提交
Commit complete.
SQL> insert into t values(1,'me');
1 row created.
SQL> Update t set name = 'my' where id =1;
1 row updated.
SQL> Delete from t where id =1;
1 row deleted.
SQL> Drop table t purge;
Table dropped.
SQL> connect / as sysdba
Connected.
SQL> Drop user test;
User dropped.
SQL>
相关文章:
03.从简单的sql开始
从简单的sql开始 一、sql语句的种类二、oracle的工作原理三、oracle数据库常见基础命令 一、sql语句的种类 下面是SQL语句的分类、常用语句、使用方法: 分类语句使用方法解释数据查询SELECTSELECT column1, column2, … FROM table_name WHERE condition;用于从表…...

JS加密/解密之jsjiami在线js加密的效率问题
故事背景 经常有客户反馈,v7加密的效率比v6低,但是安全性更好。这里我给大家科普一下关于jsjiami的优化诀窍。 示例源代码 // 伪代码 while (1) {var name ‘张三’ }优化后 var _name 张三; while (1) {var name _name }优化原理 相信很多朋…...

解决【spring boot】Process finished with exit code 0的问题
文章目录 1. 复现错误2. 分析错误3. 解决问题 1. 复现错误 今天从https://start.spring.io下载配置好的spring boot项目: 启动后却报出如下错误: 即Process finished with exit code 0 2. 分析错误 Process finished with exit code 0翻译成中文进程已完…...

模电学习路径
交流通路实质 列出电路方程1,方程1对时刻t做微分 所得方程1‘ 即为 交流通路 方程1对时刻t做微分:两个不同时刻的方程1相减,并 令两时刻差为 无穷小 微分 改成 差 模电学习路径: 理论 《电路原理》清华大学 于歆杰 朱桂萍 陆文…...

【Linux】配置JDKTomcat开发环境及MySQL安装和后端项目部署
目录 一、jdk安装配置 1. 传入资源 2. 解压 3. 配置 二、Tomcat安装 1. 解压开启 2. 开放端口 三、MySQL安装 1. 解压安装 2. 登入配置 四、后端部署 1. 数据库 2. 导入.war包 3. 修改端口 4.开启访问 一、jdk安装配置 打开虚拟机 Centos 登入账号ÿ…...

Modelsim 使用教程(3)——Projects
目录 一、概述 二、设计文件及tb 2.1 设计文件 counter.v 2.2 仿真文件 tcounter.v 三、操作流程 3.1 Create a New Project(创建一个新的工程) 3.2 Add Objects to the Project(把代码加入项目) 3.3 Compile the …...

pytorch复现3_GoogLenet
背景: GoogLeNeta是2014年提出的一种全新的深度学习结构,在这之前的AlexNet、VGG等结构都是通过增大网络的深度(层数)来获得更好的训练效果,但层数的增加会带来很多负作用,比如overfit、梯度消失、梯度爆炸等。GoogLeNet通过引入i…...

CH09_重新组织数据
拆分变量(Split Variable) 曾用名:移除对参数的赋值(Remove Assignments to Parameters) 曾用名:分解临时变量(Split Temp) let temp 2 * (height width); console.log(temp); t…...

最新 IntelliJ IDEA 旗舰版和社区版下载安装教程(图解)
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…...

优化 FPGA HLS 设计
优化 FPGA HLS 设计 用工具用 C 生成 RTL 的代码基本不可读。以下是如何在不更改任何 RTL 的情况下提高设计性能。 介绍 高级设计能够以简洁的方式捕获设计,从而减少错误并更容易调试。然而,经常出现的问题是性能权衡。在高度复杂的 FPGA 设计中实现高性…...

LVGL库入门 01 - 样式
一、LVGL样式概述 1、创建样式 在 LVGL 中,样式都是以对象的方式存在,一个对象可以描述一种样式。每个控件都可以独立添加样式,创建的样式之间互不影响。 可以使用 lv_style_t 类型创建一个样式并初始化: static lv_style_t s…...

酷克数据出席永洪科技用户大会 携手驱动商业智能升级
10月27日,第7届永洪科技全国用户大会在北京召开。酷克数据作为国内云原生数仓代表企业,受邀出席本次大会,全面展示了云数仓领域最新前沿技术,并进行主题演讲。 携手合作 助力企业释放数据价值 数据仓库是商业智能(BI…...

英语教育目标转变:更加注重实际应用能力培养
今年九月份,北京市教委发布了《关于深入推进高中阶段学校考试招生改革的实施意见》。按照该意见,北京市2024年初三年级学生的初中学业水平考试英语科目听力口语考试与笔试将分离,首次计算机考试将于2023年12月17日进行。 根据《意见》规定,听力口语计算机考试共有两次考试机会…...

Java中的继承和多态
目录 1. 继承 1.1 为什么需要继承 1.2 继承概念 1.3 继承的语法 1.4 父类成员访问 1.4.1 子类中访问父类的成员变量 1.4.2 子类中访问父类的成员方法 1.5 super关键字 1.6 子类构造方法 1.7 super和this 1.8 再谈初始化 1.9 protected 关键字 1.10 继承方式…...

海外问卷调查现在还可以做吗?
可以做,海外问卷调查是一个稳定长期的互联网创业项目。 大家好,我是橙河,这篇文章讲一讲海外问卷调查现在还可以做吗? 海外问卷调查,简单来说,就是外国的商业公司对外发放的付费调查问卷,按照…...
CA证书与服务器证书
服务器证书和CA证书是网络通信中使用的两种重要的证书。服务器证书是用于验证服务器身份的证书,而CA证书是用于验证证书颁发机构(Certificate Authority)身份的证书。 服务器证书是由网站服务器申请并由CA机构颁发的。它包含了服务器的公钥和其他相关信息ÿ…...

AI智能语音识别模块(二)——基于Arduino的语音控制MP3播放器
文章目录 简介离线语音控制模块Mini MP3模块0.96寸 OLED模块实验准备安装库接线定义主要程序实验效果注意事项总结 简介 在前面一篇文章里我们对AI智能语音识别模块进行了介绍,并对离线语音模组下载固件的过程进行了一个简单描述,不知道大家还记不记得&…...
CentOS部署Minikube
基本介绍 Minikube是本地的Kubernetes,专注于使其易于为Kubernete学习和开发。 官方地址:https://minikube.sigs.k8s.io/docs/start/ 部署安装 # CentOS 7.6# 前置条件:安装好Docker或其他容器引擎或虚拟机 参见《CentOS一键部署Docker》…...
第5章_排序与分页
文章目录 1 排序数据1.1 排序规则1.2 单列排序1.3 多列排序排序演示代码 2 分页2.1 背景2.2 实现规则2.3 拓展分页演示代码 3 课后练习 1 排序数据 1.1 排序规则 使用 ORDER BY 子句排序 ASC(ascend): 升序DESC(descend):降序 …...
Elasticsearch实战:常见错误及详细解决方案
Elasticsearch实战:常见错误及详细解决方案 1.read_only_allow_delete":“true” 当我们在向某个索引添加一条数据的时候,可能(极少情况)会碰到下面的报错: {"error": {"root_cause": [{&…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...

解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...

嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)
目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 编辑编辑 UDP的特征 socke函数 bind函数 recvfrom函数(接收函数) sendto函数(发送函数) 五、网络编程之 UDP 用…...
高防服务器价格高原因分析
高防服务器的价格较高,主要是由于其特殊的防御机制、硬件配置、运营维护等多方面的综合成本。以下从技术、资源和服务三个维度详细解析高防服务器昂贵的原因: 一、硬件与技术投入 大带宽需求 DDoS攻击通过占用大量带宽资源瘫痪目标服务器,因此…...

对象回调初步研究
_OBJECT_TYPE结构分析 在介绍什么是对象回调前,首先要熟悉下结构 以我们上篇线程回调介绍过的导出的PsProcessType 结构为例,用_OBJECT_TYPE这个结构来解析它,0x80处就是今天要介绍的回调链表,但是先不着急,先把目光…...

动态规划-1035.不相交的线-力扣(LeetCode)
一、题目解析 光看题目要求和例图,感觉这题好麻烦,直线不能相交啊,每个数字只属于一条连线啊等等,但我们结合题目所给的信息和例图的内容,这不就是最长公共子序列吗?,我们把最长公共子序列连线起…...
算法250609 高精度
加法 #include<stdio.h> #include<iostream> #include<string.h> #include<math.h> #include<algorithm> using namespace std; char input1[205]; char input2[205]; int main(){while(scanf("%s%s",input1,input2)!EOF){int a[205]…...