”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > SQL:结构化查询语言简介

SQL:结构化查询语言简介

发布于2024-11-07
浏览:666

SQL : Introduction to Structured Query Language

概述 SQL 是任何数据库管理和操作的支柱。它是一种适合与关系数据库交互的语言。即使涉及少量信息或海量数据,SQL 也是编程中首选的基本技能之一。本教程将介绍 SQL 的基础知识及其在新技术中要考虑的最重要的命令。

什么是 SQL?

SQL 成为与数据库通信的标准化语言。其主要目的是查询、更新和管理数据。大多数现代数据库,例如 MySQL、PostgreSQL、Oracle 和 SQL Server,都使用 SQL 作为查询语言。

SQL 中的关键概念

关系数据库

SQL操作涉及关系数据库的数据。关系数据库以表的形式存储数据,表由行和列组成。这些表通过关系相互关联:一对一、一对多或多对多。

数据类型

SQL 提供各种数据类型,如 INT、VARCHAR、Date 和 Boolean 来描述一列中任何数据的性质。

正常化

标准化是最小化冗余的数据组织技术。大多数 SQL 查询都依赖于规范化表,以便高效执行并使数据操作更容易。

基本 SQL 命令

**

  1. 选择 ** SELECT 语句是最常用的 SQL 命令。它从数据库检索数据。

`从表名中选择列1、列2;

从用户中选择姓名、年龄;`

2.插入
INSERT 命令将新记录添加到表中。

INSERT INTO table_name (列1,列2) VALUES (值1,值2);
例子:

INSERT INTO users (name, age) VALUES ('Alice', 30);

**

  1. 更新 ** UPDATE 命令修改表中的现有记录。

UPDATE 表名 SET 列 1 = 值 1 WHERE 条件;
例子:

**

  1. 更新用户 SET 年龄 = 31 WHERE name = 'Alice'; ** 删除 DELETE 命令从表中删除记录。

DELETE FROM table_name WHERE 条件;
例子:

删除年龄 **

  1. 创建表 ** CREATE TABLE 语句用于在数据库中创建一个新表。

CREATE TABLE 表名(列 1 数据类型,列 2 数据类型);
例子:

CREATE TABLE 员工(id INT,姓名 VARCHAR(100),职位 VARCHAR(100));

**

查询数据

**
WHERE 子句对于过滤结果至关重要。您可以使用 AND、OR 和 NOT 等逻辑运算符组合条件。

从员工中选择*,其中职位='经理'并且年龄> 30;
连接表
连接允许 SQL 查询根据相关列组合来自多个表的数据。

INNER JOIN 检索两个表中具有匹配值的记录。

SELECT employees.name, departments.department_name 
FROM employees
INNER JOIN departments ON employees.department_id = departments.id;

LEFT JOIN 检索左表中的所有记录以及右表中的匹配记录。

SELECT employees.name, departments.department_name 
FROM employees
LEFT JOIN departments ON employees.department_id = departments.id;

高级 SQL 功能

索引
索引通过允许更快地检索记录来提高查询性能。

CREATE INDEX index_name ON table_name (column_name);
聚合函数
COUNT()、SUM() 和 AVG() 等函数允许您对数据执行计算。

从年龄 > 30 岁的用户中选择 COUNT(*) 个;
子查询
子查询是另一个查询中的查询,通常用于在复杂操作中过滤数据。

从用户中选择姓名 WHERE 年龄 = (从用户中选择 MAX(年龄));

结论

SQL 是大多数应用程序数据管理的支柱;因此,它对于开发人员、数据分析师和数据库管理员来说是非常重要的开发工具。学习 SQL 的基础知识(从查询到插入、更新和删除数据)为更深入地探索 DBMS 奠定了基础。

