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


    准备数据:

    /*新建学生表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.查询单个列:

    select id from stu;

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

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

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

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

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

    select id,name from stu;

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

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

    select * from stu;

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

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

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

    select distinct age from stu ;

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

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

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

    select id from stu limit 4;

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

    select id from stu limit 1,3;

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

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

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

    以上

    That's all.

    快来星标 置顶 关注

     T ester

  • 相关阅读:
    mq和kafaka架构方面对比高可用性
    一 mq简介
    gtibook 写api文档
    StackExchang.Redis 不稳定
    Log4Net 帮助类
    Android学习之Recyclerview
    《程序员修炼之道--从小工到专家》读书小计
    Xcode7 使用WebView loadRequest发送HTTP请求的问题
    ashx中应用HttpContext.Current.Session ,呈现未将对象引用设置到实例(转)
    Oracle 删除重复数据只留一条【转】
  • 原文地址:https://www.cnblogs.com/ITester520/p/13203408.html
Copyright © 2020-2023  润新知