select查询基础
mysql学习笔记:七.select查询基础
DQL(Data QueryLanguage):数据查询语言,通俗点讲就是从数据库获取数据的,按照DQL的语法给数据库发送一条指令,数据库将按需求返回数据。就是围绕select语句展开的。
查询的结果放在一个表格中,表格的第1行称为列头,第2行开始是数据,类属于一个二维数组。
语法
SELECT column1,column2,... FROM table_name [WHERE clause] [ORDER BY 'column_name' [DESC]] [LIMIT [m,]n];
字段column表示法
表示符 | 代表什么? |
---|---|
* | 所有字段 |
as | 字段别名,如col1 AS alias1 当表名很长时用别名代替 |
条件判断语句WHERE
操作类型 | 常用操作符 |
---|---|
操作符 | >,<,>=,<=,=,!= BETWEEN column# AND column# LIKE:模糊匹配 RLIKE:基于正则表达式进行模式匹配 IS NOT NULL:非空 IS NULL:空 |
条件逻辑操作 | AND OR NOT |
ORDER BY:排序,默认为升序(ASC)
ORDER BY语句 | 意义 |
---|---|
ORDER BY ‘column_name' | 根据column_name进行升序排序 |
ORDER BY 'column_name' DESC | 根据column_name进行降序排序 |
ORDER BY ’column_name' LIMIT 2 | 根据column_name进行升序排序 并只取前2个结果 |
ORDER BY ‘column_name' LIMIT 1,2 | 根据column_name进行升序排序 并且略过第1个结果取后面的2个结果 |
查询常量
mysql> select 1,2,3,'a','b','c';
+---+---+---+---+---+---+
| 1 | 2 | 3 | a | b | c |
+---+---+---+---+---+---+
| 1 | 2 | 3 | a | b | c |
+---+---+---+---+---+---+
1 row in set (0.00 sec)
查询表达式
mysql> select 1+2,3*10,10/3;
+-----+------+--------+
| 1+2 | 3*10 | 10/3 |
+-----+------+--------+
| 3 | 30 | 3.3333 |
+-----+------+--------+
1 row in set (0.00 sec)
查询函数
mysql> select mod(10,4),isnull(null),ifnull(null,'50'),ifnull(1,'50');
+-----------+--------------+-------------------+----------------+
| mod(10,4) | isnull(null) | ifnull(null,'50') | ifnull(1,'50') |
+-----------+--------------+-------------------+----------------+
| 2 | 1 | 50 | 1 |
+-----------+--------------+-------------------+----------------+
1 row in set (0.00 sec)
mod函数:求余
isnull函数,判断参数是否为空,若为空返回1,否则返回0。
ifnull函数,2个参数,判断第一个参数是否为空,如果为空返回第2个参数的值,否则返回第1个参数的值。
查询指定的字段
select 字段1,字段2,字段3 from 表名;
例如:
mysql> drop table if exists test1;
Query OK, 0 rows affected (0.01 sec)
mysql> create table test1(a int not null, b varchar(10) not null default '');
Query OK, 0 rows affected (0.01 sec)
mysql> insert into test1 values (1,'a'),(2,'b'),(3,'c');
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
#只查询a字段
mysql> select a from test1;
+---+
| a |
+---+
| 1 |
| 2 |
| 3 |
+---+
3 rows in set (0.00 sec)
查询所有
select * from 表名
列起别名
在创建数据表时,一般都会使用英文单词或英文单词缩写来设置字段名,在查询时列名都会以英文的形式显示,这样会给用户查看数据带来不便,这种情况可以使用别名来代替英文列名,增强阅读性。
语法:
#as尽量不要省略
select 列 [as] 别名 from 表;
引号问题
别名中有特殊符号的,比如空格,此时别名必须用引号引起来。
mysql的字段名、表名通常不需要加任何引号,如果非要加上引号,必须加反引号
切记一定要语法规范,as尽量不要省略,否则极少数特殊情况可能会出现意想不到的效果
表别名
select 别名.字段,别名.* from 表名 [as] 别名;
例如:
mysql> select t.a,t.b from test1 as t;
+---+---+
| a | b |
+---+---+
| 1 | a |
| 2 | b |
| 3 | c |
+---+---+
3 rows in set (0.00 sec)
mysql> select t.a as 'column_1',t.b as 'column_2' from test1 as t;
+----------+----------+
| column_1 | column_2 |
+----------+----------+
| 1 | a |
| 2 | b |
| 3 | c |
+----------+----------+
3 rows in set (0.00 sec)
mysql> select t.* from test1 as t;
+---+---+
| a | b |
+---+---+
| 1 | a |
| 2 | b |
| 3 | c |
+---+---+
3 rows in set (0.00 sec)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具