首页 > 其他分享 > 单表查询

单表查询

时间:2023-05-16 16:04:23浏览次数:35  
标签:字段 查询 语法 select 单表 where 字段名

第一章 简单查询

1.1、select语句

mysql 中查询数据的基本语句是select语句。

语法:

select [distinct] 字段1,字段2,字段3.....
from 表名
[where 条件表达式]
[group by 字段名]
[having 条件表达式]
[order by 字段名 [asc|desc]]
[limit 偏移量]

distinct:剔除重复数据

[]:可选项

[where 条件表达式] :用于条件判断

[group by 字段名] : 用于分组
[having 条件表达式] : 与 group by 连用,用于判断
[order by 字段名 [asc|desc]] : 排序,asc:默认的,升序;desc:降序
[limit ] : 分页

顺序按照上述语法执行。

1.2、查询所有字段

查询所有字段有两种方式:

  • 通过 列出所有字段名

    • 例如现在需要查询 book 表中数据

    • select bid,bname,author
      from book;
      

  • 通过 *

    • 同样查询 book 表中数据

    • select * from book;
      

一般情况下,除非需要使用表中的所有字段的数据,否则最好不要使用 * ,虽然可以节省输入查询语句的时间,但是由于获取的数据多,会导致降低查询效率

1.3、查询指定字段

语法:

select 需要的字段名 from 表名;

例查询 book 表中的书名 与 作者:

select author,bname from book;

第二章 条件查询

由于数据库中有大量的数据,很多时候需要根据需求来获取指定的数据,或者对查询的数据重新进行排列组合。这时就需要在查询语句中添加条件来筛选。

语法:

select 字段名.....
from 表名
where 条件判断

where 中的条件判断是指 select 语句中的查询条件,查询条件可以为如下示:

2.1、关系运算符

mysql 中常见的关系运算符如下:

关系运算符 说明 关系运算符 说明
= 等于 <= 小于等于
<> 不等于 >= 大于等于
!= 不等于 > 大于
< 小于

其中 <>!= 是等价的.

案例操作:

#查询 sid 为 4 的学生姓名
select sname from score where sid=4;

其余操作类似。

2.2、in关键字

用于判断某个字段的值是否在指定集合中

语法:

select 字段 from 表名 where 字段名 [not] In (值1,值2,值3.....) 

[not] :可选参数,表示不在

案例操作:查询 sid 为 1,2,4 的学生姓名

select sid,sname from score where sid in (1,2,4);

2.3、between and

between and 用于判断某个字段是否在指定范围内

语法:

select *|字段
from 表
where 字段名 [not] between 值1 and 值2

值1:起始值

值2:结束值

相当于:[值1,值2]

案例操作:查询 sid 在[2,5]的学生信息

select sid,sname from score where sid between 2 and 5;

2.4、空值查询

在数据库中,有些列可能为空值,空值不是0,也不是空字符串,在 mysql 使用 is null 来判断字段是否为空

语法:

select *|字段
from 表
where 字段名 is [not] null; 

2.5、distinct

用于剔除查询结果中重复数据

语法:

select distinct 字段
from 
where 

当 distinct 后面字段有多个时,只有字段值相同,才会被认为是重复的记录。也就是说在多字段下,字段中需要有重复值,disinct才会生效。

2.6、like

模糊查询。

当需要对字符串进行不确定查询使用

语法:

select *|字段
from 表
where 字段名 [not] like '匹配字符串'; 

匹配字符串可通过通配符来使用:

%:可以匹配任意多个字符

_ :只能匹配一个字符

例如:查询姓名含有 a 的员工信息

select * from emp where name like '%a%';

查询姓名第二个为 a 的员工

select * from emp where name like '%_a%';

2.7、and 多条件查询

用于连接两个查询条件

语法:

select *|字段
from 表
where 条件表达式 1 and 条件表达式2 [and ...]; 

例如:查询 sid 小于 4 且 成绩为 大于 60的学生

select sname
from score
where sid < 4 and grade > 60;

2.8、or 多条件查询

作用与 and 差不多,只不过条件满足其一即可

语法:

select *|字段
from 表
where 条件表达式 1 or 条件表达式2 [or ...]; 

例如:查询学生表中名字以 h 开头,或者性别为 女 或者 成绩为 100 的学生

select id,name,grade,gender
from student
where name like 'h%' or gender = '女' or grade=100;

当 or 与 and 一起连用时,因为 and 优先级大于 or,所以会先 and 再 or

第三章 高级查询

3.1、聚合函数

常见聚集函数有:

函数名称 作用 函数名称 作用
COUNT() 返回总行数 MAX() 返回某列的最大值
SUM() 返回某列的和 MIN() 返回某列的最小值
AVG() 返回某列的平均值

可与 select 查询结合使用

3.1.1、count()

可用来统计记录的条数

语法:

select count( * | 某列) from 表名;

对于列我们可以通过 * 来代替所有列。

3.1.2、SUM()

求出表中某字段所有值的总和。

语法:

select sum(字段名) from 表名;

其余操作与上述相同。

