SQL 基础入门教程

目录

什么是 SQL?

SQL 的基本操作

数据库的创建和删除

表的创建和删除

数据的插入

数据的查询

数据的更新

数据的删除

SQL 的高级操作

表的连接

聚合函数

分组和排序

子查询

视图

索引

SQL 的数据完整性和约束

总结


SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作关系数据库的标准编程语言。无论是查询数据、更新记录,还是创建数据库和表结构,SQL 都提供了强大的功能。本文旨在为初学者提供一份全面的 SQL 基础入门教程,帮助你快速上手并掌握 SQL 的基本操作。

什么是 SQL?

SQL 是一种用于访问和操作数据库的标准语言。它最早由 IBM 在 1970 年代开发,并在 1986 年被美国国家标准学会(ANSI)和国际标准化组织(ISO)采纳为标准。SQL 的主要功能包括:

  • 数据查询
  • 数据插入
  • 数据更新
  • 数据删除
  • 数据库和表的创建和修改
  • 数据库权限管理

SQL 的基本操作

数据库的创建和删除

在开始操作数据库之前,我们需要先创建一个数据库。以下是创建和删除数据库的基本语法:

-- 创建数据库
CREATE DATABASE 数据库名称;-- 删除数据库
DROP DATABASE 数据库名称;

例如,创建一个名为 TestDB 的数据库:

CREATE DATABASE TestDB;

删除 TestDB 数据库:

DROP DATABASE TestDB;

表的创建和删除

数据库创建好之后,我们需要在数据库中创建表。表是数据库的基本存储结构,由行和列组成。以下是创建和删除表的基本语法:

-- 创建表
CREATE TABLE 表名称 (列名称1 数据类型 约束条件,列名称2 数据类型 约束条件,...
);-- 删除表
DROP TABLE 表名称;

例如,创建一个名为 Employees 的表:

CREATE TABLE Employees (EmployeeID INT PRIMARY KEY,FirstName VARCHAR(50),LastName VARCHAR(50),BirthDate DATE,Salary DECIMAL(10, 2)
);

删除 Employees 表:

DROP TABLE Employees;

数据的插入

创建表后,我们可以向表中插入数据。以下是插入数据的基本语法:

INSERT INTO 表名称 (列名称1, 列名称2, ...) VALUES (值1, 值2, ...);

例如,向 Employees 表中插入一条记录:

INSERT INTO Employees (EmployeeID, FirstName, LastName, BirthDate, Salary) 
VALUES (1, 'John', 'Doe', '1980-01-01', 50000.00);

数据的查询

查询数据是 SQL 中最常用的操作之一。以下是基本的查询语法:

SELECT 列名称1, 列名称2, ... FROM 表名称 WHERE 条件;

例如,查询 Employees 表中的所有记录:

SELECT * FROM Employees;

查询 Employees 表中 Salary 大于 30000 的记录:

SELECT * FROM Employees WHERE Salary > 30000;

数据的更新

有时我们需要修改表中的数据。以下是更新数据的基本语法:

UPDATE 表名称 SET 列名称1 = 新值1, 列名称2 = 新值2, ... WHERE 条件;

例如,更新 Employees 表中 EmployeeID 为 1 的记录,将 Salary 修改为 55000:

UPDATE Employees SET Salary = 55000 WHERE EmployeeID = 1;

数据的删除

删除表中的数据也是常见操作之一。以下是删除数据的基本语法:

DELETE FROM 表名称 WHERE 条件;

例如,删除 Employees 表中 EmployeeID 为 1 的记录:

DELETE FROM Employees WHERE EmployeeID = 1;

SQL 的高级操作

表的连接

在实际应用中,我们经常需要从多个表中查询数据。表的连接(JOIN)操作可以实现这一点。以下是基本的连接语法:

SELECT 列名称1, 列名称2, ... FROM 表1 JOIN 表2 ON 表1.列名称 = 表2.列名称;

例如,有两个表 Departments 和 Employees,我们可以通过部门 ID(DepartmentID)将这两个表连接起来:

CREATE TABLE Departments (DepartmentID INT PRIMARY KEY,DepartmentName VARCHAR(50)
);INSERT INTO Departments (DepartmentID, DepartmentName) VALUES (1, 'HR'), (2, 'Engineering');SELECT Employees.FirstName, Employees.LastName, Departments.DepartmentName
FROM Employees
JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;

聚合函数

SQL 提供了一些聚合函数,用于对数据进行汇总和统计。常见的聚合函数包括:

  • COUNT:计算行数
  • SUM:求和
  • AVG:平均值
  • MAX:最大值
  • MIN:最小值

例如,计算 Employees 表中的员工总数:

SELECT COUNT(*) FROM Employees;

计算 Employees 表中所有员工的平均工资:

SELECT AVG(Salary) FROM Employees;

分组和排序

分组(GROUP BY)和排序(ORDER BY)操作是 SQL 中的两个重要功能。分组用于将数据按某一列进行分组,并对每组数据进行聚合计算;排序用于对查询结果按照某一列进行升序或降序排列。

