一文吃透 SQL 语法

在这里插入图片描述

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:Java Fans的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:Java案例分享专栏
✨特色专栏:国学周更-心性养成之路
🥭本文内容:服务器虚拟化技术详解

在这里插入图片描述

SQL是结构化查询语言(Structured Query Language)的缩写,是一种用于管理关系型数据库系统的标准化语言。通过SQL,用户可以执行各种操作,如插入数据、查询数据、更新数据、删除数据等。SQL使得用户可以轻松地与数据库进行交互,执行各种操作,从而实现对数据的管理和处理。SQL是一种强大且灵活的语言,被广泛应用于各种数据库管理系统中,如MySQL,Oracle,SQL Server等。通过编写SQL语句,用户可以实现对数据库的各种操作,从简单的数据查询到复杂的数据处理和分析。

1、基本概念

当谈到SQL(Structured Query Language)时,以下是一些基本概念的详细解释:

  • 数据库(Database):数据库是一个存储有组织的数据集合的容器。它可以包含多个表,索引,存储过程等。常见的数据库系统包括MySQL,Oracle,SQL Server等。
  • 表(Table):表是数据库中数据的组织形式,它由行和列组成。每一列代表一个字段,每一行代表一条记录。
  • 行(Row):行是表中的一个记录,它包含了一组相关的数据,每一列对应一种数据类型。
  • 列(Column):列是表中的一个字段,它定义了数据的类型和约束条件。每一列包含相同类型的数据。
  • 主键(Primary Key):主键是表中的一个字段(或一组字段),其值唯一标识表中的每一行。主键的值不能重复,且不能为空。
  • 外键(Foreign Key):外键是表中的一个字段,它建立了表与表之间的关联。外键指向另一个表的主键,用来维护表与表之间的关系。

相关SQL操作语句:

  • 创建表(CREATE TABLE) :用于在数据库中创建新的表。语法如下:
CREATE TABLE 表名 (1 数据类型 约束条件,2 数据类型 约束条件,
    ...
    PRIMARY KEY (主键列名),
    FOREIGN KEY (外键列名) REFERENCES 关联表名(关联列名)
);

这条语句将创建一个新的表,定义每一列的数据类型和约束条件,指定主键和外键。

  • 设置主键(PRIMARY KEY): 主键用于唯一标识表中的每一行,确保数据的唯一性。主键可以由一个或多个列组成。语法如下:
ALTER TABLE 表名
ADD PRIMARY KEY (列名);

这条语句将为指定表添加主键约束,确保指定列的值唯一且非空。

  • 设置外键(FOREIGN KEY): 外键用于建立表与表之间的关联,维护数据的一致性。语法如下:
ALTER TABLE 子表名
ADD CONSTRAINT 外键约束名
FOREIGN KEY (外键列名) REFERENCES 父表名(主键列名);

这条语句将为子表添加外键约束,指定外键列参考父表的主键列,确保数据的一致性。

  • 删除主键(DROP PRIMARY KEY): 用于从表中删除主键约束。语法如下:
ALTER TABLE 表名
DROP PRIMARY KEY;

这条语句将从指定表中删除主键约束。

  • 删除外键(DROP FOREIGN KEY): 用于从表中删除外键约束。语法如下:
ALTER TABLE 子表名
DROP FOREIGN KEY 外键约束名;

这条语句将从子表中删除指定的外键约束。

2、基本语句

  • SELECT语句: SELECT语句用于从数据库中检索数据。语法如下:
SELECT 列名1, 列名2, ... FROM 表名 WHERE 条件;

这条语句将从指定的表中选择指定的列,满足指定条件的行。

  • INSERT语句: INSERT语句用于向数据库中插入新的行。语法如下:
INSERT INTO 表名 (1,2, ...) VALUES (1,2, ...);

这条语句将在指定的表中插入新的行,指定要插入的列和对应的值。

  • UPDATE语句: UPDATE语句用于更新数据库中的现有行。语法如下:
UPDATE 表名 SET 列名1 =1, 列名2 =2 WHERE 条件;

这条语句将更新指定表中满足条件的行的指定列的值。

  • DELETE语句: DELETE语句用于从数据库中删除行。语法如下:
DELETE FROM 表名 WHERE 条件;

这条语句将从指定表中删除满足条件的行。

3、条件筛选

使用WHERE子句是在SQL查询中非常重要的一部分,它允许我们根据特定条件来筛选数据,从而检索所需的数据。以下是关于使用WHERE子句进行条件筛选的详细阐述:

  • 基本语法: WHERE子句通常紧跟在SELECT语句之后,用于指定筛选条件。基本语法如下:
SELECT1,2, ...
FROM 表名
WHERE 条件;

在WHERE子句中,条件可以是比较运算符(如=、<、>、<=、>=、<>)、逻辑运算符(如AND、OR、NOT)、IN、BETWEEN等,用于筛选满足条件的行。

  • 比较运算符:
    • 等于:=
    • 不等于:<>
    • 大于:>
    • 小于:<
    • 大于等于:>=
    • 小于等于:<=
  • 逻辑运算符:
    • AND:同时满足两个条件
    • OR:满足其中一个条件
    • NOT:不满足条件
  • IN运算符: IN运算符用于指定多个可能的值,类似于多个OR条件的简写形式。例如:
WHERE 列名 IN (1,2,3);
  • BETWEEN运算符: BETWEEN运算符用于指定一个范围内的值。例如:
WHERE 列名 BETWEEN1 AND2;

通过使用WHERE子句,我们可以根据特定条件来筛选数据,只检索符合条件的行,从而实现精确的数据查询和检索。合理利用WHERE子句可以提高查询效率,减少不必要的数据传输和处理。

4、排序和分组

排序和分组是在SQL查询中常用的操作,可以帮助我们对结果进行排序和分组,从而更好地理解和分析数据。以下是关于使用ORDER BY进行排序和使用GROUP BY进行分组的详细阐述:

  • ORDER BY排序: ORDER BY子句用于对查询结果按照指定的列进行排序,可以按升序(ASC,默认)或降序(DESC)排列。基本语法如下:
SELECT1,2, ...
FROM 表名
ORDER BY 列名1 [ASC|DESC], 列名2 [ASC|DESC], ...;

例如,要按照某个列的值进行升序排序:

SELECT * FROM 表名
ORDER BY 列名 ASC;
  • GROUP BY分组: GROUP BY子句用于将查询结果按照指定的列进行分组,通常与聚合函数(如SUM、COUNT、AVG等)一起使用。基本语法如下:
SELECT1, 聚合函数(2)
FROM 表名
GROUP BY1;

例如,要按照某个列进行分组,并计算每组的总和:

SELECT1, SUM(2)
FROM 表名
GROUP BY1;
  • HAVING子句: HAVING子句通常与GROUP BY一起使用,用于筛选分组后的结果。它类似于WHERE子句,但是作用于分组后的结果而不是原始数据。基本语法如下:
SELECT1, 聚合函数(2)
FROM 表名
GROUP BY1
HAVING 条件;

例如,要筛选出总和大于某个值的分组:

SELECT1, SUM(2)
FROM 表名
GROUP BY1
HAVING SUM(2) >;

5、连接

使用JOIN语句是在SQL中将多个表连接在一起以检索相关数据的重要操作。JOIN语句允许我们根据两个或多个表之间的关联条件将它们连接起来,从而获取需要的数据。以下是关于使用JOIN语句进行表连接的详细阐述:

  • 内连接(INNER JOIN): 内连接根据两个表之间的关联条件,只返回满足条件的行。基本语法如下:
SELECT1,2, ...
FROM1
INNER JOIN2 ON1.关联列 =2.关联列;

例如,要连接两个表并检索相关数据:

SELECT *
FROM1
INNER JOIN2 ON1.关联列 =2.关联列;
  • 左连接(LEFT JOIN): 左连接返回左表中的所有行,以及右表中与左表匹配的行。如果右表中没有匹配的行,则返回NULL。基本语法如下:
SELECT1,2, ...
FROM1
LEFT JOIN2 ON1.关联列 =2.关联列;
  • 右连接(RIGHT JOIN): 右连接返回右表中的所有行,以及左表中与右表匹配的行。如果左表中没有匹配的行,则返回NULL。基本语法如下:
SELECT1,2, ...
FROM1
RIGHT JOIN2 ON1.关联列 =2.关联列;
  • 全连接(FULL JOIN): 全连接返回左表和右表中的所有行,如果某个表中没有匹配的行,则返回NULL。基本语法如下:
SELECT1,2, ...
FROM1
FULL JOIN2 ON1.关联列 =2.关联列;

通过使用JOIN语句,我们可以将多个表连接在一起,根据关联条件检索相关数据,从而进行更复杂的数据查询和分析。合理使用不同类型的JOIN可以帮助我们获取需要的数据,并理解不同表之间的关系。

6、子查询

子查询是在SQL中非常有用的技术,可以帮助解决复杂的查询问题,将一个查询嵌套在另一个查询中。子查询可以用于检索数据、过滤结果、进行比较等操作。以下是关于子查询的详细阐述:

  • 单行子查询: 单行子查询返回单个值,通常用于比较或过滤数据。基本语法如下:
SELECT1
FROM 表名
WHERE2 = (SELECT3 FROM 另一张表 WHERE 条件);

例如,要检索满足某个条件的数据:

SELECT 姓名
FROM 学生
WHERE 年龄 = (SELECT MAX(年龄) FROM 学生);
  • 多行子查询: 多行子查询返回多个值,通常用于IN子句或EXISTS子句中。基本语法如下:
SELECT1
FROM 表名
WHERE2 IN (SELECT3 FROM 另一张表 WHERE 条件);

例如,要检索属于某个列表的数据:

SELECT 姓名
FROM 学生
WHERE 年龄 IN (SELECT 年龄 FROM 其他学生 WHERE 成绩 > 90);
  • 嵌套子查询: 子查询可以嵌套多层,以实现更复杂的查询逻辑。基本语法如下:
SELECT1
FROM 表名
WHERE2 = (SELECT3 FROM (SELECT4 FROM 另一张表 WHERE 条件) AS 子查询表);

例如,要在子查询中使用聚合函数:

SELECT 姓名
FROM 学生
WHERE 年龄 = (SELECT MAX(年龄) FROM (SELECT * FROM 学生 WHERE 成绩 > 90) AS 子查询表);

通过使用子查询,我们可以在一个查询中嵌套另一个查询,实现更灵活和复杂的数据检索和分析。合理使用子查询可以帮助我们解决各种复杂的查询问题,提高数据查询的效率和准确性。

7、聚合函数

聚合函数在SQL中用于对数据进行汇总计算,如求和、平均值、计数等操作。通过使用聚合函数,我们可以对数据进行统计分析,得出有用的信息。以下是关于使用聚合函数进行汇总计算的详细阐述:

  • SUM函数: SUM函数用于计算指定列的总和。基本语法如下:
SELECT SUM(列名)
FROM 表名;

例如,要计算销售额的总和:

SELECT SUM(销售额)
FROM 销售表;
  • AVG函数: AVG函数用于计算指定列的平均值。基本语法如下:
SELECT AVG(列名)
FROM 表名;

例如,要计算学生的平均成绩:

SELECT AVG(成绩)
FROM 学生成绩表;
  • COUNT函数: COUNT函数用于计算指定列的行数(不包括NULL值)。基本语法如下:
SELECT COUNT(列名)
FROM 表名;

例如,要计算学生表中的记录数:

SELECT COUNT(*)
FROM 学生表;
  • MAX函数和MIN函数: MAX函数用于计算指定列的最大值,MIN函数用于计算指定列的最小值。基本语法如下:
SELECT MAX(列名)
FROM 表名;

SELECT MIN(列名)
FROM 表名;

例如,要找出销售表中的最高销售额和最低销售额:

SELECT MAX(销售额)
FROM 销售表;

SELECT MIN(销售额)
FROM 销售表;

通过使用聚合函数,我们可以对数据进行汇总计算,得出统计信息,帮助我们更好地理解数据和进行分析。合理使用聚合函数可以提供有价值的数据洞察,支持决策和报告。

8、创建和管理表

在关系型数据库中,创建和管理表是非常重要的操作,可以通过定义表结构、约束和索引来确保数据的完整性和性能。以下是关于创建和管理表的详细阐述:

  • 创建表: 创建表是指在数据库中新建一个表,定义表的结构和字段。基本语法如下:
CREATE TABLE 表名 (1 数据类型 约束,2 数据类型 约束,
    ...
);

例如,创建一个名为“学生”的表:

CREATE TABLE 学生 (
    学号 INT PRIMARY KEY,
    姓名 VARCHAR(50) NOT NULL,
    年龄 INT,
    成绩 DECIMAL(5, 2)
);
  • 定义约束: 在创建表时,可以定义约束来确保数据的完整性和一致性。常见的约束包括:
    • PRIMARY KEY:主键约束,保证每行的唯一性。
    • NOT NULL:非空约束,确保字段不为空。
    • UNIQUE:唯一约束,确保字段的值在表中是唯一的。
    • FOREIGN KEY:外键约束,定义表之间的关系。
    • CHECK:检查约束,定义字段值的范围。
  • 添加索引: 索引可以提高数据检索的速度,特别是在大型表中。可以在表的一个或多个列上创建索引。基本语法如下:
CREATE INDEX 索引名 ON 表名 (列名);

例如,在学生表的姓名列上创建索引:

CREATE INDEX idx_name ON 学生 (姓名);
  • 管理表: 除了创建表外,还可以通过ALTER TABLE语句来修改表结构,添加或删除列,修改约束等。还可以使用DROP TABLE语句删除表。

通过创建和管理表,我们可以设计数据库结构,确保数据的完整性和一致性,提高数据检索的效率。合理定义约束和添加索引可以优化数据库性能,提升查询速度。


  码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

在这里插入图片描述

操作系统是计算机系统中的核心组成部分,负责管理和协调计算机硬件和软件资源,提供程序运行环境。在CSDN上有很多关于操作系统的专题文章,以下将从操作系统的基本概念、功能和常见类型等方面简要介绍一下。 首先是操作系统的基本概念。操作系统是一种系统软件,它是计算机硬件和应用软件之间的桥梁,提供给应用程序一系列的服务和资源,同时负责调度和管理系统资源。它为用户屏蔽了底层的硬件差异,提供了一个统一的、易于使用的界面。 操作系统主要有四个基本功能。首先是处理器管理,负责将处理器分配给系统中的各个进程,并进行进程切换,实现多道程序并发执行。其次是内存管理,管理计算机的内存资源,包括分配、回收和保护等操作。再次是文件管理,负责管理文件的存储、命名和保护等操作,提供了文件操作的接口。最后是设备管理,负责管理计算机的各种设备,包括输入输出设备和存储设备等。 常见的操作系统有多种类型。最主流的是Windows、Linux和Mac OS等桌面操作系统。此外还有服务器操作系统,如Windows Server和Linux等,用于管理和部署服务器。还有嵌入式操作系统,如Android和iOS等,用于移动设备和物联网设备。操作系统也有实时操作系统,用于需要实时控制和响应的系统,如工控系统和航空航天系统等。 总之,操作系统是计算机系统中不可或缺的重要组成部分,通过CSDN上的相关文章,我们可以更深入了解操作系统的基本概念、功能和不同类型。这些知识对于理解计算机系统的工作原理和提升编程能力都有着重要意义。
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java Fans

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值