SQL 单表查询(上)

简介: SQL 单表查询

文章目录


说明

一些说明

表结构

1. 基本查询操作

1.1. 基本语法

1.2. * 查询所有数据

1.3. as 给字段取别名

1.4. distinct 消除重复

1.4. 运算符

2. where 条件查询

2.1. where中的比较运算符

2.2. where中的逻辑运算符

2.3. 排序

3. 常用函数

3.1. 字符串函数

3.2. 数值函数

3.3. 日期和时间函数

3.3.1. date_format()函数

3.3.2. date_add()函数

3.4. 流程控制函数

3.4.1. if 流程函数

3.4.2. ifnull 流程函数

3.4.3. case 流程函数

3.5. 聚合函数

3.6. 数据库属性函数

4. group by 分组查询


正文


说明


一些说明


本文中所有中括号扩起的文字均代表可以替换的文字(包括中括号本身)

例如在我博客中的:

select [字段1],[字段2],...,[字段n] from [表名] where [查询条件];

在实际使用时,可以写作:

select name,age from users where id=3;


表结构


users表

工号 姓名 性别 年龄 职位 办公电话 手机号
201215121 李勇 40 主管 13650 13365245865
201215122 刘晨 29 收银员 13622 12535468521
201215123 王敏 29 会计 (Null) 17685324586
201215124 刘柳 42 总监 13623 19658245753
201215125 王辉 29 会计 (Null) 16698532547


如上users表所示,

  1. users叫做表名
  2. “工号”、“姓名”、“性别”、“年龄”和“职位”等叫做一个字段
  3. 该表的一行(例如:201215122 刘晨 女 29 收银员 13622 12535468521)叫做一个记录


1. 基本查询操作


1.1. 基本语法


表的查询,即查询表中的数据记录,表的查询操作是SQL的基本数据操作之一,也是使用频率最高、最重要的数据操作。

一个一般的查询语法如下:

select [字段1],[字段2],...,[字段n] from [表名] where [查询条件];



关键字解释:

select: 查询语句的起始关键字,表示该操作为查询操作
from: 后接数据源,表示在[表名]中查询[字段i]
where: 后接查询条件,表示要对查询做的限制,该操作可以帮助数据库使用者做精确的查找


1.2. * 查询所有数据


查询所有字段会把表内所有的数据都查询出来,在select语句中使用星号" * "通配符来查询表中的所有字段

语法为:

select * from [表名];


例如:

select * from users; --表示从users表中查询所有字段,

查询结果为:

35.png


1.3. as 给字段取别名


给字段取别名的意义在于可以清晰的展示某一字段所表示的内容,例如表中有一列“月工资”,要计算“年工资”时可将月工资12,这时候sql会显示该字段的字段名为“月工资12”,这对查询结果的展示很不友好,通常情况下都会给它取一个别名。


取表名的可以使用“as”关键字,或者直接在字段后面接“"[别名]"”

语法为:

select [字段名] as "[别名]", [字段名]"[别名]" from users;


例如下例:

select 工号, 工号 as "工", 姓名, 姓名"姓" from users;

43.png


1.4. distinct 消除重复


如果查询结果中出现重复数据,可用关键字“distinct”消除,若没有加上“distinct”关键字,查询结果将默认展示重复数据。

需要注意的是,“distinct”关键字是作用于所有字段的组合,只有在所有字段值都重复的情况下,才会消除重复。

语法如下:

select distinct [字段1],[字段2],...,[字段n] from [表名]

例如:

select 姓名,性别,年龄,职位 from users;
select distinct 姓名,性别,年龄,职位 from users;


左边是未加distinct关键字的查询结果,右边是加上distinct关键字的查询结果

44.png


1.4. 运算符


SQL提供的基本算术运算符有:

+ :加法
- :减法
* :乘法
/ :除法
% :取余


SQL的算术运算符可以在列、常量之间运算,例如:

select 姓名, 年龄, 年龄+2, 年龄*2, 年龄*2, 年龄/2, 年龄%2 from users;

查询结果为

42.png

要注意的是,运算符也是有优先级的,优先级规则与我们的数学运算符号规则一致。


2. where 条件查询


在select语句中,可以通过where子句,对数据进行过滤,其语法格式为

select [字段1],[字段2],...,[字段n] from [表名] where [查询条件];


例如:

-- 筛选出年龄大于30的人
select 姓名, 年龄 from users where 年龄 > 30;

41.png


2.1. where中的比较运算符