3.2、排序

当对表中的数据查询后结果可能是无序的或排序不是需求的理想结果,这时可使用 order by 来进行查询结果排序。

语法:

select 字段名1,字段名2.........
from 表名
order by 字段1 [ASC|DESC],字段2 [asc|desc].......

asc:默认的,升序

desc:降序

3.3、分组查询

在对表进行统计时。需要按照一定的类别来进行统计,这时可通过 group by 来进行分组.

语法:

select 字段名1,字段名2.........
from 表名
group by 字段1 ,字段2 .......
[having 条件判断]

having:对分组后的内容进行过滤,常与 group by 一起使用

如果 查询字段出现在 group by 后,却没有包含在聚合函数中,该字段显示的是分组后的第一条记录的值,这样可能导致查询结果不符合预期。

3.4、limit

查询数据时,可能会返回多条记录,而用户需求可能只有其中部分,比如分页功能,每页显示 10 条信息,每次查询就只需查询出 10条记录即可。

这时可使用 limit 来实现上述功能.

语法:

select 字段名1,字段名2.........
from 表名
limit 偏移量 记录数;

偏移量:可选项,不指定,则默认为 0,当其值为 0 时:表示从查询结果中的第一条记录开始,当其值为 1 :表示从查询结果中第二条开始,以此类推。

记录数:表示返回查询的条数

第四章 别名

4.1、表别名

语法:

select 字段名 from 表名 [as] 别名;

4.2、字段别名

语法:

select 字段名 [as] 别名 from 表名 [as] 别名;

标签:字段,查询,语法,select,单表,where,字段名
From: https://www.cnblogs.com/xiarongblogs/p/17405850.html

相关文章

  • pb中查询子窗口,动态设置查询条件,如日期
    1、可以直接如下设置 2、或者在查询组件中添加事件 ......
  • grafana查询zabbix历史记录过程慢——解决办法
    解决办法 grafana绕过zabbix直接对接数据1、配置数据datasources(mysql) 2、zabbix数据源使用mysql 测试后速度明显提升非常多......
  • 1、通过亿级数据量在hive和impala中查询比较text、orc和parquet性能表现(二)
    文章目录9、分别在hive和impala中查询验证结果(比較HDFS存儲三種格式文件的查詢性能textfile、orc、parquet)1)、查詢總條數2)、隨便找一條信息,按照name查詢3)、按照多条件查询4)、按照時間區間查詢5)、兩張表join6)、總結1、文件存儲2、hive查詢與impala查詢速度3、不同查詢類型的查詢......
  • mysql终止慢查询进程
    要终止执行慢查询的MySQL进程,你可以使用`KILL`语句。以下是在MySQL中使用`KILL`语句终止慢查询的一般步骤:1.首先,使用以下命令查找正在执行的慢查询的进程ID(也称为线程ID):SHOWFULLPROCESSLIST;这将显示当前正在执行的所有MySQL进程的列表,包括进程ID、执行时间和查询语句。2......
  • SQL Server 夸数据库查询
    数据需要在两个服务器之间的数据库查询DB1DB2  1.安装MicrosoftSQLServerDataTools 2.把DB1里面要查询的表保存成csv文件,命个名假设叫f.csv3.安装路径里面C:\ProgramFiles(x86)\MicrosoftSQLServer\130\DTS\BinnDTSWizards.exe 点开这个文件选择Fla......
  • python的dataframe通过query使用dict字典查询
    示例```params={"坐席姓名":"唐红成"}query_string='and'.join(  [f'({key}=="{val}")'iftype(val)==strelsef'({key}=={val})'forkey,valinparams.items()])df.query(query_string)```......
  • 工厂智能电表远程抄表系统项目,成功案例,源代码出售,C#语言,可监控24小时厂区总用电量波形
    工厂智能电表远程抄表系统项目,成功案例,源代码出售,C#语言,可监控24小时厂区总用电量波形图,单表24小时用电量波形图。可自动导出多种不同形式excel表,厂区单月各表用电量,厂区各表电量值,单表每日用电量表,单表每小时用电量表ID:3477654308305764......
  • mysql查询某张表数据量
    SELECTtable_schema,table_nameAS'name',table_rowsAS'rows',concat(round(DATA_LENGTH/1024/1024,2),'MB')ASALL_DATA,concat(round(INDEX_LENGTH/1024/1024,2),'MB')ASALL_INDEX,......
  • LabVIEW数据库Mysql数据库操作;增加-删除-更新-查询;数据管理程序,完整案例,可移植。
    LabVIEW数据库Mysql数据库操作;增加-删除-更新-查询;数据管理程序,完整案例,可移植。ID:9299673612213945......
  • 【MySQL--08】复合查询
    【MySQL--08】复合查询在之前我们对表的查询都是对一张表进行查询,再实际开发中这还远远不够。我们仍然使用雇员信息表scott_data.sql--使用source加上sql文件路径就可以讲表加入到数据库内--mysql>source/home/Lxy/mysql/mysql/lesson8/scott.sqlQueryOK,0rowsaffected......