玩转Mysql系列 - 第6篇:select查询基础篇

这篇具有很好参考价值的文章主要介绍了玩转Mysql系列 - 第6篇:select查询基础篇。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这是Mysql系列第6篇。

环境:mysql5.7.25,cmd命令中进行演示。

DQL(Data QueryLanguage):数据查询语言,通俗点讲就是从数据库获取数据的,按照DQL的语法给数据库发送一条指令,数据库将按需求返回数据。

DQL分多篇来说,本文属于第1篇。

基本语法

select 查询的列 from 表名;

注意:

select语句中不区分大小写,SELECT和select、FROM和from效果一样。

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

查询常量

select 常量值1,常量值2,常量值3;

如:

mysql> select 1,'b';
+---+---+
| 1 | b |
+---+---+
| 1 | b |
+---+---+
1 row in set (0.00 sec)

查询表达式

select 表达式;

如:

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)

查询函数

select 函数;

如:

mysql> select mod(10,4),isnull(null),ifnull(null,'第一个参数为空返回这个值'),ifnull(1,'第一个参数为空返回这个值,否知返回第一个参数');
+-----------+--------------+-----------------------------------------------------+--------------------------------------------------------------------------------+
| mod(10,4) | isnull(null) | ifnull(null,'第一个参数为空返回这个值')             | ifnull(1,'第一个参数为空返回这个值,否知返回第一个参数')                       |
+-----------+--------------+-----------------------------------------------------+--------------------------------------------------------------------------------+
|         2 |            1 | 第一个参数为空返回这个值                            | 1                                                                              |
+-----------+--------------+-----------------------------------------------------+--------------------------------------------------------------------------------+
1 row in set (0.00 sec)

说明一下:

mod函数,对两个参数取模运算。

isnull函数,判断参数是否为空,若为空返回1,否则返回0。

ifnull函数,2个参数,判断第一个参数是否为空,如果为空返回第一个参数的值,否则返回第一个参数的值。

查询指定的字段

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 comment '字段a',b varchar(10) not null default '' comment '字段b');
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.01 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select a,b from test1;
+---+---+
| a | b |
+---+---+
| 1 | a |
| 2 | b |
| 3 | c |
+---+---+
3 rows in set (0.00 sec)

说明:

test1表有两个字段a、b,select a,b from test1;用于查询test1中两个字段的数据。

查询所有列

select * from 表名

说明:

*表示返回表中所有字段。

如:

mysql> select * from test1;
+---+---+
| a | b |
+---+---+
| 1 | a |
| 2 | b |
| 3 | c |
+---+---+
3 rows in set (0.00 sec)

列别名

在创建数据表时,一般都会使用英文单词或英文单词缩写来设置字段名,在查询时列名都会以英文的形式显示,这样会给用户查看数据带来不便,这种情况可以使用别名来代替英文列名,增强阅读性。

语法:

select 列 [as] 别名 from 表;

使用双引号创建别名:

mysql> select a "列1",b "列2" from test1;
+------+------+
| 列1  | 列2  |
+------+------+
|    1 | a    |
|    2 | b    |
|    3 | c    |
+------+------+
3 rows in set (0.00 sec)

使用单引号创建别名:

mysql> select a '列1',b '列2' from test1;;
+------+------+
| 列1  | 列2  |
+------+------+
|    1 | a    |
|    2 | b    |
|    3 | c    |
+------+------+
3 rows in set (0.00 sec)

不用引号创建别名:

mysql> select a 列1,b 列2 from test1;
+------+------+
| 列1  | 列2  |
+------+------+
|    1 | a    |
|    2 | b    |
|    3 | c    |
+------+------+
3 rows in set (0.00 sec)

使用as创建别名:

mysql> select a as 列1,b as 列 2 from test1;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2 from test1' at line 1
mysql> select a as 列1,b as '列 2' from test1;
+------+-------+
| 列1  | 列 2  |
+------+-------+
|    1 | a     |
|    2 | b     |
|    3 | c     |
+------+-------+
3 rows in set (0.00 sec)

别名中有特殊符号的,比如空格,此时别名必须用引号引起来。

懵逼示例,看效果:

mysql> select 'a' 'b';
+----+
| a  |
+----+
| ab |
+----+
1 row in set (0.00 sec)

mysql> select 'a' b;
+---+
| b |
+---+
| a |
+---+
1 row in set (0.00 sec)

mysql> select 'a' "b";
+----+
| a  |
+----+
| ab |
+----+
1 row in set (0.00 sec)

mysql> select 'a' as "b";
+---+
| b |
+---+
| a |
+---+
1 row in set (0.00 sec)

认真看一下第1个和第3个返回的结果(列头和数据),是不是懵逼状态,建议这种的最好使用as,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 '列 1',t.b as 列2 from test1 as t;
+-------+------+
| 列 1  | 列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)

mysql> select * from test1 as t;
+---+---+
| a | b |
+---+---+
| 1 | a |
| 2 | b |
| 3 | c |
+---+---+
3 rows in set (0.00 sec)

