首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

SQL岗位30个面试题,SQL面试问题及答案「建议收藏」

· PrimaryKey(主键)——它是表一个或多个字段的集合。它们不接受空和重复。并且表只存在一个主键。...Consistency(一致性)——事务或者生成新的有效数据状态,或者如果发生任何失望,则在事务启动之前将所有数据返回到其状态。...他们从整个记录过滤掉一些行。 一些SQL的字句WHERE和HAVING。 22.什么Aggregate Functions(聚合函数)? 它是一个返回单个的数学函数。...为了操作字符串,我们使用字符串函数。其中一些: · LEN()——返回的长度。 · LOWER()——将字符数据转换为小写。 · UPPER()——将字符数据转换为大写。...假设有一个表,并且在表中有一个字段,可以在不添加值的情况下将记录插入字段,然后该字段将以NULL保存。 空格我们提供的。 0只一个数字。 什么Data Warehouse(数据仓库)?

4.2K31

用 Python 分析微信群聊记录,怎样一种体验?

数据库文件的完整路径如下: # 微信聊天记录数据库完整路径 /data/data/com.tencent.mm/MicroMsg/[当前登录微信的随机字符串]/EnMicroMsg.db 需要注意的,...其中,手机的 IMEI 可以通过 *#06# 获取,如果双卡手机,需要自己做一下判断。...微信所有的文字聊天记录都存放在 mesage 数据表,包含:聊天内容、发送者、消息类型、创建时间等 rcontact 为微信通讯录表,包含:微信 ID、昵称、备注名等 chatroom 群聊信息表...    return self.cursor.fetchall() 第 6 步,通过群聊名称获取群聊 ID 根据群聊昵称,使用 Sql 语句查询 rcontact 表,可以获取群聊的 ID def...;", msg_pre) 第 10 步,获取活跃度排名并可视化 从 Top 数据表,通过微信昵称查询出每一位成员发言的次数,并保存到一个列表 def get_top_partner(self):

1.5K10

用 Python 分析微信群聊记录,怎样一种体验?

数据库文件的完整路径如下: # 微信聊天记录数据库完整路径 /data/data/com.tencent.mm/MicroMsg/[当前登录微信的随机字符串]/EnMicroMsg.db 需要注意的...其中,手机的 IMEI 可以通过 *#06# 获取,如果双卡手机,需要自己做一下判断。 ?...微信的 UIN 在下面配置文件,找到 name 属性为 default_uin 的 value ,即为 UIN # 当前登录微信的配置文件 /data/data/com.tencent.mm/shared_prefs...return self.cursor.fetchall() 第 6 步,通过群聊名称获取群聊 ID 根据群聊昵称,使用 Sql 语句查询 rcontact 表,可以获取群聊的 ID def...;", msg_pre) 第 10 步,获取活跃度排名并可视化 从 Top 数据表,通过微信昵称查询出每一位成员发言的次数,并保存到一个列表 def get_top_partner(self):

2.9K51

SQL 聚合查询

数据以行为粒度存储,最简单的 SQL 语句 select * from test,拿到的整个二维表明细,但仅做到这一点远远不够,出于以下两个目的,需要 SQL 提供聚合函数: 明细数据没有统计意义,...SQL 存在一种很特殊的类型 NULL,如果 COUNT 指定了具体列,则统计时会跳过此列为 NULL 的行,而 COUNT(*) 由于未指定具体列,所以就算包含了 NULL,甚至某一行所有列都为...当然,如果同时计算 MAX、MIN,那么此时 id 也只返回第一条数据的,因为这个查询结果对应了复数行: SELECT MAX(cost), MIN(cost), id FROM test -- id...GROUP BY a,b,c 查询结果第一列可能看到许多重复的 a 行,第二列看到重复 b 行,但在同一个 a 内不会重复,c 在 b 行同理。...比如要筛选出平均分大于 60 学生的成绩总和,如果不使用子查询,无法在普通查询在 WHERE 加聚合函数实现的,比如下面就是一个语法错误的例子: SELECT SUM(score) FROM amazing_table

2.4K31

Python startswith()和endswith() 方法原理解析