比较运算符 作用
= 等于 <> 不等于
> 大于 < 小于
>= 大于等于 <= 小于等于
between [值1] and [值2] 介于[值1]和[值2]之间 in([值1], [值2],…, [值n]) 包含在[值1], [值2],…, [值n]之中
like 条件匹配(%:匹配多个字符,_:匹配一个字符) [值] is null 判断[值]是否为空

例如:

-- 查询年龄不等于40的人
select 姓名, 年龄 from users where 年龄 <> 40;

38.png

-- 查询年龄介于20到30之间的人
select 姓名, 年龄 from users where 年龄 between 20 and 30;

39.png

-- 匹配姓名中第一个字是‘刘’,第二个字随意的人
select 姓名 from users where 姓名 like '刘_';

40.png


2.2. where中的逻辑运算符


逻辑运算符 作用
[表达式1] and [表达式2] 两个表达式都为true,才返回true ,否则返回false
[表达式1] or [表达式2] 两个表达式其中之一为true,就返回true,两个都为false,才返回false
not [表达式] 若表达式为true,则返回false,若表达式为false,则返回true

例如:

-- 找出年龄大于30的男性
select 姓名, 年龄, 性别 from users where 性别='男' or 年龄>30;

37.png


2.3. 排序


对查询结果进行排序使用order by 关键词

语法:

select [字段1], [字段2],..., [字段n] 
  from [表名] 
  order by [字段名1] [排序方式], [字段名2], [排序方式],..., [字段名n] [排序方式];


排序方式有两种:

  1. asc 顺序排列 (从小到大)
  2. desc 逆向排列 (从大到小)

例如:

-- 先按年龄顺序排列,再将重复值按照工号逆序排列
select 工号, 姓名, 年龄 from users order by 年龄 asc, 工号 desc;

36.png

相关文章
|
5天前
|
SQL 监控 关系型数据库
SQL语句当前及历史信息查询-performance schema的使用
本文介绍了如何使用MySQL的Performance Schema来获取SQL语句的当前和历史执行信息。Performance Schema默认在MySQL 8.0中启用,可以通过查询相关表来获取详细的SQL执行信息,包括当前执行的SQL、历史执行记录和统计汇总信息,从而快速定位和解决性能瓶颈。
|
16天前
|
SQL 存储 缓存
如何优化SQL查询性能?
【10月更文挑战第28天】如何优化SQL查询性能?
60 10
|
10天前
|
SQL 关系型数据库 MySQL
|
24天前
|
SQL 数据库 开发者
功能发布-自定义SQL查询
本期主要为大家介绍ClkLog九月上线的新功能-自定义SQL查询。
|
1月前
|
SQL 移动开发 Oracle
SQL语句实现查询连续六天数据的方法与技巧
在数据库查询中,有时需要筛选出符合特定时间连续性条件的数据记录
|
1月前
|
SQL Java 数据库连接
如何使用`DriverManager.getConnection()`连接数据库,并利用`PreparedStatement`执行参数化查询,有效防止SQL注入。
【10月更文挑战第6天】在代码与逻辑交织的世界中,我从一名数据库新手出发,通过不断探索与实践,最终成为熟练掌握JDBC的开发者。这段旅程充满挑战与惊喜,从建立数据库连接到执行SQL语句,再到理解事务管理和批处理等高级功能,每一步都让我对JDBC有了更深的认识。示例代码展示了如何使用`DriverManager.getConnection()`连接数据库,并利用`PreparedStatement`执行参数化查询,有效防止SQL注入。
87 5
|
1月前
|
SQL 数据挖掘 数据库
SQL查询每秒的数据:技巧、方法与性能优化
id="">SQL查询功能详解 SQL(Structured Query Language,结构化查询语言)是一种专门用于与数据库进行沟通和操作的语言
|
1月前
|
SQL 移动开发 大数据
SQL语句查询连续六天满足条件的记录
在数据库管理和数据分析中,我们经常需要查询符合特定时间范围内连续几天的记录
|
1月前
|
SQL 数据挖掘 关系型数据库
SQL查询次数大于1的记录:高效技巧与方法
在数据库管理中,经常需要统计某些操作的次数,特别是当需要找出哪些记录或值出现的次数超过一定阈值(如大于1次)时
|
1月前
|
SQL 存储 安全
SQL查询数据库:基础概念与操作指南
在数字化时代,数据库已成为信息管理的重要工具之一。作为管理和操作数据库的核心语言,SQL(结构化查询语言)已成为数据管理和查询的关键技能。本文将全面介绍SQL查询数据库的基本概念、语句和操作指南,以帮助初学者快速上手,同时为进阶用户提供有价值的参考。一、数据库与SQL简介数据库是一种存储、管理和检索
40 3