博客
关于我
MySQL查询数据表中数据记录(包括多表查询)
阅读量:792 次
发布时间:2023-02-13

本文共 2328 字,大约阅读时间需要 7 分钟。

MySQL查询数据表中数据记录(包括多表查询)是数据库使用的核心技能之一。在实际应用中,熟练掌握select查询语句的使用方法,可以帮助开发者高效地从数据库中提取所需的数据。

1. selection_list: 设置查询的内容

要查询的内容是select语句的关键部分。通过设置selection_list,可以指定要查询的字段。如果需要查询表中的所有列,可以使用星号"*"来表示所有列。例如:

select * from tb_chengji; // 查询数据表中的所有数据

如果只想查询某一列或多列,可以直接列出这些列名,并用逗号分隔。例如:

select xuesheng, yuwen from tb_chengji; // 查询数据表中xuesheng和yuwen列的数据

2. table_list: 多表查询

在实际应用中,往往需要从多个表中提取数据。通过设置table_list,可以指定要查询的表。多个表之间可以通过逗号分隔,并使用where子句定义连接条件。例如:

select tb_chengji.id, tb_chengji.xuesheng, xingbie, dizhi, yuwen, shuxue, yingyu from tb_chengji, tb_info where tb_chengji.xuesheng = tb_info.xuesheng and tb_chengji.yuwen >= 100;``  需要注意的是,为了明确指定字段所属表,可以在表名前面加上前缀。例如:  ```sqltb_chengji.xuesheng = tb_info.xuesheng``  如果没有连接条件,直接使用多个表名会导致笛卡尔积,产生大量无关的数据。### 3. where条件语句  在实际应用中,查询往往需要过滤出符合特定条件的数据。通过设置where子句,可以指定查询的条件。常用的比较运算符包括:  - 等于 (`=`)  - 大于 (`>`)  - 小于 (`<`)  - 大于等于 (`>=`)  - 小于等于 (`<=`)  - 不等于 (`!=` 或 `<>`)  - 是空值 (`IS NULL`)  - 不是空值 (`IS NOT NULL`)  - 在范围内 (`BETWEEN`)  - 在列表中 (`IN`)  - 不在列表中 (`NOT IN`)  - 模糊匹配 (`LIKE`)  - 不是模糊匹配 (`NOT LIKE`)  - 正则表达式匹配 (`REGEXP`)  例如,查询某一特定学生的记录:  ```sqlselect * from tb_chengji where xuesheng = '李丽';

4. GROUP BY对结果分组

通过GROUP BY子句,可以对查询结果进行分组。例如,计算每个学生的平均成绩:

select xuesheng, avg(fenshu) from tb_chengji group by xuesheng;``  需要注意的是,GROUP BY子句中的列必须在SELECT列表中出现,或者与聚合函数一起使用。### 5. HAVING子句  HAVING子句用于对分组后的结果进行进一步筛选。例如,筛选出总成绩大于等于280的学生:  ```sqlselect xuesheng, sum(fenshu) from tb_chengji group by xuesheng having sum(fenshu) >= 280;

6. DISTINCT去除重复行

通过使用DISTINCT关键字,可以去除结果中的重复行。例如,去除xuesheng字段中的重复数据:

select distinct xuesheng from tb_chengji;

7. ORDER BY对结果排序

通过ORDER BY子句,可以对查询结果进行升序(ASC)或降序(DESC)排列。例如,按id降序排列:

select * from tb_chengji order by id desc;

8. LIKE模糊查询

LIKE子句用于实现模糊匹配,常用于高级查询。例如,查找第二个字符是“冬”的学生:

select * from tb_chengji where xuesheng like('_冬%');

9. CONCAT联合多列

通过CONCAT函数,可以将多个字段的值合并为一个字符串。例如,合并yuwen、shuxue和yingyu字段:

select id, xuesheng, concat(yuwen, ":", shuxue, ":", yingyu) as fenshu from tb_chengji;

10. LIMIT限定结果行数

通过LIMIT子句,可以限制查询结果的行数。例如,显示前三条记录:

select * from tb_chengji order by id desc limit 3;

11. 使用函数和表达式

在查询中,可以使用各种函数和表达式来处理数据。例如,计算学生的总分:

select id, xuesheng, sum(yuwen + shuxue + yingyu) as zongfen from tb_chengji group by id;

总结来说,熟练掌握select查询语句的使用方法,对于从数据库中提取数据的任务具有至关重要的作用。在实际应用中,合理运用where、GROUP BY、HAVING、DISTINCT、ORDER BY等子句,可以帮助开发者高效地完成复杂的数据处理任务。

转载地址:http://aidfk.baihongyu.com/

你可能感兴趣的文章
MySQL清空表数据
查看>>
mysql源码安装
查看>>
Mysql源码安装过程中可能碰到的问题
查看>>
MySQL灵魂16问,你能撑到第几问?
查看>>
MySQL灵魂拷问:36题带你面试通关
查看>>
mysql状态分析之show global status
查看>>
mysql状态查看 QPS/TPS/缓存命中率查看
查看>>
mysql生成树形数据_mysql 实现树形的遍历
查看>>
mysql用于检索的关键字_Mysql全文搜索match...against的用法
查看>>
MySQL用得好好的,为什么要转ES?
查看>>
MySql用户以及权限的管理。
查看>>
MySQL用户权限配置:精细控制和远程访问的艺术!------文章最后有惊喜哦。
查看>>
mysql用户管理、常用语句、数据分备份恢复
查看>>
MySQL留疑问:left join时选on还是where?
查看>>
mysql登陆慢问题解决
查看>>
Mysql百万级数据查询优化
查看>>
MySQL的 DDL和DML和DQL的基本语法
查看>>
mysql的 if else , case when then, IFNULL
查看>>
MySQL的10种常用数据类型
查看>>
MySQL的btree索引和hash索引的区别
查看>>