用Mimer Validator检查SQL查询

问:假如我的一个表里含有(a,b,c,d)和(a,b)形成组合键。我能在列值中写这个查询吗?例如:


代码如下:

select a,c,d from mytable
where (a,b) in ((1,2),(1,4),(1,5))

答:可以。
  如果你怀疑有些SQL架构是否有效,就通过Mimer Validator运行一下。在这种情况中,你的查询(你登录校验器中的查询)将得到如下结果:
  * 在SQL-92中, 无效
  * 在SQL-99和SQL_2003中, 有效,并带有如下注释:
F641, "Row and table constructors"
T051, "Row types"
F561, "Full value expressions"
  这时将会用到Core SQL-99以外的如下特征或Core SQL-200x (draft):
F641, "Row and table constructors"
T051, "Row types"
F561, "Full value expressions"
  也就是说如果你特殊的数据库系统不支持那些选择特征,你仍然会收到错误信息。
  也许你想尝试以下查询:
SELECT a,c,d
FROM mytable
WHERE a = 1 AND b = 2
OR a = 1 AND b = 4
OR a = 1 AND b = 5
  这个查询运行十分顺利,因为(a,b)就是一个键,所以用索引查询会比较有效。

(0)

相关推荐

  • 用Mimer Validator检查SQL查询

    问:假如我的一个表里含有(a,b,c,d)和(a,b)形成组合键.我能在列值中写这个查询吗?例如: 复制代码 代码如下: select a,c,d from mytable where (a,b) in ((1,2),(1,4),(1,5)) 答:可以. 如果你怀疑有些SQL架构是否有效,就通过Mimer Validator运行一下.在这种情况中,你的查询(你登录校验器中的查询)将得到如下结果: * 在SQL-92中, 无效 * 在SQL-99和SQL_2003中, 有效,并带有如下注释: F6

  • 分析mysql中一条SQL查询语句是如何执行的

    目录 一.MySQL 逻辑架构概览 二.连接器(Connector) 三.查询缓存(Query Cache) 四.解析器(Parser) 五.优化器(Optimizer) 六.执行器 七.小结 一.MySQL 逻辑架构概览 MySQL 最重要.最与众不同的特性就是它的可插拔存储引擎架构(pluggable storage engine architecture),这种架构的设计将查询处理及其他系统任务和数据的存储/提取分离开来.来看官网的解释: The MySQL pluggable stora

  • MySQL中一条SQL查询语句是如何执行的

    目录 前言 1. 处理连接 1.1 客户端和服务端的通信方式 1.1.1 TCP/IP协议 1.1.2 UNIX域套接字 1.1.3 命名管道和共享内存 1.2 权限验证 1.3 查看MySQL连接 2. 解析与优化 2.1 查询缓存 2.2 解析器 & 预处理器(Parser & Preprocessor) 2.2.1 词法解析 2.2.2 语法分析 2.2.3 预处理器 2.3 查询优化器(Optimizer)与查询执行计划 2.3.1 什么是查询优化器? 2.3.2 优化器究竟做了什

  • SQL查询语句执行的过程

    目录 MySQL基本架构 Server 层 1.连接器 2.查询缓存 3.分析器 4.优化器 5.执行器 SQL语句举例: SELECT * FROM `test` WHERE `id`=1; 当我们输入一条SQL语句,返回一个结果时,那这条语句在 MySQL 内部的执行过程是怎么的呢? MySQL基本架构 下面给出的是 MySQL 的基本架构示意图(图片来自网络),从下图中我们可以比较清楚地看到 SQL 语句在 MySQL 的各个功能模块中的执行过程. 从上图直观的来看,MySQL 可分为 S

  • 讲解Oracle数据库中的数据字典及相关SQL查询用法

    Oracle数据字典概述    数据库是数据的集合,数据库维护和管理这用户的数据,那么这些用户数据表都存在哪里,用户的信息是怎样的,存储这些用户的数据的路径在哪里,这些信息不属于用户的信息,却是数据库维护和管理用户数据的核心,这些信息就是数据库的数据字典来维护的,数据库的数据字典就汇集了这些数据库运行所需要的基础信息叻.每个数据库都提供了各自的数据字典的方案,虽然形式不同,但是目的和作用是一样的,比如在mysql里数据字典是在information_schema 里表现的,sqlserver则是

  • SQL查询语句通配符与ACCESS模糊查询like的解决方法

    ACCESS的通配符和SQL SERVER的通配符比较===================================================ACCESS库的通配符为:*   与任何个数的字符匹配?   与任何单个字母的字符匹配 SQL Server中的通配符为:% 与任何个数的字符匹配_ 与单个字符匹配正文我今天在写个页面的时候,也很郁闷,表中明明有记录,但在ASP里就是搜索不到,理论的sql语句如下:Select * FROM t_food Where t_food.name

  • 使用SQL查询DB2 9中的XML数据

    正在看的db2教程是:使用SQL查询DB2 9中的XML数据. 虽然 DB2 的混合体系结构与之前的版本有很大的不同,但是要利用它的新 XML 功能并不难.如果您已经熟悉 SQL,那么很快就可以将这方面的技能转化到对存储在 DB2 中的本地 XML 数据的处理上.通过本文就可以知道如何实现这一点. DB2 Viper(就是DB2 9)中的 XML 特性包括新的存储管理.新的索引技术以及对查询语言的支持.在本文中,学习如何使用 SQL 或带 XML 扩展的 SQL(SQL/XML)查询 DB2 X

  • SQL查询排名函数实例

    在实际开发中经常会遇到计算某个字段的排名的情况 如下表:totak_sales 现在又如此要求:按sales的逆序排序,要求添加一个sales_rank字段,显示排名顺序 方法: 复制代码 代码如下: SELECT a1.Name, a1.Sales, COUNT(a2.sales) Sales_Rank FROM Total_Sales a1, Total_Sales a2 WHERE a1.Sales <= a2.Sales or (a1.Sales=a2.Sales and a1.Name

  • oracle常用sql查询语句部分集合(图文)

    Oracle查询语句 select * from scott.emp ; 1.--dense_rank()分析函数(查找每个部门工资最高前三名员工信息) select * from (select deptno,ename,sal,dense_rank() over(partition by deptno order by sal desc) a from scott.emp) where a<=3 order by deptno asc,sal desc ; 结果: --rank()分析函数(

  • php mssql扩展SQL查询中文字段名解决方法

    一.问题: 数据库是MS SQLServer2000,要把SQLServer2000里的一张表的数据导入MySQL5,其中SQLServer2000表的字段以简体中文命名(强烈建议不要以中文做为字段名).其实操作就是对SQLServer查询记录,插入到MySQL里.选择的脚本语言是PHP,PHP打开MSSQL和MySQL扩展,对这两个数据库操作都是很容易的问题. 问题就出现在SQLServer中表的字段名是中文,写好的查询语句在SQLServe里测试是通过有记录返回,用PHP的MSSQL扩展查询

随机推荐