MySQL 6:查询的基本操作

本文介绍了SQL的基本查询操作,包括单个字段、多个字段及所有字段的查询方法,同时还讲解了如何进行常量、表达式和函数的查询,并演示了如何设置字段别名以增强脚本的可读性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

提到查询,就回到我们第四篇的SQL语言分类了,DQL(Data QueryLanguage),也就是数据查询语言,实际就是从数据库中获取数据的一种命令方式。我们给数据库发送一个查询语句的命令,数据库按需返回相应的数据。

查询基本语法

select column_name1,column_name2,… from tname;
SQL 中不区分大小写,select语句中不区分大小写,SELECT和select、FROM和from效果一样。

查询的结果放在一个表格中,表格的第1行称为列头,第2行开始是数据,类属于一个二维数组。

查询单个字段

配置字段名称,格式如下:

1 select column_name1 from tname;

1 mysql> use test;
2 Database changed
3
4 mysql> select name from user3;
5 ±------+
6 | name |
7 ±------+
8 | brand |
9 | sol |
10 ±------+
11 2 rows in set

查询多个字段

多个字段使用逗号隔开,语法格式如下

1 select column_name1,column_name2,… from tname;

1 mysql> use test;
2 Database changed
3
4 mysql> select id,age,name from user3;
5 ±—±----±------+
6 | id | age | name |
7 ±—±----±------+
8 | 1 | 20 | brand |
9 | 2 | 22 | sol |
10 ±—±----±------+
11 2 rows in set

查询所有字段

使用*号通配符来表示,语法格式如下

1 select * from tname;

1 mysql> use test;
2 Database changed
3
4 mysql> select * from user3;
5 ±—±----±------+
6 | id | age | name |
7 ±—±----±------+
8 | 1 | 20 | brand |
9 | 2 | 22 | sol |
10 ±—±----±------+
11 2 rows in set

常量的查询

对于常量值的查询,可以不来源于表,格式如下

1 select const1,const2,const3;

1 mysql> select 100,‘brand’,1.5;
2 ±----±------±----+
3 | 100 | brand | 1.5 |
4 ±----±------±----+
5 | 100 | brand | 1.5 |
6 ±----±------±----+
7 1 row in set

表达式的查询

sql的加减乘除等等表达式的查询,格式如下:

1 select expression1,expression2,…;

1 mysql> select 1+2,1-2,1*7,17/2,17%2,(2+3)5,8>5,7=4;
2 ±----±----±----±-----±-----±--------±----±----+
3 | 1+2 | 1-2 | 1
7 | 17/2 | 17%2 | (2+3)*5 | 8>5 | 7=4 |
4 ±----±----±----±-----±-----±--------±----±----+
5 | 3 | -1 | 7 | 8.5 | 1 | 25 | 1 | 0 |
6 ±----±----±----±-----±-----±--------±----±----+
7 1 row in set

函数的查询

可以在查询中加上各种类型的系统函数或者用户自定义函数,来简化一些较复杂的查询过程。格式如下:

1 select func1,func2,func3,…;

1 mysql> select abs(-6),round(5.7),length(‘brand’),now();
2 ±--------±-----------±----------------±--------------------+
3 | abs(-6) | round(5.7) | length(‘brand’) | now() |
4 ±--------±-----------±----------------±--------------------+
5 | 6 | 6 | 5 | 2020-11-06 21:07:41 |
6 ±--------±-----------±----------------±--------------------+
7 1 row in set

表和字段的查询

查询列名都会以列的定义名称显示,这样显示的时候查看不方便,还容易暴露数据库的信息给业务,为了增强脚本可阅读性,我们经常使用字段别名。

设置表的别名更主要的还是在于书写查询语句时候的便利,并避免多表查询时的字段混淆。格式如下:

1 select talias.column_name1 col1,talias.column_name2 col2 from tname [as] talias;
1 mysql> use test;
2 Database changed
3
4 mysql> select u.id as 主键,u.age as 年龄,u.name as 名称 from user3 u;
5 ±-----±-----±------+
6 | 主键 | 年龄 | 名称 |
7 ±-----±-----±------+
8 | 1 | 20 | brand |
9 | 2 | 22 | sol |
10 ±-----±-----±------+
11 2 rows in set

混合查询

查询具体表的字段是可以跟表达式,常量等混合在一起的,这样才能应付复杂的业务。
1 mysql> select ‘中国2020人口普查’ as 标题,u.id as 主键,u.age as 年龄,u.name as 名称,now() as 查询时间,2020*rand() as 随机数 from user3 u;
2 ±-----------------±-----±-----±------±--------------------±-------------------+
3 | 标题 | 主键 | 年龄 | 名称 | 查询时间 | 随机数 |
4 ±-----------------±-----±-----±------±--------------------±-------------------+
5 | 中国2020人口普查 | 1 | 20 | brand | 2020-11-06 21:23:39 | 1236.3585094328582 |
6 | 中国2020人口普查 | 2 | 22 | sol | 2020-11-06 21:23:39 | 344.21752367561453 |
7 ±-----------------±-----±-----±------±--------------------±-------------------+
8 2 rows in set

标题总结

1、本片只是查询的基础篇,后续会引出 查询的过滤条件、排序、分页、分组、正则匹配过滤,以及复杂查询的性能优化等等。

2、查询数据的时候,应遵循应需而查,查询需要的字段即可,切勿随意的使用*,数据量大的时候性能差距就明显了。

作者:翁智华
出处:https://www.cnblogs.com/wzh2010/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值