前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL从入门到入魔之select简单查询

SQL从入门到入魔之select简单查询

作者头像
ITester软件测试小栈
发布2019-10-17 02:04:01
1.7K0
发布2019-10-17 02:04:01
举报
文章被收录于专栏:全栈测试

准备数据:

代码语言:sql
复制
/*新建学生表stu*/
create table stu(
id int not null PRIMARY key auto_increment comment'主键',
name varchar(12) comment'姓名',
age varchar(12)
 )
/*插入数据*/
insert into stu(id,name,age)values
(1001,'coco',18),
(1002,'sunny',19),
(1003,'rose',20),
 	(1004,'jack',19);

一、SELECT语句

使用select查询表数据,必须至少给出两条信息——想选择什么,以及从什么地方选择。

#1.查询单个列:

代码语言:sql
复制
select id from stu;

未排序数据 如果没有明确排序查询结果,可能会发现显示输出的数据顺序与原表不同,返回的数据的顺序没有特殊意义,可能是数据被添加到表中的顺序,也可能不是,只要返回相同数目的行就是正常的。

结束SQL语句 多条SQL语句以分号(;)分隔。

SQL语句和大小写 SQL语句不区分大小写,SELECT与select是相同的。同样,写成Select也没有关系。许多SQL开发人员喜欢对所有SQL关键字使用大写,而对所有列和表名使用小写,这样使代码更易于阅读和调试。

使用空格和空行 在处理SQL语句时,其中所有空格都被忽略。SQL语句可以在一行上给出,也可以分成许多行,多数SQL开发人员认为将SQL语句分成多行更容易阅读和调试。

#2.查询多个列:查询学生表的id,name两列的值

代码语言:sql
复制
select id,name from stu;

在select关键字后给出多个列名,列名之间以逗号分隔,最后一个列名后不加逗号。

#3.查询所有列:查询学生表所有列的值

代码语言:sql
复制
select * from stu;

使用*通配符 一般,除非确实需要表中的每个列,否则最好别使用*通配符。不用明确列出所需列,但检索不需要的列通常会降低检索和应用程序的性能。

检索未知列 不明确指定列名(因为星号检索每个列),所以能检索出名字未知的列。

#4.查询不同的行(distinct去重):查询学生表所有学生的年龄

代码语言:sql
复制
select distinct age from stu ;

使用DISTINCT关键字,它必须直接放在列名的前面。

不能部分使用DISTINCT DISTINCT关键字应用于所有列而不仅是前置它的列,除非指定的两个列都不同,否则所有行都将被检索出来。

#5.1 限制结果(limit分页):查询学生表前4行的学生ID

代码语言:sql
复制
select id from stu limit 4;

#5.2 限制结果(limit m,n:从行m开始往后n行,第1行的m为0):查询学生表倒数三个学生的ID

代码语言:sql
复制
select id from stu limit 1,3;

带一个值的LIMIT总是从第一行开始,给出的数为总的行数。带两个值的LIMIT可以指定从行号为第一个值的位置开始。

行0开始 检索出来的第一行为行0而不是行1。因此,LIMIT 1, 1将检索出第二行而不是第一行。

行数不够时 LIMIT中指定要检索的行数为检索的最大行数,如果没有足够的行(例如,给出LIMIT 10, 5,但只有13行),MySQL将只返回它能返回的那么多行。

以上

That's all.

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ITester软件测试小栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、SELECT语句
    • #1.查询单个列:
      • #2.查询多个列:查询学生表的id,name两列的值
        • #3.查询所有列:查询学生表所有列的值
          • #4.查询不同的行(distinct去重):查询学生表所有学生的年龄
            • #5.1 限制结果(limit分页):查询学生表前4行的学生ID
              • #5.2 限制结果(limit m,n:从行m开始往后n行,第1行的m为0):查询学生表倒数三个学生的ID
              相关产品与服务
              云数据库 MySQL
              腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档