【Oracle 进阶之路】SQL 简介

SQL 的历史

E. F. Codd 博士于 1970 年 6 月在计算机机械协会 (ACM) 期刊 Communications of the ACM 上发表了论文“A Relational Model of Data for Large Shared Data Banks”。Codd 模型现在被接受为关系数据库管理系统 (RDBMS) 的最终模型。该语言,结构化英语查询语言(SEQUEL)由IBM公司开发,使用Codd的模型。SEQUEL 后来变成了 SQL(仍然发音为“sequel”)。1979 年,Relational Software, Inc.(现在的 Oracle)推出了第一个商用的 SQL 实现。今天,SQL被接受为标准的RDBMS语言。

SQL 标准

SQL 的优势为所有类型的用户提供了好处,包括应用程序程序员、数据库管理员、经理和最终用户。从技术上讲,SQL是一种数据子语言。SQL的目的是为关系数据库(如Oracle数据库)提供接口,所有SQL语句都是对数据库的指令。在这一点上,SQL不同于C和BASIC等通用编程语言。SQL 的功能包括:

  • 它将数据集作为组而不是单个单元进行处理。
  • 它提供对数据的自动导航。
  • 它使用单独复杂而有力的陈述,因此是独立的。流控制语句最初不是 SQL的一部分,但它们可以在最近接受的 SQL 的可选部分 ISO/IEC 9075-5:1996中找到。流控制语句通常称为“持久存储模块”(PSM),Oracle SQL 的 PL/SQL 扩展类似于 PSM。

SQL 允许您在逻辑级别处理数据。只有当您想要操作数据时,才需要关注实现细节。例如,要从表中检索一组行,您需要定义一个用于筛选行的条件。所有满足条件的行都在一个步骤中检索,并且可以作为一个单元传递给用户、另一个 SQL 语句或应用程序。您无需逐一处理这些行,也不必担心它们如何物理存储或检索。所有 SQL 语句都使用优化器,优化器是 Oracle 数据库的一部分,用于确定访问指定数据的最有效方法。Oracle 还提供了一些技术,您可以使用这些技术来使优化器更好地执行其工作。

SQL 为各种任务提供语句,包括:

  • 查询数据
  • 在表中插入、更新和删除行
  • 创建、替换、更改和删除对象
  • 控制对数据库及其对象的访问
  • 保证数据库的一致性和完整性

SQL 将上述所有任务统一为一种一致的语言。

所有关系数据库的通用语言

所有主要的关系数据库管理系统都支持 SQL,因此您可以将使用 SQL 获得的所有技能从一个数据库转移到另一个数据库。此外,所有用 SQL 编写的程序都是可移植的。它们通常可以从一个数据库移动到另一个数据库,只需进行很少的修改。

概述及使用

SQL(Structured Query Language)是一种用于管理和操作关系型数据库的标准语言。它允许用户通过简单的语句执行各种数据库操作,包括查询、插入、更新和删除数据。
SQL 的主要特点和功能包括:
1.数据查询:使用 SELECT 语句从数据库中检索数据。可以通过指定条件、排序、分组等操作来定制查询结果。

SELECT column1, column2 
FROM table_name 
WHERE condition;

2.数据插入:使用 INSERT INTO 语句向数据库表中插入新记录。

INSERT INTO table_name (column1, column2) 
VALUES (value1, value2);

3.数据更新:使用 UPDATE 语句修改表中的现有记录。

UPDATE table_name
SET column1 = value1, column2 = value2
WHERE condition;

4.数据删除:使用 DELETE 语句从表中删除记录。

DELETE FROM table_name
WHERE condition;

5.表结构管理:包括创建 (CREATE TABLE)、修改 (ALTER TABLE) 和删除 (DROP TABLE) 表及其结构。

CREATE TABLE table_name (column1 datatype,column2 datatype,...
);

6.事务管理:SQL 支持事务控制,可以确保多个操作要么全部成功要么全部失败,保持数据的一致性。常用的事务控制语句有 BEGIN TRANSACTION、COMMIT 和 ROLLBACK

-- 开始事务
BEGIN TRANSACTION;-- 执行插入操作
INSERT INTO accounts (account_id, balance) VALUES (1, 1000);-- 执行更新操作
UPDATE accounts SET balance = balance - 200 WHERE account_id = 1;-- 可能的操作,比如其他插入或更新-- 提交事务,保存更改
COMMIT;-- 如果发生错误,回滚事务以撤销更改
-- ROLLBACK;