例如,按照部门分组,计算每个部门的平均工资:

SELECT DepartmentID, AVG(Salary) AS AvgSalary
FROM Employees
GROUP BY DepartmentID;

按照工资降序排列查询结果:

SELECT * FROM Employees
ORDER BY Salary DESC;

子查询

子查询是嵌套在其他 SQL 语句中的查询,可以用来进行复杂的数据筛选和计算。子查询可以出现在 SELECTINSERTUPDATE 和 DELETE 语句中。

例如,查询工资最高的员工:

SELECT * FROM Employees
WHERE Salary = (SELECT MAX(Salary) FROM Employees);

视图

视图(View)是基于 SQL 查询结果的虚拟表,可以简化复杂查询并提高数据安全性。以下是创建和删除视图的基本语法:

-- 创建视图
CREATE VIEW 视图名称 AS
SELECT 查询内容;-- 删除视图
DROP VIEW 视图名称;

例如,创建一个仅包含员工姓名和工资的视图:

CREATE VIEW EmployeeSalaries AS
SELECT FirstName, LastName, Salary FROM Employees;

查询 EmployeeSalaries 视图:

SELECT * FROM EmployeeSalaries;

索引

索引(Index)用于提高数据库查询性能。以下是创建和删除索引的基本语法:

-- 创建索引
CREATE INDEX 索引名称 ON 表名称 (列名称);-- 删除索引
DROP INDEX 索引名称;

例如,创建一个基于 LastName 列的索引:

CREATE INDEX idx_lastname ON Employees (LastName);

SQL 的数据完整性和约束

在设计数据库时,确保数据的完整性和一致性非常重要。SQL 提供了多种约束条件来保证数据的正确性和有效性,常见的约束条件包括:

  • PRIMARY KEY:主键,唯一标识表中的每一行记录
  • FOREIGN KEY:外键,用于建立表之间的关系
  • UNIQUE:唯一约束,确保列中的值唯一
  • NOT NULL:非空约束,确保列中的值不能为空
  • CHECK:检查约束,确保列中的值符合指定条件

例如,创建一个 Orders 表,包含上述约束:

CREATE TABLE Orders (OrderID INT PRIMARY KEY,EmployeeID INT,OrderDate DATE NOT NULL,Amount DECIMAL(10, 2) CHECK (Amount > 0),FOREIGN KEY (EmployeeID) REFERENCES Employees(EmployeeID)
);

总结

通过本文的学习,相信你已经掌握了 SQL 的基本操作和一些高级功能。SQL 是一个功能强大且灵活的工具,可以帮助你高效地管理和操作数据库。在实际应用中,理解和熟练使用 SQL 将大大提高你的工作效率。

为了进一步提升你的 SQL 技能,建议你多动手实践,多尝试不同的查询和操作。同时,可以参考更多的 SQL 教程和文档,不断深入学习和探索 SQL 的高级功能。希望本文能为你的 SQL 学习之旅提供一个良好的起点。

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

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

相关文章

Web前端标记类型:深入剖析HTML、CSS与JavaScript的奥秘

Web前端标记类型:深入剖析HTML、CSS与JavaScript的奥秘 在构建丰富多彩的Web前端世界时,标记类型是至关重要的基石。它们不仅是网页内容的载体,更是实现页面布局、样式和交互的关键。本文将围绕HTML、CSS和JavaScript这三种核心标记类型&…

筛斗数据:如何利用数据提取技术通告能源利用效率

在当前的数字时代,数据提取技术已成为推动能源利用效率提升的重要工具。随着技术的进步和数据分析方法的创新,我们现在能够更精确地监测、分析和优化能源使用,从而实现节能减排和经济效益的双重目标。以下是几种关键的方法来展示如何利用数据…

深度学习(六)——神经网络的基本骨架:nn.Module的使用

一、torch.nn简介 官网地址: torch.nn — PyTorch 2.0 documentation 1. torch.nn中的函数简介 Containers:神经网络的骨架 Convolution Layers:卷积层 Pooling layers:池化层 Padding Layers:Padding Non-linear …

企业数据中台功能介绍

参考视频: 企业级数据中台功能演示_哔哩哔哩_bilibili 具体项目: 平台基础设施: 系统管理,系统监控(登录/操作日志),任务调度 元数据管理: 业务系统管理/数据源管理/数据表管理/字段管理 数据源,元数据,数据授权,变更记…

高性能的分布式块存储,得盘率可以超过 100%吗?

得盘率到底是什么?该怎么计算才公平合理? 随着,现在很多企业用户开始关注存储系统的存储效率。但提及存储效率,业界并没有一个统一的衡量指标。 有些厂商强调数据缩减率,有些厂商强调存储单位密度,而有些厂…

MongoDB——写入耗时

mongodb写入10万条数据的耗时差不多是1s import time import pymongo from pymongo import MongoClient# 连接到MongoDB client MongoClient(mongodb://localhost:27017/) db client[test_db] collection db[test_collection]# 生成10万条数据 documents [{"name&quo…

进阶篇04——视图

