首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

老司机教你用SQL之查询操作

求和 sum(列)表示求此列的和 例4:查询男生的总年龄 select sum(age) from students where gender=1; -- 平均年龄 select sum(age)/count...() group_concat(字段名)可以作为一个输出字段来使用 表示分组之后,根据分组结果,使用group_concat()来放置每一组的某字段的值的集合 select gender from students...having作用和where一样,但having只能用于group by select gender,count(*) from students group by gender having count...,分别为: 内连接查询:查询的结果为两个表匹配到的数据 左连接查询:查询的结果为两个表匹配到的数据,左表特有的数据,对于右表中不存在的数据使用null填充 右连接查询:查询的结果为两个表匹配到的数据...select 语句 子查询分类 标量子查询: 子查询返回的结果是一个数据(一行一列) 列子查询: 返回的结果是一列(一列多行) 行子查询: 返回的结果是一行(一行多列) 标量子查询 查询班级学生平均年龄

1.2K10

快速生成测试数据以及 EXPLAIN 详解

,当执行查询时,这个标记会使其返回关于在执行计划中每一步的信息,而不是执行它,它会返回一行或多行信息,显示出执行计划中的每一部分和执行的次序,从而可以从分析结果中找到查询语句或是表结构的性能瓶颈。...通过 EXPLAIN,我们可以分析出以下结果: 表的读取顺序 数据读取操作的操作类型 哪些索引可以使用 哪些索引被实际使用 表之间的引用 每张表有多少行被优化器查询 随机生成大量测试数据 利用 MySQL...id 相同时执行顺序从上至下。 id 不同时,如果是子查询,id 的序号会递增,序号越大的越先执行。...这也可以是下列值之一: :输出行引用了 id 值为 M 和 N 的行的 UNION 结果。 :该行引用了一个 id 值为 n 的行的派生表结果。...ref - 和索引进行比较的列 和索引进行比较的列,表示哪些列或常量与键列中命名的索引相比较,以从表中选择行。

