精华内容
下载资源
问答
  • Servlet访问第一次500,刷新后404解决办法第一次运行错误:... 什么是数字签名? 数字签名就是为你程序打上一种标记,来作为你自己标识,当别人看...

    Servlet访问第一次500,刷新后404的解决办法

    第一次运行错误:HTTP Status 500 -  --------------------------------------------type Exception reportmessage  ...

    【转】Android APK的数字签名的作用和意义

    1. 什么是数字签名? 数字签名就是为你的程序打上一种标记,来作为你自己的标识,当别人看到签名的时候会知道它是与你相关的     2. 为什么要数字签名? 最简单直接的回答: 系统要求的.  Andr ...

    HDU 5093 Battle ships(二分图最大匹配)

    题意:一个m行n列的图由#.*.o三种符号组成,分别代表冰山.海域.浮冰,问最多可放的炮舰数(要求满足以下条件) 1.炮舰只可放在海域处 2.两个炮舰不能放在同一行或同一列(除非中间隔着一个或多个冰山 ...

    如何用C#检查硬盘是否是固态硬盘SSD

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:如何用C#检查硬盘是否是固态硬盘SSD.

    最牛B的编码套路 【转】

    原文:http://blog.csdn.net/happydeer/article/details/17023229 最近,我大量阅读了Steve Yegge的文章.其中有一篇叫“Practicing ...

    Android Jni引用第三方库

    在jni下新建文件夹(jniLib)用来存放第三方so库: 将so拷贝到jniLib下,新建一个Android.mk文件: LOCAL_PATH:= $(call my-dir) include $( ...

    IntelliJIDEA中如何使用JavaDoc

    IntelliJ IDEA 12.1.6,本身提供了很好的 JavaDoc 生成功能,以及标准 JavaDoc 注释转换功能,其实质是在代码编写过程中,按照标准 JavaDoc 的注释要求,为需要暴露 ...

    JDK源码——单例模式

    JDK源码中单例模式的应用 1.Runtime类 Runtime类封装了Java运行时的环境.每一个java程序实际上都是启动了一个JVM进程,那么每个JVM进程都是对应这一个Runtime实例,此实 ...

    Docker Registry私有仓库搭建

    部署registry 准备一个registry.mydocker.com 的证书 对私有registry取名registry.mydocker.com 目录规划 仓库数据目录:/data/docker ...

    范数(norm) 几种范数的简单介绍

    展开全文
  • 9 种动态 SQL 标签:if、choose、when、otherwise... where: where 元素只会在子元素返回任何内容的情况下才插入 “WHERE” 子句,若子句的开头为 “AND” 或 “OR”,where 元素也会将它们去除 trim: 定制类似 wh

    9 种动态 SQL 标签:if、choose、when、otherwise、trim、where、set、foreach、bind

    1 种注解中使用动态 SQL 标签:script

    • if: 根据条件判断

    • choose、when、otherwise: 组合使用,选择多个条件中的一个

    • where: where 元素只会在子元素返回任何内容的情况下才插入 “WHERE” 子句,若子句的开头为 “AND” 或 “OR”,where 元素也会将它们去除

    • trim: 定制类似 where 标签的功能

    • set: 用于动态包含需要更新的列,忽略其它不更新的列

    • foreach: 对集合进行遍历

    • bind: 允许你在 OGNL 表达式以外创建一个变量,并将其绑定到当前的上下文

    • script: 要在带注解的映射器接口类中使用动态 SQL,可以使用 script 元素

    官方说明文档:

    https://mybatis.org/mybatis-3/zh/dynamic-sql.html

     

    源码实现的入口在这里 XMLScriptBuilder 类中

    protected MixedSqlNode parseDynamicTags(XNode node) {
        List< SqlNode> contents = new ArrayList< >();
        NodeList children = node.getNode().getChildNodes();
        for (int i = 0; i < children.getLength(); i++) {
          XNode child = node.newXNode(children.item(i));
          if (child.getNode().getNodeType() == Node.CDATA_SECTION_NODE || child.getNode().getNodeType() == Node.TEXT_NODE) {
            ...
          } else if (child.getNode().getNodeType() == Node.ELEMENT_NODE) { // issue #628
            //根据 node 名称获取对应 handler
            String nodeName = child.getNode().getNodeName();
            NodeHandler handler = nodeHandlerMap.get(nodeName);
            if (handler == null) {
              throw new BuilderException("Unknown element <" + nodeName + "> in SQL statement.");
            }
            handler.handleNode(child, contents);
            isDynamic = true;
          }
        }
        return new MixedSqlNode(contents);
      }

     

     


    【Java面试题与答案】整理推荐

     

    展开全文
  • 索引一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,相 当于图书上的目录,可以加快查询速度,但会使修改、...1.where子句、group子句中出现的字段,要创建索引 2.order by子句的字段...

    索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,相 当于图书上的目录,可以加快查询速度,但会使修改、插入、删除操作变慢,同时还会 占用较大的磁盘空间 。

    可以通过explain语句对SQL语句进行分析,来决定哪些字段需要创建索引,一般情 况下,可得出以下结论:
    必须创建索引的情况:
    1.where子句、group子句中出现的字段,要创建索引
    2.order by子句的字段,要创建索引
    3.统计聚合函数中的字段,要创建索引。比如count(字段) 、max(字段)

    不需要创建索引的情况:
    1.如果需要取到表中所有记录,则没必要创建索引
    2.对非唯一有大量重复值的字段,没必要创建索引,如性别
    3.经常进行修改、删除等操作的字段,没必要创建索引
    4.记录比较少的表,没必要创建索引

    展开全文
  • java036子查询可以将子查询放在许多 SQL 子句中,包括:WHERE 子句、HAVING 子句 、FROM 子句使用子查询原则1)子查询放在圆括号中。2)将子查询放在比较条件右边。3)在单行子查询中用单行运算符,在多行子查询...

    java036

    子查询

    可以将子查询放在许多的 SQL 子句中,包括:

    WHERE 子句、HAVING 子句 、FROM 子句

    使用子查询的原则

    1)子查询放在圆括号中。

    2)将子查询放在比较条件的右边。

    3)在单行子查询中用单行运算符,在多行子查询中用多行运算符。

    MySQL 中的正则表达式

    1)MySQL 中允许使用正则表达式定义字符串的搜索条件,性能要高于 like。

    2)MySQL 中的正则表达式可以对整数类型或者字符类型检索。

    3)使用 regexp 关键字表示正则匹配。

    4)默认忽略大小写,如果要区分大小写,使用 binary 关键字 。

    正则表达式的模式及其含义

    索引

    索引作用:MySQL 索引的建立对于 MySQL 的高效运行是很重要的,索引可以大大提高 MySQL的检索速度。

    MySQL 中的索引类型

    普通索引 、 唯一索引 、主键索引 、组合索引 、全文索引

    普通索引

    1)是最基本的索引,它没有任何限制。

    2)在创建索引时,可以指定索引长度。length 为可选参数,表示索引的长度,只有字符串类型的字段才能指定索引长度,如果是 BLOB 和 TEXT 类型,必须指定 length。

    创建索引时需要注意:

    如果指定单列索引长度,length 必须小于这个字段所允许的最大字符个数。

    查询索引:SHOW INDEX FROM 索引名;

    直接创建索引

    create index 索引名 on 表名(列名);

    示例:

    需求:为 emp3 表中的 name 创建一个索引,索引名为 emp3_name_index

    create index emp3_name_index on emp3(name);

    修改表添加索引

    alter table表名 add index 索引名 (列命(length));

    示例:

    需求:修改 emp3 表,为 addrees 列添加索引,索引名为 emp3_address_index

    alter table emp3 add index emp3_address_index(address);

    删除索引

    drop index 索引名 on 表名;

    示例:

    需求:删除 mep3 表中索引名为 emp3_address_index 的索引

    drop index emp3_address_index on emp3 ;

    用户管理

    使用语句创建用户:

    create user 用户名 identified by '密码';

    查看用户:

    select user,nost from 用户名;

    分配权限:

    grant 限权 on 数据库.表 to 用户名@登录主机 identified by '密码';

    新用户创建完后是无法登陆的,需要分配权限。

    GRANT 权限 ON 数据库.表 TO 用户名@登录主机 IDENTIFIED BY "密码"

    GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password'

    登陆主机:

    % 匹配所有主机 ``

    localhost localhost 不会被解析成 IP 地址,直接通过 UNIXsocket 连接

    127.0.0.1 会通过 TCP/IP 协议连接,并且只能在本机访问;

    ::1 ::1 就是兼容支持 ipv6 的,表示同 ipv4 的 127.0.0.1

    ALTER: 修改表和索引。

    CREATE: 创建数据库和表。

    DELETE: 删除表中已有的记录。

    DROP: 删除数据库和表。

    INDEX: 创建或删除索引。

    INSERT: 向表中插入新行。

    SELECT: 检索表中的记录。

    UPDATE: 修改现存表记录。FILE: 读或写服务器上的文件。

    PROCESS: 查看服务器中执行的线程信息或杀死线程。

    RELOAD: 重载授权表或清空日志、主机缓存或表缓存。

    SHUTDOWN: 关闭服务器。

    ALL: 所有权限,ALL PRIVILEGES 同义词。

    USAGE: 特殊的 "无权限" 权限

    删除用户:

    drop user 用户名@登录主机;

    MySQL 分页查询

    MySQL使用 limit 关键字实现分页。

    limit 偏离量,展示的条数(分页单位) 偏移量= (当前页-1)*分页单位。

    MySQL 分页查询原则

    1)在 MySQL 数据库中使用 LIMIT 子句进行分页查询。

    2)MySQL 分页中开始位置为 0。

    3)分页子句在查询语句的最后侧。

    语法格式

    SELECT 投影列 FROM 表名 WHERE 条件 ORDER BY LIMIT 开始位置,查询数量。

    示例 :

    需求:查询雇员表中所有数据按 id 排序,实现分页查询,每次返回两条结果。

    select * from employees order by employees_id limit 0,2

    MySQL 中的执行计划

    在 MySQL 中可以通过 explain 关键字模拟优化器执行 SQL 语句,从而知道 MySQL 是如何处理 SQL 语句的。

    MySQL 整个查询执行过程

    1)客户端向 MySQL 服务器发送一条查询请求 。

    2)服务器首先检查查询缓存,如果命中缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段 。

    3)服务器进行 SQL 解析、预处理、再由优化器生成对应的执行计划 。

    4)MySQL 根据执行计划,调用存储引擎的 API 来执行查询 。

    5)将结果返回给客户端,同时缓存查询结果。

    启动执行计划

    EXPLAIN SELECT 投影列 FROM 表名 WHERE 条件 ;

    MySQL 数据库引擎

    ISAM(Indexed Sequential Access Method)

    ISAM 是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到数据库被查询的次数要远大于更新的次数。因此,ISAM 执行读取操作的速度很快,而且不占用大量的内存和存储资源。ISAM 的两个主要不足之处在于,它不支持事务处理,也不能够容错。如果你的硬盘崩溃了,那么数据文件就无法恢复了。

    MyISAM

    MYISAM 强调了快速读取操作,这可能就是为什么 MySQL 受到了 WEB 开发如此青睐的主要原因:在 WEB 开发中你所进行的大量数据操作都是读取操作。

    如果使用该数据库引擎,会生成三个文件:

    .frm:表结构信息

    .MYD:数据文件

    .MYI:表的索引信息

    InnoDB

    1)InnoDB 数据库引擎都是造就 MySQL 灵活性的技术的直接产品,这项技术就是 MYSQL++ API。

    2)在使用 MYSQL 的时候,你所面对的每一个挑战几乎都源于 ISAM 和 MyISAM 数据库引擎不支持事务处理(transaction process)也不支持外键。

    3)MySQL 官方对 InnoDB 是这样解释的:InnoDB 给 MySQL 提供了具有提交、回滚和崩溃恢复能力的事务安全(ACID 兼容)存储引擎。

    innodb 与 myisam 区别

    1. InnoDB 支持事务,MyISAM 不支持,对于 InnoDB 每一条 SQL 语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条 SQL 语言放在 begin 和 commit 之间,组成一个事务;

    2. InnoDB 支持外键,而 MyISAM 不支持。对一个包含外键的 InnoDB 表转为 MYISAM会失败;

    3. InnoDB 是聚集索引,数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,其他索引也都会很大。而 MyISAM 是非聚集索引,数据文件是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独立的。

    4. InnoDB 不保存表的具体行数,执行 select count(*) from table 时需要全表扫描。而 MyISAM 用一个变量保存了整个表的行数,执行上述语句时只需要读出该变量即可,速度很快;

    5. Innodb 不支持全文索引,而 MyISAM 支持全文索引,查询效率上 MyISAM 要高;(在 MySQL5.7 版本中已经支持全文索引)

    如何选择:

    1. 是否要支持事务,如果要请选择 innodb,如果不需要可以考虑 MyISAM

    2. 如果表中绝大多数都只是读查询,可以考虑 MyISAM,如果既有读写也挺频繁,请使用 InnoDB。

    3. 系统奔溃后,MyISAM 恢复起来更困难,能否接受;

    4. MySQL5.5 版本开始 Innodb 已经成为 Mysql 的默认引擎(之前是 MyISAM),说明其优势是有目共睹的,如果你不知道用什么,那就用 InnoDB,至少不会差。

    数据库设计范式

    数据库设计范式:就是数据库的设计规范。

    数据库设计范式作用:数据库的规范设计可以提高开发效率和运行效率。

    数据库设计范式:

    第一范式:对表中的列进行规范的约束。

    最基本的范式,数据库表每一列都是不可分割的基本数据项,需要确保每列保持原子性,第一范式的合理遵循需要根据系统的实际需求来定。

    第三范式:对 多对多表关系进行规范的约束。

    第二范式需要确保数据库表中的每一列都和主键相关,而不能只和主键的某一部分相关。

    第三范式:对 一对多表关系进行规范的约束。

    确保数据表中的每一列数据都和主键直接相关而不能间接相关。

    展开全文
  • 最近在看数据库视频-第六章第四节“分组”内容的时候遇到了一个问题提示:该列没有包含在聚合函数或group by 子句中。看到这个问题后我的思考是:问题一:什么是聚合函数?...where 子句的作用是在...
  • 用户在rule.xml中配置枚举值文件路径和分片索引字符串还是数字,DBLE在启动时会将枚举值文件加载到内存中,形成一个映射表在DBLE运行过程中,用户访问使用这个算法表时,WHERE子句分片索引值会被提取出来...
  •  由SELECT 语句返回行集合包括满足该语句的WHERE 子句所列条件所有行。由该语句返回完整行集合叫做结果集。  应用程序,尤其互动和在线应用程序,把完整结果集作为一个单元处理并不总是有效。  ...
  • MySQL对正则表达式支持用where子句来实现,允许用正则表达式过滤SELECT检索出数据。MySQL仅支持多数正则表达式实现一个很小子集。一、基本类型匹配MySQL中正则表达式匹配不区分大小写。为区分大小写,可...
  • 上一节学习了标签知识,了解了如何为Pod添加标签、更新标签。这一节我们来学习标签选择器。如果单看标签话,似乎作用不太明显,...标签选择器其实就是一个选择标准(或选择条件),类似SQL语言中WHERE子句后面条...
  • SQL 在什么什么之间 BETWEEN 操作符

    千次阅读 2018-11-23 09:40:38
    BETWEEN 操作符在 WHERE 子句中使用,作用是选取介于两个值之间数据范围。 BETWEEN 操作符 操作符 BETWEEN ... AND 会选取介于两个值之间数据范围。这些值可以是数值、文本或者日期。 SQL BETWEEN 语法 ...
  • SQL中聚合函数使用总结

    万次阅读 多人点赞 2017-09-13 23:40:27
    一般在书写sql的是时候很多时候会误将聚合函数放到where后面作为条件查询,事实证明... where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使...
  • 【单选题】以下删除表中数据的正确语句是 ( ):【单选题】delete from employee 语句的作用是 ( )【单选题】以下删除记录正确的 ( )【单选题】建表语句中的 not null ,该代码表示的含义是:【单选题...
  • SQL中聚集函数注意点

    千次阅读 2018-04-06 16:24:30
    其原因很简单:1、having放在group by 的后面2、group by 后面只能放非聚合函数的列3、where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用...
  • SQL Subquery用法

    千次阅读 2009-12-27 22:41:00
    我们可以在一个 SQL 语句中放入另一个 SQL 语句。... Subquery 的作用是什么呢?第一,它可以被用来连接表格。另外,有的时候 subquery 是唯一能够连接两个表格的方式。 Subquery 的语法如下: SELECT "栏位1
  • SQL Server条件索引、include索引

    千次阅读 2018-01-24 10:23:13
    SQL Server中创建索引时,有2个...加上where子句,创建索引就是条件索引,索引中只包含满足条件数据,这样会使得索引体积更小,不管索引扫描,还是查找,需要访问页数也就更少。 举例: create in
  • mybatis Example Criteria like 模糊查询

    万次阅读 2018-09-18 15:34:02
    用Mybatis代码生成工具会产生很多个XXXExample类,这些类的作用是什么? 查阅了很多资料,在这里总结归纳一下 简介 XXXExample类用于构造复杂的筛选条件 它包含一个名为Criteria的内部静态类,它包含将在where子句中...
  • 数据库中索引index对象

    千次阅读 2018-06-16 23:55:45
    索引也是数据库中一个对象,它独立于表结构,主要作用是用来提高查找速度。 索引适用范围 适用索引情况 列中分布范围很广时 经常在WHERE子句或连接条件中出现时 表经常被访问并且数据量巨大,...
  • SQL指令— 嵌套查询

    2007-08-03 18:37:00
    SQL指令— 嵌套查询 我们可以在一个 SQL 语句中放入另一个 SQL 语句。当我们在 WHERE 子句WHERE 子句或 HAVING 子句中插入另一个 SQL 语句时,我们... Subquery 的作用是什么呢?第一,它可以被用来连
  • mysql过滤分组除了能用group by分组...我们已经看到了where子句的作用。但是,在这个例子中where不能完成任务,因为where过滤指定的行而不是分组。事实上,where没有分组概念。那么,不使用where使用什么呢?My...
  • mysql过滤分组除了能用group by分组...我们已经看到了where子句的作用。但是,在这个例子中where不能完成任务,因为where过滤指定的行而不是分组。事实上,where没有分组概念。那么,不使用where使用什么呢?My...
  • SQL Subquery

    2009-05-08 10:04:00
    我们可以在一个 SQL 语句中放入另一个 SQL 语句。... Subquery 的作用是什么呢?第一,它可以被用来连接表格。另外,有的时候 subquery 是唯一能够连接两个表格的方式。 Subquery 的语法如下: SELECT "栏位1
  • subquery 框架

    2009-02-25 11:39:00
    我们可以在一个 SQL 语句中放入另一个 SQL 语句。... Subquery 的作用是什么呢?第一,它可以被用来连接表格。另外,有的时候 subquery 是唯一能够连接两个表格的方式。 Subquery 的语法如下: SELECT "栏位1
  • SQLSubQuery

    千次阅读 2014-07-04 10:57:18
    我们可以在一个 SQL 语句中放入... Subquery 的作用是什么呢?第一,它可以被用来连接表格。另外,有的时候 subquery 是唯一能够连接两个表格的方式。 Subquery 的语法如下: SELECT "栏位1"  FROM "表格
  • Mysql之limit语句

    2019-11-29 20:38:19
    LIMIT限制的意思,所以LIMIT的作用就是限制查询记录的条数。 SELECT *|字段列表 [as 别名] FROM 表名 [WHERE子句] [GROUP BY子句][HAVING子句][ORDER BY子句][LIMIT子句]; 思考:limit子句为什么排在最后? 因为...
  • 由 SELECT 语句返回行集包括满足该语句 WHERE 子句中条件所有行。 这种由语句返回完整行集称为结果集。 (对于)应用程序,特别那些处于交互式并处于联机状态(应用),并不能总是有效地把整个结果集作为一...
  • 14.3 是什么使类成为集合:IEnumerable 392 14.3.1 foreach和数组 392 14.3.2 foreach和IEnumerable 393 14.3.3 foreach循环内不要修改集合 396 14.4 标准查询操作符 397 14.4.1 使用Where()来...
  • 2020-06-28

    2020-06-28 18:25:04
    子查询的作用 是什么呢?第一,它可以被用来连接表格。另外,有的时候子查询是唯一能够连接两个表格的方式。 子查询的语法如下: SELECT “栏位 1” FROM “表格” WHERE “栏位 2” [比较运算素] (SELECT “栏位 1...
  • 本文章参考自《数据库系统概论》 数据查询数据库核心...where子句还可以有条件表达式,先符合条件再选。 group by子句和having短语可以分组,通常在每组中作用聚集函数 最后才order by子句,确定升序还是降序。

空空如也

空空如也

1 2 3 4
收藏数 77
精华内容 30
关键字:

where子句的作用是什么