startswith()方法 Python startswith() 方法用于检查字符串是否是以指定子字符串开头 如果则返回 True,否则返回 False。...如果参数 beg 和 end 指定则在指定范围内检查。 str.startswith(str, beg=0,end=len(string)); 参数 str –检测的字符串。...strbeg –可选参数用于设置字符串检测的起始位置。 strend –可选参数用于设置字符串检测的结束位置。 返回 如果检测到字符串则返回True,否则返回False。...str: –指定的字符或者子字符串(可以使用元组,会逐一匹配) beg: –设置字符串检测的起始位置(可选,从左数起) end: –设置字符串检测的结束位置(可选,从左数起) 如果存在参数 beg 和...end,则在指定范围内检查,否则在整个字符串检查 返回如果检测到字符串,则返回True,否则返回False。

85010

前缀索引,中看也中用!

松哥这里一共测试了 5 个不同的 prefix_length,大家来看看各自的选择性: 8 和 9 的选择性一样的,因为在 uuid 字符串,第 9 个字符串 -,所有的 uuid 第九个字符串都一样...当 prefix_length 为 10 的时候,选择性就已经 1 了,意思,在这 300W+ 条数据如果我用 user_uuid 这个字段去查询的话,只需要输入前十个字符,就能唯一定位到一条具体的记录了...具体搜索流程这样: 从 user_uuid_index 索引中找到第一个为 39352f81-1 的记录(user_uuid 的前十个字符)。...由于 user_uuid 二级索引,叶子结点保存的主键值,所以此时拿到了主键 id 为 1。 拿着主键 id 去回表,在主键索引上找到 id 为 1 的行的完整记录,返回给 server 层。...(注意看 Extra Using where)。 大家想想,前缀索引,B+Tree 里保存的就不是完整的 user_uuid 字段的,必须要回表才能拿到需要的数据。

41920

30个精选SQL面试问题Q&A集锦

PrimaryKey(主键)——它是表一个或多个字段的集合。它们不接受空和重复。并且表只存在一个主键。...Consistency(一致性)——事务或者生成新的有效数据状态,或者如果发生任何失望,则在事务启动之前将所有数据返回到其状态。...什么CLAUSE(字句)? 它被定义为通过为查询提供条件来设置结果集的限制。他们从整个记录过滤掉一些行。 一些SQL的字句WHERE和HAVING。...什么String Functions(字符串函数)? 为了操作字符串,我们使用字符串函数。其中一些: LEN()——返回的长度。 LOWER()——将字符数据转换为小写。...假设有一个表,并且在表中有一个字段,可以在不添加值的情况下将记录插入字段,然后该字段将以NULL保存。 空格我们提供的。 0只一个数字。 29.

1.4K10

怎么寻找SQL注入点

寻找SQL注入点   如果要对一个网站进行SQL注入攻击,首先就需要找到存在SQL注入漏洞的地方,也就是寻找所谓的注入点。...最常用的寻找SQL注入点的方法,在网站寻找如下形式的页面链接:http://www.xxx.com/xxx.asp?...id=YY   其中“YY”可能数字,也有可能字符串,分别被称为整数类型数据或者字符型数据。在本章我们主要针对整数型数据进行SQL注入讲解。   ...寻找SQL注入点 .“1=1和1=2”法   “加引号”法很直接,也很简单,但是对SQL注入有一定了解的程序员在编写程序时,都会将单引号过滤掉如果再使用单引号测试,就无法检测到注入点了。...如果正常页面链接地址为:http://www.xxx.com/xxx.asp?id=YY,在浏览器中分别输入以下两个链接地址,分别查看它们返回的结果

5.4K20

SQL必知必会总结3-第14到17章

组合查询union 什么组合查询 SQL允许执行多个查询(多条SELECT语句),并将结果作为一个查询结果集返回,这些组合通常称为并union或者复合查询;通常两种情况下需要使用组合查询: 在一个查询从不同的表返回结构数据...如果不存在,则用NULL代替。同时插入数据的顺序必须和表定义的相同。...空字符串用''表示,一个 NULL没有的 UPDATE Customers SET cust_email = NULL WHERE cust_id = '100000000005'; 删除数据...在UPDATE或者DELETE语句使用WHERE语句之前,先用SELECT进行测试,保证它过滤掉正确的记录 创建和操作表 创建表 SQL中一般有两种创建表的方法: 多数DBMS都具有交互式创建和管理数据库表的工具...注意NULL和空字符串的区别: NULL没有,不是空字符串字符串一个有效的,它不是无 NULL使用关键字NULL而不是空字符串指定 指定默认 SQL创建表的时候可以指定通过关键字DEFAULT

