mysql基础操作:数据查询

目录

简单查询

查询所又字段数据

1.列出表的所有字段

2.“*”符号的使用

查询自定字段数据

DISTINCT 查询

IN查询

1.在集合中的数据记录

2.不在集合中的数据记录查询

3.集合查询的注意

BETWEEN AND查询

LIKE模糊查询

1.带有“%”通配符的查询

2.带有“_”通配符查询

3.使用LIKE关键字查询其他类型数据

对查询结果排序

简单分组查询


简单查询

在MySQL中可以通过SQL语句来实现基本数据查询,SQL语句可以通过如下几种方式使用:查询所有字段数据、查询指定字段数据、避免重复数据查询、实现数学四则运算数据查询、设置显示格式数据查询。

数据库中可以包含无数的表。表中可能包含无数的记录,因此要获得所需的数据并非易事。在MySQL中,可以使用SELECT语句来查询数据,根据查询条件的不同,数据库系统会找到不同的数据,通过SELECT语句可以方便地获取所需的信息。

在MySQLzhong SELECT语句的基本语法形式如下:

SELECT field1,field2 ... fieldn
FROM tablename
[WHERE CONDITION1]
[GROUP BY fieldm [HAVING CONDITION2]]
[ORDER BY fieldn [ASC | DESC]]

其中,field1~fieldn 参数表示需要查询的字段名; tablename参数表示表的名称;CONDITION1参数表示查询条件;fieldm参数表示按该字段中的数据进行分组;CONDITION2参数表示满足该表达式的数据才能输出;fieldn参数值按该字段进行排序。排序方式又ASC和DESC两个参数指出;ASC参数表示按升序的顺序进行排序,是默认参数;DESC参数表示按降序的顺序进行排序。

查询所又字段数据

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

1.列出表的所有字段

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

SELECT  field1,field2,....,fieldn FROM tablename

其中,field1~fieldn参数表示需要查询的字段名;tablename参数表示表的名称。

2.“*”符号的使用

查询所有字段数据,除了使用上面的方法外,还可以通配符“*”来实现,具体形式如下

SELECT * FROM tablename

其中,符号“*”表示所有字段名;tablename参数表示表的名称。

与上一种方式相比,“*”符号方式的优势比较明明显,即可用该符号代替表中的所有字段,但是这种方式不够灵活,只能按照表中字段的固定顺序显示,不能随便改变字段的顺序。

查询自定字段数据

插叙所有字段数据,需要在关键SELECT后指定包含所有字段的列表或者符号 “*”,如果需要查询指定字段数据,只需要修改关键字SELECT后面字段列表为指定字段即可。

例如:从学生表中查询姓名、性别和年龄字段,SQL语句如下所示。

SELECT name,gender,age FROM t_student;

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

DISTINCT 查询

DISTINCT 可以去除重复数据

SELECT DISTINCT name FROM user

取出user表中name相同的数据咱是,可以指定多列。

左图为没有去重的name中的数据,有图为去重后的数据

IN查询

在MySQL中提供可关键字IN,用来实现判断字段的数值是否在指定集合的田间查询,该关键字具体语句形式如下

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

在上述语句中,参数field表示名称为tablename的表中的字段名,参数valuen表示集合中的值,通过关键字IN来判断字段fieldm的值是否在集合(value1,value2,value3,..,valuen)中,如果字段fieldm的值在集合中,就满足查询条件,该记录会被查询出来,否则不会被查询出来。

1.在集合中的数据记录

查询mysql库下的user表中user列的值为‘root’和‘twz’用户

SELECT user from user WHERE user IN ('root','twz')

说明:user表示字段名,mysql.user为mysql库下的use表,查询名称为’root‘和‘twz’的记录

2.不在集合中的数据记录查询

通过关键字NOT IN设置集合查询条件,以实现查询mysql库中user表用户名不为’root‘和‘twz’的记录

 

3.集合查询的注意

在具体使用关键字IN时,查询的集合如果存在NULL,则不会影响查询;使用关键字,NOT IN,查询的集合如果存在NULL,则不会有任何的查询结果。

(1).通过IN关键字以实现查询mysql库中user表用户名称为'root'和‘twz’的记录,带有NULLj结果如下。

(1).通过NOT IN关键字以实现查询mysql库中user表用户名称不为'root'和‘twz’的记录,带有NULLj结果如下。

 

BETWEEN AND查询

MySQL提供了关键字BETWEEN AND,用来实现判断字段的数值是否在指定范围内打的条件查询。该关键字的语法形式如下:

SELECT field1,field2,...,fieldn
FROM tablename WHERE fieldm BETWEEN 85 AND 90;

在上述语句中,参数fieldn表示名称为tablename的表中的字段名,通过关键字BETWEEN和AND来设置字段字段field的取值范围,如果字段field的值在所指定的范围内,那么满足查询田间,该记录会被查询出来,否则不会查询出来。

BETWEEN minvalue AND mavvalue 表示的是一个范围间的判断过程,只针对数字类型。

1。符合范围的数据记录查询