版本声明 本文转载于:https://dev.to/clement_mwai/sql-101-introduction-to-structured-query-language-4djb?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 如何实时捕获和流媒体以进行聊天机器人命令执行?
    如何实时捕获和流媒体以进行聊天机器人命令执行?
    在开发能够执行命令的chatbots的领域中,实时从命令执行实时捕获Stdout,一个常见的需求是能够检索和显示标准输出(stdout)在cath cath cant cant cant cant cant cant cant cant interfaces in Chate cant inter...
    编程 发布于2025-04-11
  • 如何有效地转换PHP中的时区?
    如何有效地转换PHP中的时区?
    在PHP 利用dateTime对象和functions DateTime对象及其相应的功能别名为时区转换提供方便的方法。例如: //定义用户的时区 date_default_timezone_set('欧洲/伦敦'); //创建DateTime对象 $ dateTime = ne...
    编程 发布于2025-04-11
  • 为什么不````''{margin:0; }`始终删除CSS中的最高边距?
    为什么不````''{margin:0; }`始终删除CSS中的最高边距?
    在CSS 问题:不正确的代码: 全球范围将所有余量重置为零,如提供的代码所建议的,可能会导致意外的副作用。解决特定的保证金问题是更建议的。 例如,在提供的示例中,将以下代码添加到CSS中,将解决余量问题: body H1 { 保证金顶:-40px; } 此方法更精确,避免了由全局保证金重置引...
    编程 发布于2025-04-11
  • 如何在php中使用卷发发送原始帖子请求?
    如何在php中使用卷发发送原始帖子请求?
    如何使用php 然后,配置以下选项: curlopt_url:请求 [要发送的原始数据指定内容类型,为原始的帖子请求指定身体的内容类型很重要。在这种情况下,它是文本/平原。要执行此操作,请使用包含以下标头的数组使用curlopt_httpheader选项:响应将存储在变量$ result。示例代码...
    编程 发布于2025-04-11
  • Android如何向PHP服务器发送POST数据?
    Android如何向PHP服务器发送POST数据?
    在android apache httpclient(已弃用) httpclient httpclient = new defaulthttpclient(); httppost httppost = new httppost(“ http://www.yoursite.com/script.p...
    编程 发布于2025-04-11
  • 为什么不使用CSS`content'属性显示图像?
    为什么不使用CSS`content'属性显示图像?
    在Firefox extemers属性为某些图像很大,&& && && &&华倍华倍[华氏华倍华氏度]很少见,却是某些浏览属性很少,尤其是特定于Firefox的某些浏览器未能在使用内容属性引用时未能显示图像的情况。这可以在提供的CSS类中看到:。googlepic { 内容:url(&#...
    编程 发布于2025-04-11
  • 如何使用FormData()处理多个文件上传?
    如何使用FormData()处理多个文件上传?
    )处理多个文件输入时,通常需要处理多个文件上传时,通常是必要的。 The fd.append("fileToUpload[]", files[x]); method can be used for this purpose, allowing you to send multi...
    编程 发布于2025-04-11
  • eval()vs. ast.literal_eval():对于用户输入,哪个Python函数更安全?
    eval()vs. ast.literal_eval():对于用户输入,哪个Python函数更安全?
    称量()和ast.literal_eval()中的Python Security 在使用用户输入时,必须优先确保安全性。强大的Python功能Eval()通常是作为潜在解决方案而出现的,但担心其潜在风险。 This article delves into the differences betwee...
    编程 发布于2025-04-11
  • 如何将来自三个MySQL表的数据组合到新表中?
    如何将来自三个MySQL表的数据组合到新表中?
    mysql:从三个表和列的新表创建新表 答案:为了实现这一目标,您可以利用一个3-way Join。 选择p。*,d.content作为年龄 来自人为p的人 加入d.person_id = p.id上的d的详细信息 加入T.Id = d.detail_id的分类法 其中t.taxonomy =...
    编程 发布于2025-04-11
  • 如何使用不同数量列的联合数据库表?
    如何使用不同数量列的联合数据库表?
    合并列数不同的表 当尝试合并列数不同的数据库表时,可能会遇到挑战。一种直接的方法是在列数较少的表中,为缺失的列追加空值。 例如,考虑两个表,表 A 和表 B,其中表 A 的列数多于表 B。为了合并这些表,同时处理表 B 中缺失的列,请按照以下步骤操作: 确定表 B 中缺失的列,并将它们添加到表的末...
    编程 发布于2025-04-11
  • 哪种方法更有效地用于点 - 填点检测:射线跟踪或matplotlib \的路径contains_points?
    哪种方法更有效地用于点 - 填点检测:射线跟踪或matplotlib \的路径contains_points?
    在Python Matplotlib's path.contains_points FunctionMatplotlib's path.contains_points function employs a path object to represent the polygon.它...
    编程 发布于2025-04-11
  • Python读取CSV文件UnicodeDecodeError终极解决方法
    Python读取CSV文件UnicodeDecodeError终极解决方法
    在试图使用已内置的CSV模块读取Python中时,CSV文件中的Unicode Decode Decode Decode Decode decode Error读取,您可能会遇到错误的错误:无法解码字节 在位置2-3中:截断\ uxxxxxxxx逃脱当CSV文件包含特殊字符或Unicode的路径逃...
    编程 发布于2025-04-11
  • 如何使用Python理解有效地创建字典?
    如何使用Python理解有效地创建字典?
    在python中,词典综合提供了一种生成新词典的简洁方法。尽管它们与列表综合相似,但存在一些显着差异。与问题所暗示的不同,您无法为钥匙创建字典理解。您必须明确指定键和值。 For example:d = {n: n**2 for n in range(5)}This creates a dicti...
    编程 发布于2025-04-11
  • 为什么我在Silverlight Linq查询中获得“无法找到查询模式的实现”错误?
    为什么我在Silverlight Linq查询中获得“无法找到查询模式的实现”错误?
    查询模式实现缺失:解决“无法找到”错误在银光应用程序中,尝试使用LINQ建立错误的数据库连接的尝试,无法找到以查询模式的实现。”当省略LINQ名称空间或查询类型缺少IEnumerable 实现时,通常会发生此错误。 解决问题来验证该类型的质量是至关重要的。在此特定实例中,tblpersoon可能需...
    编程 发布于2025-04-11
  • 如何使用Regex在PHP中有效地提取括号内的文本
    如何使用Regex在PHP中有效地提取括号内的文本
    php:在括号内提取文本在处理括号内的文本时,找到最有效的解决方案是必不可少的。一种方法是利用PHP的字符串操作函数,如下所示: 作为替代 $ text ='忽略除此之外的一切(text)'; preg_match('#((。 &&& [Regex使用模式来搜索特...
    编程 发布于2025-04-11

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3