1.4K41

mysql注入奇淫绝技(一)

成功插入了一个管理员用户! Part 3: insert更新插入 继续看Part 2的例子,在很多情况下记录用户权限用的单独的一个数据表而不是直接在users数据表增加一个is_admin字段。...在当前数据表中有一个管理员用户,在记录权限的数据表记录主键id=1的用户拥有管理员权限。 ? 因为只有主键id=1的用户拥有管理员权限,所以我们不可能通过insert注入插入一个管理员用户。...mysqli_query($link, $sql)) { echo(mysqli_error($link));}mysqli_close($link); 这道题最大的一个整个update语句被分成了三行...利用思路: 1.让两个非常大的数据表做笛卡尔积产生大量的计算从而产生时间延迟 2.如果服务器端采用长连接的话可以利用Mysql的锁机制即Get_lock() 3.利用复杂的正则表达式去匹配一个超长字符串来产生时间延迟...直接利用Mysql的repeat()函数即可构造超长字符串,同理可以构造一个复杂的正则表达式,而且Mysql的字符串可以直接使用十六进制数据代替,这样就可以避免使用引号从避免被一些WAF拦截。

2.1K50

mysql(基本的SELECT语句)

里面, 空不等于空字符串。...一个字符串的长度 0,而一个的长度空。而且,在 MySQL 里面,空占用空间的。  着重号 我们需要保证表的字段、表名等没有和保留字、数据库系统或常用方法冲突。...如果真的相同,请在SQL语句中使用一对``(着重号)引起来。(键盘上1数字的旁边那玩意) 补充: SELECT 查询还可以对常数进行查询。对的,就是在 SELECT 查询结果增加一列固定的常数列。...SQL 的 SELECT 语法的确提供了这个功能,一般来说我们只从一个查询数据,通常不需要增加一个固定的常数列,但如果我们想整合不同的数据源,用常数列作为这个表的标记,就需要查询常数。...PRI表示该列表主键的一部分; UNI表示该列UNIQUE索引的一部分; MUL表示在列某个给定允许出现多次。 Default:表示该列是否有默认如果有,那么是多少。

1.6K30

DedeCMS V5.7sp2网站漏洞如何修复

织梦dedecms,在整个互联网许多企业网站,个人网站,优化网站都在使用dede作为整个网站的开发架构,dedecms采用php+mysql数据库的架构来承载整个网站的运行与用户的访问,首页以及栏目页生成...关于该织梦漏洞的详情,我们一步一步来剖析: 首先来介绍下parse_str函数的机制与作用是什么,简单通俗来讲就是解析网站传过来的字符串,将字符串转变成一个固有的变量值,这个函数在传入进来,进行转变的时候并不会验证网站当前变量的是否含有...我们对该代码进行人工的安全检测发现,在第4,第6行里调用了一个mchStrCode函数机制,这个函数我来简单跟大家讲解一下原理是什么,该函数将前端网站用户提交过来的数据进行解码,然后通过parse_str...整个网站漏洞的产生以及dedecms漏洞利用很简单,但是在实际漏洞利用过程我们发现这个还是挺难实现的,最关键的还是mchStrCode的函数在整个网站编码,控制前端用户提交过来的的参数。...dedecms网站漏洞修复建议: 关于这次的dedecms parse_str函数SQL注入漏洞,需要修复的就是变量的覆盖修复,在对前端输入过来的进行安全判断,确认变量值是否存在,如果存在将不会覆盖,

2.9K10

写了7年代码,第一次见这么狗血的小Bug!

: false log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 再次执行搜索,打印出的 SQL 记录如图: 把参数拼到 SQL 语句模板...然后我又用助手的 id 去数据库查询,发现确实有名称为 “软件开发人员” 的数据。 气了气了,为啥查不出来啊?!大家也可以猜一猜。...于是我就从数据库把 name 的复制出来,如图: 结果,从数据库复制出来的 name 作为查询条件,能查出结果的!...于是就有了下面这张神奇的截图,两个 “一模一样” 的 SQL 语句,一个有结果,一个没结果: 基本就可以确认了,此 “软件开发人员” 非彼 “软件开发人员”,这两个字符串不一致的!...问下鱼聪明 AI 吧~ 结果一秒破案:原来第一个 “人” 全角字符。所以程序本身没有任何 Bug,这真的泰裤辣! 大概整个案件就是这样。

