MySQL数据查询 - 简单查询

简单查询

  • 在MySQL中可以通过SQL语句来实现基本数据查询,SQL语句可以通过如下多种使用:查询所有字段数据、查询指定字段数据、避免重复数据查询、对结果进行排序和分组等查询。

  • 数据库中可能包含数量庞大的表,表中可能包含无数的记录,如果没有两把刷子要获得所需的数据并非易事。在MySQL中,可以使用SELECT语句来查询数据,根据查询条件的不同,数据库系统会找到不同的数据,通过SELECT语句可以很方便地获取所需的信息。

  • 在MySQL中,SELECT语句的基本语法形式如下:

    SELECT field1 field2 … fieldn
        FROM tablename
        [WHERE CONDITION1]
        [GROUP BY fieldm [HAVING CONDITION2]]	//分组
        [ORDER BY fieldn [ASC|DESC]]//排序
    
  • filed1~fieldn参数表示需要查询的字段名;

  • tablename参数表示表的名称;

  • CONDITION1参数表示查询条件;

  • fieldm参数表示按该字段中的数据进行分组;

  • CONDITION2参数表示满足该表达式的数据才能输出;

  • fieldn参数指按该字段中数据进行排序。排序方式由ASC和DESC两个参数指出;

  • ASC参数表示按升序的顺序进行排序,是默认参数;

  • DESC参数表示按降序的顺序进行排序。

 
 

查询所有字段数据

查询所有字段是指查询表中所有字段的数据,这种方式可以将表中所有字段的数据都查询出来。MySQL有两种方式可以查询表中的所有字段。

  1. 列出表的所有字段
    通过SQL语句SELECT列出表的所有字段,具体语法形式如下:

    SELECT field1,field2,,fieldn FROM tablename;  
    
    其中:
    filed1~fieldn参数表示需要查询的字段名;
    tablename参数表示表的名称。
    
  2. “*”符号表示所有字段
    查询所有字段数据,除了使用上面的方式外,还可以通过符号“*”来实现,具体语法形式如下:

    SELECT * FROM tablename;     
    
    其中:
    符号“*”表示所有字段名;
    tablename参数表示表的名称。
    与上一种方式相比,“*”符号方式的优势比较明显,
    即可用该符号代替表中的所有字段,但是这种方式不够灵活,
    只能按照表中字段的固定顺序显示,不能随便改变字段的顺序。
    
  3. 查询指定字段数据
    查询指定字段数据,只需修改关键字SELECT后的字段列表为指定字段即可。

     SELECT field1,field2,,fieldn FROM tablename;   
     
     例如,从班级表中查询班主任字段,SQL语句如下所示。
     SELECT teacher FROM class;    
    

    如果关键字SELECT后面的字段不包含在所查询的表中,那么MySQL会报错。

  4. DISTINCT 去重查询
    当在MySQL中执行简单数据查询时,有时会显示出重复数据。为了实现查询不重复数据,MySQL提供了DISTINCT功能,SQL语法如下:

    SELECT DISTINCT field1,field2,,fieldn FROM tablename;   
    

    在上述语句中,关键字DISTINCT去除重复的数据。下面将通过一个具体的示例来说明如何实现查询不重复数据。
    执行SQL语句SELECT,在数据库school中查询班级表 class 中teacher字段的数据。具体步骤如下:

    mysql> create table class(name varchar(64));       					#创建表class 
    mysql> insert into class values('张三'),('李四'),('张三'),('张三');  #插入多条记录 
    mysql> select name from class ;  									#查询class表中的name 域,包含重复记录
    mysql> select distinct name from class ;  							#查询class表中的name 域,去重
    
  5. IN查询
    有的时候,当我们需要查询的目标记录限定在某个集合中的时候,在MySQL中可以使用关键字IN来实现,关键字IN可以实现判断字段的数值是否在指定集合中,该关键字的具体语句形式如下:

     SELECT field1,field2,,fieldn   
        FROM tablename WHERE filedm IN(value1,value2,value3,,valuen);   
    

    使用NOT IN可以反向查询非集合中的数据

    SELECT field1,field2,,fieldn   
    	FROM tablename WHERE filedm NOT IN(value1,value2,value3,,valuen);
    

    集合查询的注意: 集合中慎用 NULL
    在具体使用关键字IN时,查询的集合中如果存在NULL,则不会影响查询,NULL 存不存在的效果都一样;但如果使用关键字NOT IN,查询的集合中如果存在NULL,则不会查询到任何的结果。

  6. BETWEEN AND查询
    当我们需要查询指定范围内的数据(如: id 从0 到 100)的时候,MySQL提供了关键字BETWEEN AND,用来实现判断字段的数值是否在指定范围内的条件查询。该关键字的具体语法形式如下:

    SELECT field1,field2,,fieldn  
    	FROM tablename WHERE fieldm BETWEEN minvalue AND maxvalue  
    

    在上述语句中,参数fieldn表示名称为tablename的表中的字段名,通过关键字BETWEEN和AND来设置字段field的取值范围,如果字段field的值在所指定的范围内,那么满足查询条件,该记录会被查询出来,否则不会被查询出来。
    BETWEEN minvalue AND maxvalue,表示的是一个范围间的判断过程,只针对数字类型。
    1.符合范围的数据记录查询
    通过关键字BETWEEN和AND设置查询范围,以实现查询语文成绩(字段Chinese)在80和90之间的学生,具体SQL如下:

    mysql> create table class(id int , name varchar(128), age tinyint unsigned);   #创建class表
    mysql> insert into class values(1, '张三' 18),(2, '李四' 23),(3, '王五', 25);    #插入多条记录   
    mysql> select * from class where age between  
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值