首页 > 数据库 >SQL 编程思想:一切皆关系

SQL 编程思想:一切皆关系

时间:2023-06-08 18:33:54浏览次数:56  
标签:思想 编程 id SQL 集合 查询 连接 SELECT


在计算机领域有许多伟大的设计理念和思想,例如:

  • 在 Unix 中,一切皆文件。
  • 在面向对象的编程语言中,一切皆对象。

关系数据库同样也有自己的设计思想:在 SQL 中,一切皆关系。

关系模型

关系模型(Relational model)由 E.F.Codd 博士于 1970 年提出,以集合论中的关系概念为基础;无论是现实世界中的实体对象还是它们之间的联系都使用关系表示。我们在数据库系统中看到的关系就是二维表(Table),由行(Row)和列(Column)组成。因此,也可以说关系表是由数据行构成的集合。

SQL 编程思想:一切皆关系_数据库

table

关系模型由数据结构、关系操作、完整性约束三部分组成。

  • 关系模型中的数据结构就是关系表,包括基础表、派生表(查询结果)和虚拟表(视图)。
  • 常用的关系操作包括增加、删除、修改和查询(CRUD),使用的就是 SQL 语言。其中查询操作最为复杂,包括选择(Selection)、投影(Projection)、并集(Union)、交集(Intersection)、差集(Exception)以及笛卡儿积(Cartesian product)等。
  • 完整性约束用于维护数据的完整性或者满足业务约束的需求,包括实体完整性(主键约束)、参照完整性(外键约束)以及用户定义的完整性(非空约束、唯一约束、检查约束和默认值)。

我们今天的主题是关系操作语言,也就是 SQL。

面向集合

SQL(结构化查询语言)是操作关系数据库的标准语言。SQL 非常接近英语,使用起来非常简单。它在设计之初就考虑了非技术人员的使用需求,我们通常只需说明想要的结果(What),而将数据处理的过程(How)交给数据库管理系统。所以说,SQL 才是真正给人用的编程语言!

标签:思想,编程,id,SQL,集合,查询,连接,SELECT
From: https://blog.51cto.com/u_16147814/6442194

相关文章

  • 2023春季招聘面试集锦:MYSQL数据库高频面试题
    mysql索引的数据结构,各自优劣索引的数据结构和具体存储引擎的实现有关,在MySQL中使用较多的索引有Hash索引,B+树索引等,InnoDB存储引擎的默认索引实现为:B+树索引。对于哈希索引来说,底层的数据结构就是哈希表,因此在绝大多数需求为单条记录查询的时候,可以选择哈希索引,查询性能最快;其余大......
  • SQLServer查看端口号和修改端口号
    sqlserver默认的端口号是14331、查看端口号程序中找到SQLServerManagementStudio,连接sqlserver数据库,新建查询,运行execsys.sp_readerrorlog0,1,'listening'; 2、修改端口号所有程序中找到SQLServer配置管理器SQLServer网络配置--MSSQLSERVER的协议,TCP/IP,双击找到T......
  • web基础漏洞-sql注入
    1、介绍sql注入,是用户提交的数据,服务端接收后未经过严格检查,将其直接拼接到sql语句中,交给sql应用执行,超出了开发者预期的sql语句结构,从而造成危害。2、详解(1)从数据来说,任何前端提交的数据,都有可能成为sql注入的参数。包括get、post、及其它请求方法,包括url、请求头部和请求体......
  • sql语句基础
    sql语句基础  ----------------------------------------------------------sqlstructuredquerylanguage--DML--DataManipulationLanguage--数据操作语言queryinformation(SELECT),addnewrows(INSERT),modifyexistingrows(UPDATE),......
  • php 备份数据库 Backup Your MySQL Database Using PHP
    代码:<?phpbackup_tables('localhost','root','root','mysql');/*backupthedbORjustatable*/functionbackup_tables($host,$user,$pass,$name,$tables='*'){ $link=mysql_connect($host,$user,$pas......
  • 实验6 turtle绘图与python库应用编程体验
    task1-1fromturtleimport*defmove(x,y):penup()goto(x,y)pendown()defdraw(n,size=100):foriinrange(n):fd(size)left(360/n)defmain():pensize(2)pencolor('red')move(-200,0)draw......
  • MySql技术之"虚拟表增加索引"
    一、虚拟表增加索引创建虚拟表,并且增加SKU索引:INDEXidx_sku(sku)CREATETEMPORARYTABLEt_sku_analy_temp(skuVARCHAR(225)PRIMARYKEY,sell_priceDECIMAL(10,2),profitDECIMAL(10,2),sku_costDECIMAL(10,2),INDEXidx_sku(sku))ENGIN......
  • Redhat8安装MySQL8操作方法(超简单Linux无依赖安装mysql数据库)
    一、安装说明1.1、相关说明:Redhat8在线安装Mysql8数据库,使操作系统找到并自动安装自适应的版本及相关依赖组件;1.2、系统版本 二、安装方法2.1、下载应用软件[root@GuoDC~]#wgethttps://dev.mysql.com/get/mysql80-community-release-el8-4.noarch.rpm 2.2、安装应用......
  • mysql8.0二进制安装遇到的问题
    公司新项目需要用CentOS8.0以上的系统和mysql8.0;于是在虚拟机上开始操作测试;一实验环境1、系统版本:CentOS8.32、数据库版本:mysql-8.0.233、数据库下载链接:https://dev.mysql.com/downloads/mysql/二、遇到的问题这里不讲安装过程,之前博客有写只不过用的是mysql5.7,安装过......
  • linux下安装mysql(rpm文件安装)
    数据库包下载:https://www.mysql.com/downloads/在GPL开原协议的社区开源版里边下载我们用mysqlcommunityserver里边的其中workbench是客户端工具MySQLCluster是oracle自己搞的集群版的(集成了一些开源工具和增值服务)选择操作系统和版本建议在linux下安装也可以选择......