通过关键字BETWEEN和AND 设置查询范围,已实现查询ID为10和20之间的数据,具体SQL语句如下:

SELECT id FROM app_node WHERE  id BETWEEN 10 AND 20;

结果如下:

2.不符合的数据记录查询

通过关键字NOT设置非查询范条件。具体SQL语句如下

SELECT id FROM app_node WHERE  id NOT BETWEEN 10 AND 20;

结果如下:

LIKE模糊查询

MySQL提供了关键字LIKE来实现模糊查询,具体语法形式如下:

SELECT field1,field2,...,fieldn
FROM tablename WHERE fieldm LIKE VALUE;

在上述语句中,参数tablename表示表名,参数fieldn表示表中的字段名字,通过关键字LIKE来判断字段field的值是否与value字符串匹配,如果相匹配,则满足查询条件,该记录就会被查询出来,否则就不会查询出来。

在MySQL中,字符串必须加上单引号(‘’)或者双引号("")。由于关键字LIKE可以实现模糊查询,因此该关键字后面的字符串参数除了可以使用完整的字符串外,还可以包含通配符。LIKE关键字支持的通配符打入下表:

通配符功能描述
_该通配符值能匹配单个字符
%该通配符可以匹配任意长度的字符串,既可以是0个字符、1个字符,也可以是很多字符。

1.带有“%”通配符的查询

(1)查询字段name中以字母R开头的数据记录,具体SQL语句如下:

SELECT user FROM user WHERE user like 'R%';

结果如下:

 

(2)MySQL不区别大小写,上述SQL语句可以修改如下:

SELECT user FROM user WHERE user like 'r%';

(3)如果想查询以字母r开头的全部用户,可以执行逻辑非运算符(NOT或!),具体语句如下:

 SELECT user FROM user WHERE user NOT LIKE  'r%';

2.带有“_”通配符查询

(1)查询字符user中以第二个字母O的记录,具体SQL语句如下:

SELECT user FROM user WHERE user LIKE  '_o%';

结果如下:

(2)如果想查询第二个字母不是o的全部用户,可以执行逻辑非运算符(NOT或!),具体语句如下:

SELECT user FROM user WHERE user NOT LIKE  '_o%';

(3)如果相查询第二个字符不是0 的全部用户,也可以用一下SQL语句查询:

SELECT user FROM user WHERE NOT user LIKE  '_o%';

3.使用LIKE关键字查询其他类型数据

在MySQL中,LIKE关键字除了可以操作字符串类型的数据外,还可以操作其他数据类型。

(1)执行SQL语句SELECT,查询字段ID带有数字9的全部用户,具体SQL如下:

 SELECT id FROM user WHERE id LIKE '%9%';

结果如下:

(2)对于LIKE关键字,如果匹配‘%%’,就表示查询所有数据记录

SELECT id FROM user WHERE id LIKE '%%';

对查询结果排序

在MySQL中,从表中查询出来的数据是无序的,或者其排列顺序不是用户所期望的顺序,为了使查询结果的顺序满足用户的要求,可以使用关键字ORDER BY对诗句进行排序。具体语法形式如下:

SELECT field1,field2,...,fieldn
FROM tablename ORDER BY fieldm [ASC[DESC]]

在上述语句中,参数tablename表示进行排序的表明,参数field表示表中的字段名字,参数fieldm表示按照该字段进行排序;ASC表示按升序进行排序;DESC表示按降序进行排序。默认的情况下按ASC进行排序;

(1)执行SQL语句SELECT,查询表user中所有的数据记录,按照id字段升序排序,具体SQL语句如下:

SELECT id FROM user ORDER BY id;     

结果如下:

(2)执行SQL语句SELECT,查询表user中的id数据记录,按照id字段进行降序排序,具体语句如下:

SELECT id FROM user ORDER BY id DESC;

简单分组查询

MySQL软件提供了5个统计函数来帮助用户统计数据,可以使用户很方便地对记录进行统计数、统计和、统计平均数,计算最大值和最小值,而不需要的查询所有数据。

在具体使用统计函数时,都是针对表中所有记录数或指定特定条件(WHERE子句)的数据记录进行统计计算,在实现应用中,经常会先把虽有数据记录进行分组,再对这些进组后的数据记录进行统计计算。

MySQL通过SQL语句GROUP BY来是心啊,分组数据查询语法如下:

SELECT function() 
FROM tablename WHERE CONDITION GROUP BY field;

在上述语句中,参数field表示某字段名,通过该字段名对名称为tablename的表的数据进行分组。

(1)执行SQL语句GROUP BY,对所有数据记录plan(工单表)中的字段userId进行分组,具体语句如下:

 select userId from plan ORDER BY userId ;

结果如下:

注:在GROUP BY 可以使用多个字段进行分组,用‘,’分隔,使用统计的只能查询分组的字段,或者使用聚合函数(AVG() 返回某列的平均值,COUNT() 返回某列的行数,MAX() 返回某列的最大值,MIN() 返回某列的最小值,SUM() 返回某个列之和)。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值