基础查询的简述及语法

基础查询的目的是从数据库中满足特定条件的数据。通过使用SQL(结构化查询语言)来实现。

就是从数据库中找到我们需要的信息。我们可以使用SELECT语句来选择想要看到的列,也可以使用WHERE子句来筛选出符合条件的结果。这样就可以更快地找到我们需要的数据。

下面就是SELECT的基础语法

格式一:
SELECT '属性列表',……
FROM '表名和视图列表';
格式二:
SELECT '属性列表',……
FROM '表名和视图列表'
WHERE '条件表达式'……;

格式一可以理解为选取得某些属性(数据)来自某表中来.

格式二可以理解为选取得某些属性(数据)来自某表中来,取出满足满足条件的数据.

以下是对于格式一和格式二的总结

格式一:
-- sno, sname, ssex 分别表示学号,姓名,性别,即从学生表中选取学号,姓名,性别,
SELECT sno, sname, ssex FROM student;
格式二:
-- 从学生表中选取学号,姓名,性别,限制只能是男的
SELECT sno, sname, ssex FROM student WHERE ssex = '男';

基本规则

星号()表示选择所有列。
在SQL中可以随意使用换行符,不会影响语句执行,但不能插入空行。
设定汉语别名时需要使用双引号(“)括起来。
使用DISTINCT可以删除重复行。
注释是SQL语句中用来标识说明或者注意事项的部分,有一行注释”–“和多行注释”/
*/"两种形式。

算术运算符和比较运算符

SQL语句的算术运算和数学中的用法表示相同只是符号上略有差异(+ - * / 分别是加减乘除)

常见的比较运算符

= 相等
<> 不相等

= 大于等于

大于
<= 小于等于
< 小于

逻辑运算符

这指的是NOT,OR,AND,其分别类比于逻辑运算符C语言中的逻辑运算符(!,||,&&)

AND 运算符两侧都为真时才是真,否则为假。

OR 运算符两侧的值只要为有一侧为真,其值整体就为真,除非都为假。

NOT运算符只是单纯的将真转换为假,将假转换为真。

逻辑运算符 AND 的示例:

SELECT * FROM table_name WHERE column1 = 'value1' AND column2 = 'value2';
这串代码的意思是从表中选择所有列,但只选择满足条件 column1 等于 ‘value1’ 且 column2 等于 ‘value2’ 的行。

逻辑运算符 OR 的示例:

SELECT * FROM table_name WHERE column1 = 'value1' OR column2 = 'value2';
这串代码的意思是从表中选择所有列,选择满足条件 column1 等于 ‘value1’ 或者 column2 等于 ‘value2’ 的行。

逻辑运算符 NOT 的示例:

SELECT * FROM table_name WHERE NOT column1 = 'value1';
这串代码的意思是从表中选择所有列,但不选择满足条件 column1 等于 ‘value1’ 的行。

真值表

对较复杂的语句,能够很好的进行理解

真值表的作用简要的进行了介绍那么追根溯源,什么是真值呢? 不难理解,就是对的值(TRUE),反过来想就是假的值(FALSE).

这和常见的编程语言python,c,java中的布尔值用法相同,如果条件满足返回ture,否则返回false.

对表进行聚合查询

SQL中用于汇总的函数叫做聚合函数。以下五个是最常用的聚合函数:

SUM:计算表中某数值列中的合计值

AVG:计算表中某数值列中的平均值

MAX:计算表中任意列中数据的最大值,包括文本类型和数字类型

MIN:计算表中任意列中数据的最小值,包括文本类型和数字类型

COUNT:计算表中的记录条数(行数)

聚合函数和Execl中的函数基本相似

以下是我通过student数据库对于SQL查询语句的一个具体表示,更有助于理解聚合函数:

首先创建student数据库,其中包含一个名为 “scores” 的表,该表包含以下列:id, name, subject, score。

计算某科目的平均分:

SELECT AVG(score) AS avg_score FROM scores WHERE subject = 'Math';

计算某科目的最高分:

SELECT MAX(score) AS max_score FROM scores WHERE subject = 'English';

计算某科目的最低分:

SELECT MIN(score) AS min_score FROM scores WHERE subject = 'History';

计算某科目的总分:

SELECT SUM(score) AS total_score FROM scores WHERE subject = 'Science';

计算某科目的记录数(即学生人数):

SELECT COUNT(*) AS num_students FROM scores WHERE subject = 'Physics';

若想删除重复值的聚合运算,就可以通过DISTINCT 函数来实现

SELECT COUNT(DISTINCT sname) FROM student;

对表进行分组

其中GROUP BY语句的主要作用就是对于表中的数据进行分组

SELECT '属性表名', ……
  FROM '表名和视图列表'
 GROUP BY '属性表名', ……;

例如:

SELECT * FROM SC GROUP BY sno, cno;

从名为 “SC” 的表中选择所有列,并按照 “sno” 和 “cno” 两个列进行分组。GROUP BY 子句用于指定按照哪些列进行分组,然后对每个组应用聚合函数。在上述示例中,相同 “sno” 和 “cno” 列值的行将被分组在一起。

排序的简述及语法

排序操作在数据库中用于按照一定的顺序排列数据,通常通过ORDER BY子句实现。
ORDER BY允许用户指定一个或多个列,并指定排序的方向(升序ASC或降序DESC)

对查询结果进行排序

其中ORDER BY语句是对随机的数据进行排序

SELECT '属性表名', ……
  FROM '表名和视图列表'
 ORDER BY '排序基准列1' [ASC, DESC], '排序基准列2' [ASC, DESC], ……

例如:

SELECT * FROM student ORDER BY sno;

从名为 “student” 的表中选择所有列,并对其中的"sno"进行排序

本人在学习过程中暂时只熟悉了这些知识,可能很多知识,没有讲述清楚,没有讲述详细,还请指正!