21630

华夏ERP CMS 代码审计

session,从session取出的user字段,如果不为空,则代表已登陆,不拦截,继续调用下一个doFilter 如果未登陆,会判断url是否含有doc.html,register.html,login.html...,不拦截 ignoredListcss,js等字符串列表,通过正则表达式判断是否存在url如果存在则不拦截 private static boolean verify(List ignoredList...读完了基本的pom和filter,接下来我们结合黑白盒来审计 SQL注入 整个CMS用的mybatis的框架,我们知道mybatis用#{}的方法传入参数自动开启预编译的,但是用${}却不行,然后整个...ICommonQuery类型的 这里的先调用初始化init方法,遍历service下的组件(每个文件夹下的component类)压入configComponentMap 后续调用getCommonQuery...,因为这里通过id判断账户的,所以,我们也可以结合之前的未授权来达到重置任意用户密码 定位路由/user/resetPwd,在UserController 获取一个id参数,给定重置的密码为123456

78620

MySQL索引(六)索引优化补充,分页查询、多表查询、统计查询

首先,创建了一个名为 t1 的表。该表包含了三个示例字段:id、a 和 b。Id 字段自增的整数类型,不允许为空;a 和 b 字段都是整数类型,并设置了默认为 NULL。...然后,定义了一个名为 insert_t1 的存储过程,该存储过程用于向 t 1 表插入 1 万行记录。使用一个循环,从 1 到 10000,逐行插入数据,并将该数据的作为 a 和 b 字段的。...同样,定义了一个名为 insert_t2 的存储过程,用于向 t2 表插入 100 行记录。使用一个循环,从 1 到 100,逐行插入数据,并将该数据的作为 a 和 b 字段的。...如果MySQL 多表查找中使用了NLJ 算法,则在执行计划extra 字段不会显示 Using join buffer。...增加数据库统计表,在更新数据行的事务,增加维护统计表操作。注意需要在一个事务实现。

13710

eKuiper Newsletter 2022-07|v1.6.0:Flow 编排 + 更好用的 SQL,轻松表达业务逻辑

新的版本,图规则 API 将作为 SQL 的补充提供。值得注意的SQL则在新版本仍然完整支持,用户可根据场景选用使用的 API。...图片SQL 更新,编写规则更轻松新版本添加了几个 SQL 语法相关的更新:提供了 LAG 函数用于获取数据流之前的;提供了 BETWEEN 和 LIKE 语法;修改了时间窗口使其对齐到自然时间。...其使用语法为 lag(expr, offset, default value),返回表达式前一个在偏移 offset 处的结果,如果没有找到,则返回默认如果没有指定默认则返回 nil。...如果除 expression 外其余参数均未指定,偏移量默认为 1,默认为 nil。在下例,我们计算了温度的变化率。...其中,BETWEEN 用于数字类型数据的过滤,选出在一个范围内的数据。LIKE 用于字符串的过滤,选出满足某个模式的字符串

40140

【连载】如何掌握openGauss数据库核心技术?秘诀二:拿捏执行器技术(1)

图1 客户端SQL执行流程示意图 如果把数据库看成一个组织,优化器位于组织最上面,这个组织的首脑,发号施令的指令下达机构,执行器位于组织的中间,听从优化器的指令,严格执行优化器给与的计划,将从存储空间中读取的数据进行加工处理最终返回给客户端...NestLoop算子:对于左表的每一行,扫描一次右表。算法简单,但非常耗时(计算笛卡尔乘积),如果可以用索引扫描右表则这可能一个不错的策略。可以将左表的当前行用作右索引扫描的键。...,见节点前的数字),可以看到上面的图里有些树节点中标注的 Const,这代表这个节点一个节点,存储了一个,有些节点中标注的ExpOp,这代表这个节点一个计算节点,根据表达式的不同有不同的计算方法...(6) 节点10代表字符串不等于比较运算,其有两个子节点7,8,从节点7进行取得w_city,同时从节点8取得定字符串“Beijing”, 然后进行不等于字符串比较运算,如果为true,输出tuple...由此可见,通过遍历整个表达式树,根据表达式树不同节点的类型做出相应的动作,有些对于数据的读取,有些进行函数计算。表达式计算树叶子节点都来自数据流的数据或者定,而非叶子节点都是计算函数。

87620
领券