7.索引和视图:可以创建索引 (CREATE INDEX) 以提高查询性能,创建视图 (CREATE VIEW) 以简化复杂的查询操作。

-- 创建一个索引以加速对 "last_name" 列的查询
CREATE INDEX idx_last_name ON employees (last_name);
-- 创建一个视图,显示所有员工的姓名和职位
CREATE VIEW employee_view AS
SELECT first_name, last_name, job_title
FROM employees;

8.数据完整性:通过定义主键、外键、唯一性约束等来确保数据的完整性和一致性。

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

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

相关文章

mqtt:测试eclipse paho qos=1的数据重发的功能

# 测试程序 【pom.xml】 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.3.12.RELEASE</version></dependency><dependency…

Unity横版动作游戏 -瓦片地形和动画瓦片

(规则瓦片)瓦片地形和动画瓦片 准备阶段 在Tilemap中创建一个新的文件夹起名叫做Rule Tile&#xff0c;创建一个Rule Tile&#xff0c;用来设置瓦片地形&#xff0c;我们将用他来绘制地形图&#xff0c;类似于Godot中的瓦片地形。 这里给他取名为了Ground 1&#xff0c;用于创…

C++——vector在使用过程中迭代器失效的几个常见情景

在使用vector的时候我们可以会遇到需要在已有对象的某个数据之前插入一个数据再对被插入的数据进行修改操作&#xff0c;情况如下&#xff1a; 这段代码在编译器的过程中并不会出现问题&#xff0c;可是一旦运行程序就会出现程序崩溃&#xff0c;这里就是迭代器失效的第一种情况…

如何使用 HTTPie 进行高效的 HTTP 请求

如何使用 HTTPie 进行高效的 HTTP 请求 引言 HTTPie 是一个命令行 HTTP 客户端&#xff0c;它以其简洁的语法和人性化的输出格式赢得了广大开发者的喜爱。与 curl 相比&#xff0c;HTTPie 提供了更加直观和用户友好的接口&#xff0c;使得执行 HTTP 请求变得轻松愉快。本文将…

PVE环境中调整虚拟机磁盘大小

我的希望将PVE中的虚拟机磁盘调整一下&#xff0c;增加20GB。在查询了一些资料后&#xff0c;做一下总结教程。 环境是 PVE8.2.2 版本&#xff0c;虚拟机系统是centos7.9.2009-minimal&#xff0c; 安装系统时划分磁盘分区方式是默认分区方式&#xff08;不同分区方式下&#…

pinia安装及简介

pinia简介 基本特点 轻量级&#xff1a;Pinia相比于传统的Vuex&#xff0c;体积更小&#xff0c;性能更好&#xff0c;只有大约1KB左右。 简化API&#xff1a;Pinia简化了状态管理库的使用方法&#xff0c;抛弃了Vuex中的mutations&#xff0c;只保留了state、getters和actions…

WHAT - 一个 Github 仓库的 License 如何解读

目录 一、背景二、解读许可证说明的作用常见的开源许可证类型使用他人代码仓库时需要注意的事项结论 实践作为开发者1. 选择许可证类型2. 在 README 文件中编写许可证信息 作为使用者1. 确定权限2. 了解和遵守条款 总结 一、背景 我们经常在一些 Github 仓库里看到 License 部…

探索 `pyjwt`:Python 中的 JWT 处理专家

文章目录 探索 pyjwt&#xff1a;Python 中的 JWT 处理专家简介&#xff1a;为何选择 pyjwt&#xff1f;什么是 pyjwt&#xff1f;安装 pyjwtpyjwt 的基本使用1. 编码JWT2. 解码JWT3. 验证签名4. 过期时间5. 自定义头部 场景应用场景一&#xff1a;用户登录场景二&#xff1a;A…

使用标量函数实现 EF Core 的实用方法

一.介绍 在构建应用程序时&#xff0c;您可能使用标量函数在数据库端实现一些逻辑。在 SQL 中&#xff0c;标量函数是一种对单个值或少量输入值进行操作并始终返回单个值作为输出的函数。这些函数本质上是可重复使用的代码块&#xff0c;用于对数据执行计算或操作。 以下是标…