总结

  • 建议别名前面跟上as关键字

  • 查询数据的时候,避免使用select *,建议需要什么字段写什么字段文章来源地址https://www.toymoban.com/news/detail-668136.html

到了这里,关于玩转Mysql系列 - 第6篇:select查询基础篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【MySQL系列】Select语句单表查询详解(二)ORDERBY排序

    💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃 个人主页 :阿然成长日记 👈点击可跳转 📆 个人专栏: 🔹数据结构与算法🔹C语言进阶 🚩 不能则学,不知则问,耻于问人,决无长进 🍭 🍯 🍎 🍏 🍊 🍋 🍒 🍇 🍉 🍓 🍑 🍈 🍌 🍐 🍍 ⬇️创建一个学生成

    2024年02月11日
    浏览(33)
  • Mysql 数据库DQL 数据查询语言 SELECT 基本查询、条件查询、聚合查询、分组查询、排序查询、分页查询——包含DQL所有查询语句。吐血分享。

    DQL:数据查询语言; 用来对表内的数据进行查找 。Database Query Language SQL语句分为:基本查询、条件查询、聚合查询、分组查询、排序查询、分页查询。  可以发现name字段就只剩下一个张三了;   条件: 条件查询—比较运算符 比较运算符 功能 大于 = 大于等于 小于 = 小于等

    2024年01月19日
    浏览(45)
  • pycharm连接MySql数据库,新建表creat table、删除表drop table、查询表select、插入数据insert

    亲爱的小伙伴,欢迎你来为学习新的知识啦~~~ 一、安装pymysql 首先我们肯定要先在python中把能操作mySql的第三方数据库安装一下呀~ 安装方式:pip安装(你有没有安装好pip呀,可以看安装pip的相关文章进行安装好哦~) 打开我们电脑的终端,然后输入以下的命令,将我们

    2024年02月09日
    浏览(39)
  • MySQL数据库基础之MySQL查询基础

    从今天开始,本系列内容就带各位小伙伴学习数据库技术 。数据库技术是Java开发中必不可少的一部分知识内容。也是非常重要的技术。本系列教程由浅入深, 全面讲解数据库体系。 非常适合零基础的小伙伴来学习。 全文大约【 1212】 字,不说废话,只讲可以让你学到技术、

    2024年02月06日
    浏览(40)
  • MySQL数据库基础3-基础查询

    创建表、单行插入、多行插入就不重复介绍了。 当我们的程序每天都会产生大量的数据,而这些数据都是前一天或者再之前的数据更新产生,我们也只需要保存其中一条,此时就考虑用新的数据替换老的数据。 语法: replace into tablename values(); 如果主键或者唯一键不冲突,则

    2024年02月05日
    浏览(43)
  • 数据库基础之 - MySQL条件查询

    从今天开始,本系列内容就带各位小伙伴学习数据库技术。 数据库技术是Java开发中必不可少的一部分知识内容。也是非常重要的技术。本系列教程由浅入深, 全面讲解数据库体系。 非常适合零基础的小伙伴来学习。 全文大约【 1263】 字,不说废话,只讲可以让你学到技术、

    2024年02月06日
    浏览(60)
  • MySQL数据库基础(三):多表查询,子查询,开窗函数

    表与表之间的关系 在SQL语句中,数据表与数据表之间,如果存在关系,一般一共有3种情况: ① 一对一关系(高级) 比如有A、B两张表,A表中的每一条数据,在B表中有一条唯一的数据与之对应。 用户表user user_id(用户编号) 账号username 密码password 001 admin admin888 002 itheima

    2024年02月12日
    浏览(34)
  • MySQL数据库基础(十):DQL数据查询语言

    文章目录 DQL数据查询语言 一、数据集准备 二、select查询 三、简单查询 四、条件查询 1、比较查询 2、范围查询 3、逻辑查询 4、模糊查询 5、非空查询 五、排序查询 六、聚合查询 七、分组查询与having子句 1、分组查询介绍 2、group by的使用 3、group by + 聚合函数的使用 4、gro

    2024年02月21日
    浏览(33)
  • Mysql查询(SELECT)

    基本查询:SELECT FROM SELECT 查询字段 FROM 表名; SELECT * FROM userinfo; 条件查询:用where表示查询条件 SELECT 查询字段 FROM 表名  WHERE 条件; 模糊查询:like %匹配0或多个字符,一般不用左模糊(%放在左边,导致索引失效,降低查询效率) SELECT 查询字段 FROM 表名 WHERE username LIKE \\\"%熊

    2024年02月10日
    浏览(29)
  • Mysql select查询练习

    目录 (一)  1、查询出部门编号为30的所有员工:  2、所有销售员的姓名、编号和部门编号: 3、找出奖金高于工资的员工: 4、找出奖金高于工资60%的员工: 5、找出部门编号为10中所有经理,和部门编号为20中所有销售员的详细资料: 6、找出部门编号为10中所有经理,部门

    2024年02月16日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包