简介及基本语法 视图的检查选项 可以通过视图进行数据的增删改查操作,但由于视图是一张虚拟表,所以操作的实际上是视图的基表,即创建视图时select语句操作的表 cascaded 自己还测试了一下这种情况:当V1和V2都没有加检查选项&…

硕思LOGO设计师软件最新版下载及详细安装教程

硕思Logo设计师是一款操作灵活简单,且功能强大的logo制作软件。它可以通过简单的点击就可以为网站、博客、论坛和邮件创建专业的logo、条幅、按钮、标题、图标和签名等。 该软件提供了很多精心设计的模板和丰富的资源,为更好的创建logo艺术作品&#xff…

国外有哪些知名的CG网站?CG平台及云渲染平台

动画创作中的灵感涌现往往伴随着挑战,但全球众多顶尖CG网站平台是您创意的加油站。CG技术的革新与云渲染平台的高效算力,为动画师提供了双重助力,让创意的实现更加迅速和高效。本文精选了国内外备受推崇的CG网站和云渲染平台,旨在…

华三HCL模拟器安装及华三防火墙配置

0、前言 最近跟模拟器杠上了,主要是需要运行防火墙,目前已经成功模拟出华为、山石防火墙,而且模拟出来的设备能与物理网络环境进行互联。现在我又盯上华三防火墙了。 首先下载模拟器: 下载地址:H3C网络设备模拟器官方免…

探索Spring虚拟线程:高效并发编程的新选择

目录 什么是虚拟线程虚拟线程的优势Java虚拟线程的历史背景在Spring中使用虚拟线程 配置Spring支持虚拟线程使用虚拟线程执行任务 虚拟线程与传统线程池的对比实战案例:构建高并发Web应用 案例描述项目设置代码实现 性能测试与结果分析最佳实践与注意事项结论参考资…

仰望U8三大黑科技,重新定义智能汽车

文 | 智能相对论 作者 | 雷歌 是时候重新定义中国的“智能汽车”了。 在仰望U8出来以前,普通人对知道的智能汽车的配置认识,智能汽车是智能驾驶智能座舱,硬件上大概是这几样:毫米波雷达激光雷达智驾芯片。 仰望U8出来以后&…

将自己md文件发布到自己的博客园实现文件的持久化存储

上传markdown文件到博客园 目录 【0】需求原因【1】功能【2】环境【最佳实践测试】 (1)查看 Typora 设置(2)配置 pycnblog 配置文件 config.yaml(3)运行 pycnblog 中的文件 cnblog_markdown.cmd&#xff0…

sqlcoder:7b sqlcoder:15b sqlcoder:70b 有什么区别呢?

sqlcoder:7B, sqlcoder:15B, 和 sqlcoder:70B 是不同规模的语言模型,具有不同数量的参数(B 代表 billion,即十亿)。以下是它们的主要区别及各自的优势: 模型规模 sqlcoder:7B: 参数数量:7 亿。…

教育小程序开发:技术实现与实践案例

随着信息技术的不断进步,教育小程序在教育领域的应用越来越广泛。教育小程序开发不仅可以提高教学效率,还能够提供个性化的学习体验。本文将以技术代码为例,详细介绍教育小程序开发的关键技术和实践案例,帮助开发者更好地理解和实…

深入理解渲染引擎:打造逼真图像的关键

在数字世界中,图像渲染是创造逼真视觉效果的核心技术。渲染引擎,作为这一过程中的关键组件,负责将二维或三维的模型、纹理、光照等数据转化为人们肉眼可见的二维图像。本文将深入探讨渲染引擎的工作原理及其在打造逼真图像中所起的关键作用。…

VRRP跟踪接口及认证(华为)

#交换设备 VRRP跟踪接口及认证 一、相关概念 1.VRRP跟踪接口 当 VRRP 的 Master 设备的上行接口出现问题, 而 Master 设备一直保持 Active 状态,那么就会导致网络出现中断,所以必须要使得 VRRP 的运行状态和上行接口能够关联。在配置了 VRRP 元余的网…

ES6 .entries用法

.entries() 返回数组的可迭代对象itarator,可以通过for of 来遍历数组或对象的值。但是它们的写法不一样。 数组用法 obj [apple,bananer,orange] for(let [i,v] of obj.entries()){console.log(i)console.log(v) } //输出 // 0 // apple // 1 // bananer // 2 //orange对象…

5月产品更新 | 10大更新汇总,快来看看你的需求上线了吗?

5月,Smartbi从客户需求出发,并结合企业在数据分析、处理等方面遇到的问题,对数据模型、数据指标等数十项功能进行了优化升级。 Smartbi用户可以在官网下载下载PC端,更新后便可以使用相关功能,也可以在体验中心体验相关…

【源码】2024最新陪诊小程序uniapp+thinkphp

20 2024最新陪诊小程序uniappthinkphp资源来源:52codes.cc 20最新陪诊小程序uniappthinkphp 简介:随着社会逐渐步进入老龄化越来越多的老年人或者不经常去医院的用户对于医院繁琐的流程很是苦劳于是陪诊这个行业开始兴起。小白陪诊开发理念&#xff0…