MySQL全面瓦解6:查询的基本操作
概述
提到查询,就回到我们第四篇的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、查询数据的时候,应遵循应需而查,查询需要的字段即可,切勿随意的使用*,数据量大的时候性能差距就明显了。
MySQL全面瓦解6:查询的基本操作的更多相关文章
- Mariadb/MySQL数据库单表查询基本操作及DML语句
Mariadb/MySQL数据库单表查询基本操作及DML语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一数据库及表相关概述 1>.数据库操作 创建数据库: CREATE ...
- Mysql查询优化从入门到跑路(三)查询的基本操作
查询的基本操作 1.选择操作 对应的是限制条件,操作对象是二维表的行. 优化方式:选择操作下推 目的:尽量减少连接操作前的元租数,使得中间临时关系尽量少(元祖数少,连接得到的元组数就少 ...
- MySQL在Django框架下的基本操作(MySQL在Linux下配置)
[原]本文根据实际操作主要介绍了Django框架下MySQL的一些常用操作,核心内容如下: ------------------------------------------------------ ...
- MySQL如何执行关联查询
MySQL中‘关联(join)’ 一词包含的意义比一般意义上理解的要更广泛.总的来说,MySQL认为任何一个查询都是一次‘关联’ --并不仅仅是一个查询需要到两个表的匹配才叫关联,索引在MySQL中, ...
- MySQL全面瓦解13:系统函数相关
概述 提到MySQL的系统函数,我们前面有使用过聚合函数,其实只是其中一小部分.MySQL提供很多功能强大.方便易用的函数,使用这些函数,可以极大地提高用户对于数据库的管理效率,并更加灵活地满足不同用 ...
- MySQL全面瓦解23:MySQL索引实现和使用
MySQL索引实现 上一篇我们详细了解了B+树的实现原理(传送门).我们知道,MySQL内部索引是由不同的引擎实现的,主要包含InnoDB和MyISAM这两种,并且这两种引擎中的索引都是使用b+树的结 ...
- MySQL全面瓦解24:构建高性能索引(策略篇)
学习如果构建高性能的索引之前,我们先来了解下之前的知识,以下两篇是基础原理,了解之后,对面后续索引构建的原则和优化方法会有更清晰的理解: MySQL全面瓦解22:索引的介绍和原理分析 MySQL全面瓦 ...
- MySQL全面瓦解25:构建高性能索引(案例分析篇)
回顾一下上面几篇索引相关的文章: MySQL全面瓦解22:索引的介绍和原理分析 MySQL全面瓦解23:MySQL索引实现和使用 MySQL全面瓦解24:构建高性能索引(策略篇) 索引的十大原则 1. ...
- Mysql多表表关联查询 inner Join left join right join
Mysql多表表关联查询 inner Join left join right join
- mysql多表联合查询
转自:http://www.cnblogs.com/Toolo/p/3634563.html 多表连接,小分三种(笛卡尔积.内连接.外连接),多分五种 (笛卡尔积.内连接.左连接.右连接.全连接(my ...
随机推荐
- NodeJS二进制合并
Node.js 批量文件合并code cnblogs @ Orcim 本 文主要介绍使用 Node 进行 ACB 序列文件(Atom CueSheet Binary,编译 AtomCueSheet ...
- 010 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 04 变量的三个元素的详细介绍之二——变量类型——即Java中的数据类型
010 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 04 变量的三个元素的详细介绍之二--变量类型--即Java中的数据类型 Java中变量的三要素 变量名 变 ...
- Java知识系统回顾整理01基础03变量02基本变量类型
一.变量类型分类 一个变量的类型,决定了该变量可以包含什么样的值. Java中有八种基本类型,都是Java语言预先定义好的,并且是关键字. 这八种基本类型分别是: 整型 (4种) 字符型 (1种) ...
- Camera插件之CinematicCamera介绍
Camera插件之CinematicCamera 继承自PerspectiveCame 构造函数引用的PerspectiveCamera的构造函数, 代码如下 var CinematicCamera ...
- 用< 100行代码向EPUB或Web服务器添加视频回放
下载source - 32.3 KB 下载latest version from GituHub 介绍 在我 在关于CodeProject的前一篇文章中,我展示了一个简单的EPUB查看器 Androi ...
- shell-变量的数值运算let内置命令
1. let命令的用法 格式: let 赋值表达式 [注]let赋值表达式功能等同于:((赋值表达式)) 范例1:给自变量i加8 [root@1-241 scripts]# i=2 [root@1- ...
- 网络IO模型-异步选择模型(Delphi版)
其实关于这个模型,网络上也有一个案例说明 老陈使用了微软公司的新式信箱.这种信箱非常先进,一旦信箱里有新的信件,盖茨就会给老陈打电话:喂,大爷,你有新的信件了!从此,老陈再也不必频繁上下楼检查信箱了, ...
- 多测师讲解rf--定位元素--高级讲师肖sir
注意点: 注意点: rfbug:rf 点击勾选一个运行就运行两个出现用例执行 注释快捷键: 改字体大小: 快捷键:显示关键字信息 (ctrl+鼠标悬浮) 注解不能空格在注解 未保存提示 定位方法 : ...
- VMware虚拟机中共享文件夹 开机启动
输入命令: sudo /usr/bin/vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid=1000 -o gid=1000 -o umask=02 ...
- 转 mysql show processlist 查看当前连接
show processlist和show full processlist processlist命令的输出结果显示了有哪些线程在运行,不仅可以查看当前所有的连接数,还可以查看当前的连接状态帮助识别 ...