商品中心关于缓存热key的解决方案

缓存热key一旦被击穿&#xff0c;流量势必会打到数据库&#xff0c;如果数据库崩了&#xff0c;游戏直接结束。 从两点来讨论&#xff1a;如何监控、如何解决。 如何监控 通过业务评估&#xff1a;比如营销活动推出的商品或者热卖的商品。基于LRU的命令&#xff0c;redis-cl…

doccano安装与使用

1.安装 &#xff08;1&#xff09;创建虚拟环境 conda create -n doccano conda activate doccano &#xff08;2&#xff09;安装doccano pip install doccano &#xff08;3&#xff09;doccano初始化 doccano init doccano createuser --username admin --password pa…

Java整理20

1、数据校验 Validation数据校验&#xff08;1&#xff09;实现org.springframework.validation.Validator接口&#xff0c;在代码中调用这个类&#xff08;2&#xff09;按照BeanValidation方式来校验&#xff0c;通过注解方式&#xff08;3&#xff09;基于方法实现校验&…

chk是什么文件格式 chk文件怎么恢复正常 chkdsk文件损坏怎么修复

在使用电脑和移动存储设备时&#xff0c;有时我们会发现磁盘中出现了大量的chk文件。这些chk文件无法打开&#xff0c;也无法得知其原本内容。那么&#xff0c;这些chk文件是什么呢&#xff1f;又该如何将chk文件恢复正常呢&#xff1f; chk文件是什么&#xff1f; 在我们查看…

Cocos Creator2D游戏开发-(2)Cocos 常见名词

场景&#xff08;Scene): 它一个容器&#xff0c;容纳游戏中的各个元素&#xff0c;如精灵&#xff0c;标签&#xff0c;节点对象。它负责着游戏的运行逻辑&#xff0c;以帧为单位渲染这些内容。就是你理解到的那个场景; 个人理解就是一个画面, 一个游戏不同的关卡,会有不同的…

【前端 12】js事件绑定

JavaScript 事件绑定 在Web开发中&#xff0c;事件绑定是实现用户与网页交互的重要机制。JavaScript 提供了多种方式来绑定和处理事件&#xff0c;使得开发者能够灵活地控制网页的行为。本文将详细介绍JavaScript中事件绑定的两种主要方式&#xff0c;并通过实例演示如何应用这…

Python+Pytest+Allure+Yaml+Pymysql+Jenkins+GitLab运行原理

PythonPytestAllureYamlPymysqlJenkinsGitLab运行原理逻辑及调用关系 GitLab代码仓&#xff1a; Jenkins工作空间&#xff1a; 代码&#xff1a; 测试报告展示&#xff1a;

<Python><paddle>基于python使用百度paddleocr实现车牌识别

前言 paddleocr是百度飞桨的一个文字识别库&#xff0c;准确度非常高&#xff0c;基于其文字识别的基础&#xff0c;将其用于车牌识别。这个识别的准确度是相当高的。 环境配置 系统&#xff1a;windows 平台&#xff1a;visual studio code 语言&#xff1a;python 库&#…

计算机网络知识点面试总结4

#来自ウルトラマンゼロ&#xff08;赛罗&#xff09; 1 传输层提供的服务 1.1 功能 传输层向它上面的应用层提供通信服务&#xff0c;它属于面向部分的最高层&#xff0c;同时也是用户功能中的最底层。 为运行在不同主机上的进程之间提供了逻辑通信。 传输层的功能&#xff1…

基于Gunicorn + Flask + Docker的高并发部署策略

标题&#xff1a;基于Gunicorn Flask Docker的高并发部署策略 引言 随着互联网用户数量的增长&#xff0c;网站和应用程序需要能够处理越来越多的并发请求。Gunicorn 是一个 Python WSGI HTTP 服务器&#xff0c;Flask 是一个轻量级的 Web 应用框架&#xff0c;Docker 是一…

react中如何避免父子组件同时渲染(memo的使用)

1.需求说明 react的渲染机制是父子组件同时渲染&#xff0c;不管子组件是否有变化只要父组件重新渲染了子组件就跟着重新渲染。为了避免不必要的消耗&#xff0c;我们可以使用memo钩子函数 2.使用memo前展示 import { memo,useState } from "react"function Son()…