1.4K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    软件测试必备的数据库SQL查询语法

    优先级由高到低的顺序为:小括号,not,比较运算符,逻辑运算符 and 比 or 先运算,如果同时出现并希望先算 or,需要结合()使用 4、排序 为了方便查看数据,可以对数据进行排序 语法: select...','保密',所以分为了 4 组 当 group by 单独使用时,只显示出每组的第一条记录, 所以 group by 单独使用时的实际意义不大 6.2 group by + group_concat(...) 6.2.1 group_concat(字段名)可以作为一个输出字段来使用, 6.2.2 表示分组之后,根据分组结果,使用 group_concat()来放置每一组的某字段的值的集合 select gender...子查询分类 标量子查询:子查询返回的结果是一个数据(一行一列) 列子查询:返回的结果是一列(一列多行) 行子查询:返回的结果是一行(一行多列) 标量子查询 查询班级学生平均年龄 查询大于平均年龄的学生...需求:查找班级年龄最小,身高最矮的学生 行元素:将多个字段合成一个行元素,在行级子查询中会使用到行元素 select * from students where height=(select min(

    2.9K20

    MySQL游标

    1、定义 游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次一行遍历数据的能力。...游标相当于一个指针,这个指针指向select的第一行数据,可以通过移动指针来遍历后面的数据。 3、属性 在mysql中,游标可以在存储过程、函数、触发器和事件中使用。...游标有以下三个属性: Asensitive: 数据库也可以选择不复制结果集 Read only: 不可更新,只读 Nonscrollable: 游标只能向一个方向前进,并且不可以跳过任何一行数据。...遍历数据:使用游标循环遍历select结果中每一行数据,然后进行处理。...declare 游标名称 cursor for 查询语句; # 打开游标 open 游标名称; # 遍历游标 # 取出当前行的结果,将结果放在对应的变量中,并将游标指针指向下一行的数据。

    2.7K10

    SQL学习之SQL注入总结

    然后再来了解下union UNION 用于合并两个或多个 SELECT 语句的结果集,并消去表中任何重复行。 UNION 内部的 SELECT 语句必须拥有相同数量的列,列也必须拥有相似的数据类型。...同时,每条 SELECT 语句中的列的顺序必须相同.默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。...当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。 order by 用于对结果集进行排序。...,假设有name和password and (select 1 from (select count(*),concat(floor(rand()*2),0x23,( select group_concat...()函数 在每个字符前添加反斜杠:\ my_sql_real_escape_string() my_sql_real_escape_string()函数转义sql语句中使用的字符串中的特殊符:\x00

    1.7K40

    Array对象的方法实现(1)----Array.prototype.push和Array.prototype.concat(实现常规参数的功能)

    1,Array对象的push方法 push 用于向数组的末尾添加一个或多个元素,并返回新的长度;改变原数组的长度,将新的值添加在数组的尾部 语法:array.push(item1, item2, ......_push(8,9,10)); console.log(pushArr0); 输出都是改变后的数组长度7和改变后的数组[1,2,3,4,8,9,10] _push方法需要注意的是: (1,在当前数组添加元素的位置...this[param[1]]有效,同时 this[param[1]] === 0和this[param[1]] === false的判断 (2,添加param[2] === 0和param[2] ===...= 1,如果从上向下遍历(direction = -1同时将to和from重新赋值从数组的最后一位开始) step18:while循环count>0,进行循环。...如果from存在则拷贝,如果不存在就删除,count--,同时对to和from处理 step19:返回O对象 通过上边代码,我发现我写的代码太嫩了,考虑的太不全面了,不过先写着,慢慢学习,我相信多年过后来看自己的代码

    58210

    MySQL注入--Payload

    ' MySQL注入姿势payload 报错注入 语句执行后返回异常信息,这些异常信息包含了重要数据 floor报错注入: floor和group by配合使用group by的key唯一性和编码顺序导致二次执行产生不同大的...1,所以直接在count(1)上加1,此时1字段有了两行,第三次查询结果为0 插入到临时表的同时再次查询原始表,结果为1进行插入,由于此前1字段已经存在。...​ xpath_stringXpath格式的字符串 ​ concat返回结果为连接参数产生的字符串 ?...POST还是GET方法,同时Request对象可以不通过集合过的数据,直接使用request("name")asp按照QueryString(get),Form(post),Cookie,Serverariable...黑客向服务端发送第二个与第一次不相同的请求数据信息。

    2.5K20

    好文推荐 |手把手教你如何实现大量图片的自适应图片页面的排列

    三、向当前行追加图片 我设置了一个缓冲值,假如当前行的总宽度与容器宽度(每行的宽度上限)的差值在缓冲值之内,这一行就没法再继续添加图片,可以直接将当前行的状态标记为“已完成”。...const BUFFER = 30; // 单行宽度缓冲值 然后是将图片放到行里面的函数,分为两部分:递归判断是否将图片放到哪一行,将图片添加到对应行。...递归之后的图片数据按行保存,但每一行的总宽度都和实际容器的宽度有出入,如果直接使用当前的图片宽高,会导致每一行参差不齐。...,这个过程是异步的,所以我没有将这部分数据和上面的图片数据一起处理。...而是当所有图片宽高都查询到之后,再额外处理这部分数据,并将结果拼接到之前的图片后面。

    1.5K20

    手把手教你如何实现大量图片的自适应图片页面的排列

    3、向当前行追加图片 我设置了一个缓冲值,假如当前行的总宽度与容器宽度(每行的宽度上限)的差值在缓冲值之内,这一行就没法再继续添加图片,可以直接将当前行的状态标记为“已完成”。...const BUFFER = 30; // 单行宽度缓冲值 然后是将图片放到行里面的函数,分为两部分:递归判断是否将图片放到哪一行,将图片添加到对应行。...递归之后的图片数据按行保存,但每一行的总宽度都和实际容器的宽度有出入,如果直接使用当前的图片宽高,会导致每一行参差不齐。...,这个过程是异步的,所以我没有将这部分数据和上面的图片数据一起处理。...而是当所有图片宽高都查询到之后,再额外处理这部分数据,并将结果拼接到之前的图片后面。

    1.1K20

    【Hive】SQL语句大全

    文章目录 库操作 创建数据库 查询数据库 修改数据库 删除数据库 表操作 创建表 查看表 修改表 删除表 内部表(管理表)和外部表 两者的区别 互相转换 分区表 创建分区表 添加分区 往分区表中添加数据...show tables; 修改表 -- 重命名表 alter table student rename to new_student; -- 添加列(添加的列在分区字段之前,括号中使用逗号分隔添加多列...='女',1,0)) female_count from student group by age; 行转列 Concat concat(string1/col, string2/col, …) 输入任意个字符串...(或字段,可以为int类型等),返回拼接后的结果 select concat(id,'-',name,'-',age) from student; Concat_ws concat_ws(separator...Rank 排序 该函数配合OVER()使用 RANK() 排序相同时会重复,总数不会变 DENSE_RANK() 排序相同时会重复,总数会减少 ROW_NUMBER() 会根据顺序计算 假设有如下

    2.5K11

    MySQL

    ,为表添加一些强制性的验证,包括数据字段的类型、约束 数据类型 可以通过查看帮助文档查阅所有支持的数据类型 使用数据类型的原则是:够用就行,尽量使用取值范围小的,而不用大的,这样可以更多的节省存储空间...() group_concat(字段名)可以作为一个输出字段来使用, 表示分组之后,根据分组结果,使用group_concat()来放置每一组的某字段的值的集合 select gender...子查询是可以独立存在的语句,是一条完整的 select 语句 子查询分类 标量子查询: 子查询返回的结果是一个数据(一行一列) 列子查询: 返回的结果是一列(一列多行) 行子查询:...返回的结果是一行(一行多列) 标量子查询 查询班级学生平均年龄 查询大于平均年龄的学生 查询班级学生的平均身高 select * from students where age >...create、alter、drop等语句 fetchone()执行查询语句时,获取查询结果集的第一个行数据,返回一个元组 fetchall()执行查询时,获取结果集的所有行,一行构成一个元组

    1.5K10

    MySQL(九)之数据表的查询详解(SELECT语法)一

    带AND的多条件查询、带OR的多条件查询、关键字DISTINCT(查询结果不重复)、对查询结果排序、分组查询(GROUP BY)、使用LIMIT限制查询结果的数量  2.1、查询所有字段     select...总结:'%'和'_'可以在任意位置使用,只需要记住%能够表示任意个字符,_只能表示一个任意字符 2.7、查询空值 空值不是指为空字符串""或者0,一般表示数据未知或者在以后在添加数据,也就是在添加数据时...分组之后还可以进行条件过滤,将不想要的分组丢弃,使用关键字 HAVING select s_id,count(b_name),group_concat(b_name),group_concat(b_price...,不管某列有数值或者为空值,因为*就是代表查询表中所有的数据行     COUNT(字段名):计算该字段名下总的行数,计算时会忽略空值的行,也就是NULL值的行。     ...3.3、AVG()     AVG()函数通过计算返回的行数和每一行数据的和,求的指定列数据的平均值(列数据指的就是字段名下的数据,不要搞不清楚列和行,搞不清就对着一张表搞清楚哪个是列哪个是行),通俗点讲

    3.4K110

    SqlAlchemy 2.0 中文文档(三十六)

    当存在时,额外的列将包含在 RETURNING 子句中,并且在返回时,CursorResult对象将被“倒带”,以便像CursorResult.all()这样的方法将以大部分方式返回新行,就好像语句直接使用了...集合被填充为 RETURNING 结果的第一行。...当存在时,额外的列将包含在 RETURNING 子句中,并且在返回时 CursorResult 对象将被“倒带”,因此像 CursorResult.all() 这样的方法将返回新的行,几乎就像语句直接使用了...coalesce concat SQL CONCAT()函数,用于连接字符串。 count ANSI COUNT 聚合函数。没有参数时,发出 COUNT *。 cube 实现CUBE分组操作。...coalesce concat SQL CONCAT() 函数,用于连接字符串。 count ANSI COUNT 聚合函数。没有参数时,发出 COUNT *。 cube 实现CUBE分组操作。

    40410

    MySQL秘籍之索引与查询优化实战指南

    INSERT INTO 语句INSERT INTO 语句用于向表格中插入新的行。...因此,在表中进行数据查询时,可以根据索引值一步一步定位到数据所在的行。B-树索引可以进行全键值、键值范围和键值前缀查询,也可以对查询结果进行 ORDER BY 排序。...八、索引字段上使用is null, is not null,索引可能失效给 role字段(tinyint)添加一个索引和 name字段(varchar)添加索引。...2.7.1 用法通过EXPLAIN,我们可以分析出以下结果:表的读取顺序。数据读取操作的操作类型。哪些索引可以使用。哪些索引被实际使用。表之间的引用。每张表有多少行被优化器查询。...filtered值越高,表示过滤效果越好,因为这意味着通过索引可以过滤掉更多的无关行,从而减少需要进一步处理的数据量,提高查询效率。Extra包含不适合在其他列中显示但十分重要的额外信息。

    17110

    MySQL

    ,即不能出现两个相同的主键值,如名字就不可以作为主键,因为会有重名 一般使用主键和其他表进行关联 1.3 SQL常用数据类型 类型 含义 VARCHAR 可变的长字符串,可以类比于Java中的String...CONCAT函数可以拼接列名,也可以拼接字符串 在使用CONCAT函数的时候可以同时查询其他的列 CONCAT函数的参数之间用英文,分隔 如果拼接的值有NULL,则结果一律为NULL,NULL本身特性决定...配合WHERE语句查询 SELECT id, CONCAT(hero_name,'的胜率是',win_rate) FROM timi_adc WHERE id = 3; 别名 查询结果列名叫...,count) str:要处理的字符串 delim:分隔符 count:计数(如果为负数就表示从后面开始) 例如:str = www.liqur.xyz ​ substring_index...,比如rank,dense_rank,row_number等 聚集函数,如sum,avg,count,max,min等 功能 同时具有分组和排序的功能 不减少原表的行数 注意 原则只能写在select子句中

    76441

    Vc数据库编程基础MySql数据库的表查询功能

    ] expr) 求最小值 SUM([distinct] expr) 求累加和   ①每个组函数接收一个参数   ②默认情况下,组函数忽略列值为null的行,不参与计算   ③有时,会使用关键字distinct...剔除字段值重复的条数 注意:   1)当使用组函数的select语句中没有group by子句时,中间结果集中的所有行自动形成一组,然后计算组函数;   2)组函数不允许嵌套,例如:count(max(...注意:   不能使用WHERE子句对分组后的结果进行过滤   不能在WHERE子句中使用组函数,仅用于过滤行 mysql> select playerno -> from PENALTIES...默认情况下,UNION = UNION DISTINCT   ①进行合并的两个查询,其SELECT列表必须在数量和对应列的数据类型上保持一致;   ②默认会去掉两个查询结果集中的重复行;默认结果集不排序...;   ③最终结果集的列名来自于第一个查询的SELECT列表 UNION ALL不去掉结果集中重复的行 注:联合查询结果使用第一个select语句中的字段名 mysql> select * from

    9.7K30

    Hive函数

    对数据进行压缩虽然会增加额外的CPU开销,但是会节约客观的磁盘空间,并且通过减少载入内存的数据量而提高I/O吞吐量会更加提高网络传输性能。...(2)列块(Column Chunk):在一个行组中每一列保存在一个列块中,行组中的所有列连续的存储在这个行组文件中。一个列块中的值都是相同类型的,不同的列块可能使用不同的算法进行压缩。...通过该值和文件长度可以计算出元数据的偏移量,文件的元数据中包括每一个行组的元数据信息和该文件存储数据的Schema信息。...除了文件中每一个行组的元数据,每一页的开始都会存储该页的元数据,在Parquet中,有三种类型的页:数据页、字典页和索引页。...4.2 单表数据倾斜优化 1)使用参数优化 当任务中存在Group By操作同时聚合函数为count或者sum。可以设置参数来处理数据倾斜的问题。

    46030
    领券