首页
学习
活动
专区
圈层
工具
发布

Mysql的基本函数–与自定义函数

什么是Mysql函数: 类似于java的方法将一组逻辑语句封装在方法体 对外暴露方法名 事先提供好的一些功能可以直接使用 函数可以用在select 语句及其子句上 也可以用在update ,delete...注意:任何字符串与null进行连接结果都是null insert(srt, x ,y,instr):将字符串str从x位开始,y个字符长的子串替换为指定的字符串 lower(str)...– 若要接保留X值小数点左边的D 位,可将 D 设为负 SELECT ROUND(1.5) SELECT ROUND(2.5), ROUND(25E-1); 这个是精度的问题。...,1); – 如果value 1 不为空 返回1 否则返回value 2 SELECT CASE WHEN 2<3 THEN ‘真’ ELSE ‘错’ end; – 判断 自定义函数:...分%s秒’); (6)调用这个函数:select f1(); (7)CAST()函数的参数是一个表达式,它包括用AS关键字分隔的源值和目标数据类型。

3.1K40

NIO 之 FileChannel

一个FileChannel实例只能通过在一个打开的file对象( RandomAccessFile、 FileInputStream或 FileOutputStream)上调用getChannel( )...例如:文件大小为 10 byte,现在把position 设置为100,然后调用 write 方法写入10个字节,现在的文件大小为 110 字节。...truncate() 方法 当需要减少一个文件的 size 时, truncate( )方法会砍掉您所指定的新 size 值之外的所有数据。...在 FileChannel 上调用 map( )方法会创建一个由磁盘文件支持的虚拟内存映射( virtual memory mapping)并在那块虚拟内存空间外部封装一个 MappedByteBuffer...第三个参数 shared 表示您想获取的锁是共享的(参数值为 true)还是独占的(参数值为 false)。要获得一个共享锁,您必须先以只读权限打开文件,而请求独占锁时则需要写权限。

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

    Linux删除文件过程解析

    源码分析 ---- rm命令是GNU coreutils里的一个命令,在对一个文件进行删除时,它实际上调用了Linux的unlink系统调用,unlink系统调用在内核中的定义如下: SYSCALL_DEFINE1...操作inode的所有方法,在这个结构体中定义了一组函数指针,所以在ext4文件系统中,inode->i_op->unlink实际上调用了ext4_unlink这一函数。...vfs_unlink干的另一件事是调用d_delete,这一函数的作用是当目录项的引用计数变为0即没有进程在使用该目录项时,将目录项从dcache中删除。...即dirty list, io list, more io list均为空),我们将wakeup_bdi设置为true。...由此可见,在对大文件进行删除时,为了避免对其他I/O密集型应用的影响,不应该直接用rm对其删除,而应该采用其他方法。

    16.1K22

    初识Sys · 轻松掌握MySQL系统库配置表

    默认值为 OFF,表示不扫描。diagnostics.include_raw:决定是否在 diagnostics() 的输出中包含原始数据。默认值为 OFF,表示不包含原始数据。...如果为 NULL,则使用默认视图。statement_truncate_len:控制 format_statement() 函数返回的语句文本的最大长度。默认为 64 字节。...要恢复默认值,可以将自定义变量设为 NULL:SET @sys.statement_truncate_len = NULL;配置项的优先级在 MySQL 5.8 中,sys 系统库对配置的读取是有优先级的...每当 MySQL 的视图、存储过程或函数调用某些配置项时,它们首先会检查是否有相应的会话级自定义配置变量存在。...例如,statement_truncate_len 配置项控制 SQL 语句在调用 format_statement() 函数时的最大长度,默认情况下,语句长度被限制为 64 个字符。

    43310

    MySQL DDL 数据定义

    is null 表示该字段是否允许为空,不为空为 NOT NULL,不指明默认为 NULL。 key 表示该字段是否是主键、外键、唯一键还是索引。...NOT NULL 表示字段不允许为空,不指明,默认允许为 NULL,也可以显示指明 NULL,表示允许为空。...[RESTRICT | CASCADE] 为了避免在尝试删除不存在的表时出现错误,建议您在使用 DROP TABLE 时加上 IF EXISTS 子句。 # 删除单个数据表。...truncate 释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放,所以truncate 比 delete 使用的系统和事务日志资源更少,效率更高。...请记住,当你不再需要该表时用 DROP;当你仍要保留该表,但要删除所有记录时用 TRUNCATE;当你要删除部分记录时用 DELETE。

    50220

    【重学 MySQL】四十七、表的操作技巧——修改、重命名、删除与清空

    对比 TRUNCATE TABLE 和 DELETE FROM TRUNCATE TABLE和DELETE FROM是MySQL中用于删除表中数据的两种不同方法,它们之间存在显著的差异。...性能 TRUNCATE TABLE:由于TRUNCATE操作不会逐行删除数据,而是直接释放整个表的存储空间,因此通常比DELETE操作更快,特别是在处理大型表时。...如果尝试删除的行被其他表的外键所引用,则DELETE操作会失败并返回错误。 自增主键 TRUNCATE TABLE:执行TRUNCATE操作后,表的自增主键计数器会被重置。...综上所述,TRUNCATE TABLE和DELETE FROM在MySQL中各有优缺点,选择哪种方法取决于具体的需求和场景。在使用这些命令时,请务必谨慎操作,并确保已经备份了重要的数据。...在使用这些引擎时,请查阅相关的文档。 复制和分区:如果你的MySQL服务器配置了复制或使用了分区表,重命名表时可能需要额外的注意。

    65010

    配置表 | 全方位认识 sys 系统库

    如果自server安装sys 系统库以来,该行配置从未被更改过,则该列值为NULL 为了减少对sys_config表直接读取的次数,sys 系统库中的视图、存储过程在需要使用到这些配置选项时,会优先检查这些配置选项对应的用户自定义配置选项变量...64,直接调用format_statement()函数返回是64字节长度,在未调用任何涉及到该配置选项的函数之前,该自定义变量值为NULL,此时函数需要从表中查询默认值 admin@localhost...-------------------------+ 1 row in set (0.00 sec) # 再次调用format_statement()函数值,可以发现返回结果中的长度缩短了,说明使用了session...:如果此选项为ON,则diagnostics()存储过程在调用时会扫描INFORMATION_SCHEMA.TABLES表找到所有的基表与STATISTICS表执行联结查询,扫描每个表的统计信息。...例如:如果存在debug配置选项且不为null值,则diagnostics()和execute_prepared_stmt()存储过程调用时会执行检查并做相应的判断,但默认情况下,此选项在sys_config

    1.6K30

    Mysql基础

    < 大于等于 BETWEEN 在两个值之间 IS NULL 为 NULL 值 应该注意到,NULL 与 0、空字符串都不同。 AND 和 OR 用于连接多个过滤条件。...当线程A要更新数据值时,在读取数据的同时也会读取version值,在提交更新时,若刚才读取到的version值为当前数据库中的version值相等时才更新,否则重试更新操作,直到更新成功。...每当与表相关联的事件发生时,即会执行或触发SQL触发器,例如插入,更新或删除。 QL触发器是一种特殊类型的存储过程。 这是特别的,因为它不像直接像存储过程那样调用。...触发器和存储过程之间的主要区别在于,当对表执行数据修改事件时,会自动调用触发器,而存储过程必须要明确地调用。 3 存储过程优缺点(创建一次,多次使用。调用简单,可提供部程序调用。...速度drop> truncate > delete,delete是dml要等事务生效 、drop和truncate属于ddl理解生效) 13 数据库的乐观锁和悲观锁(乐观锁:假设不会发生并发冲突,只在提交操作时检查是否违反数据完整性

    2.2K00

    SQL语句汇总(二)——数据修改、数据查询

    首先创建一张表如下,创建表的方法在上篇介绍过了,这里就不再赘述。 ?...注:修改多个列的值时用逗号隔开。要想设置某一列的值为空,只需让=NULL 即可。WHERE表示过滤条件。...删除除了DELETE还有一种方法TRUNCATE,写法: TRUNCATE TABLE 表名 二者区别在于: DELETE会记录日志,意味着删除后的数据还可以恢复,但是效率低。...这下模糊查询就很明白了吧,当然还有其他组合,大家可以自己尝试。 处理空值数据: 判断条件不能用列名=NULL,而是要用IS NULL或IS NOT NULL。...标准写法: SELECT * FROM t_student WHERE 性别 IS NULL 排序操作——ORDER BY: 使用ORDER BY时,列名上指定ASC或DESC。

    1.4K10

    MySQL必知必会分页whereupdatelimit字符串截取order by排序ength和char_lengthreplace函数1 键2 数据库事务的ACID3 视图4 删除连接

    一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。 联合主键 顾名思义就是多个主键联合形成一个主键组合(主键原则上是唯一的,别被唯一值所困扰。)...这种属性有时称为串行化,为了防止事务操作间的混淆,必须串行化或序列化请求,使得在同一时间仅有一个请求用于同一数据。...实例 尝试以下实例,以 runoob_tbl 为左表,tcount_tbl 为右表,理解 MySQL LEFT JOIN 的应用: LEFT JOIN ?...实例 尝试以下实例,以 runoob_tbl 为左表,tcount_tbl 为右表,理解MySQL RIGHT JOIN的应用: RIGHT JOIN mysql> SELECT a.runoob_id...| NULL | 22 | +-------------+-----------------+----------------+ 5 rows in set (0.01 sec) 以上实例中使用了

    2.4K140

    Mysql基础

    < 大于等于 BETWEEN 在两个值之间 IS NULL 为 NULL 值 应该注意到,NULL 与 0、空字符串都不同。 AND 和 OR 用于连接多个过滤条件。...当线程A要更新数据值时,在读取数据的同时也会读取version值,在提交更新时,若刚才读取到的version值为当前数据库中的version值相等时才更新,否则重试更新操作,直到更新成功。...每当与表相关联的事件发生时,即会执行或触发SQL触发器,例如插入,更新或删除。 QL触发器是一种特殊类型的存储过程。 这是特别的,因为它不像直接像存储过程那样调用。...触发器和存储过程之间的主要区别在于,当对表执行数据修改事件时,会自动调用触发器,而存储过程必须要明确地调用。 3 存储过程优缺点(创建一次,多次使用。调用简单,可提供部程序调用。...速度drop> truncate > delete,delete是dml要等事务生效 、drop和truncate属于ddl理解生效) 13 数据库的乐观锁和悲观锁(乐观锁:假设不会发生并发冲突,只在提交操作时检查是否违反数据完整性

    1.8K00

    Kotlin 1.2 的新增了哪些特性?

    改进 smart cast 当一个变量从一个安全调用表达式中被赋值并且被检查为 null 时,smart cast 也被应用到安全调用接收器中: ?...这可能会影响应用程序的整体性能;仅在多个类之间共享一些复杂的状态并在类初始化时更新时才使用它。 “手工”的解决方法是将控制流的子表达式的值存储在变量中,而不是直接在调用参数中对它们进行求值。...的平台类型上调用 x.equals(null) 时,如果 x 为 null,则会不正确地返回 true。从 Kotlin 1.2 开始,在平台类型的空值上调用 x.equals(...)...破坏性变更:通过内联的扩展接收器修复平台的 null 转义 在平台类型空值上调用的内联扩展函数并没有检查接收器是否为 null,并因此允许 null 转义到其他代码中。...Kotlin 1.2 在调用点强制执行此检查,如果接收方为空,则抛出异常。 要切换到旧行为,请将 fallback 标志 -Xno-receiver-assertions 传递给编译器。

    3.2K10

    Kotlin 1.2 的新增特性

    这可能会影响应用程序的整体性能;仅在多个类之间共享一些复杂的状态并在类初始化时更新时才使用它。 “手工”的解决方法是将控制流的子表达式的值存储在变量中,而不是直接在调用参数中对它们进行求值。...Java 默认方法调用 在 Kotlin 1.2 之前,接口成员在使用 JVM 1.6 的情况下重写 Java 默认方法会在父调用中产生警告:Super calls to Java default methods...的平台类型上调用 x.equals(null) 时,如果 x 为 null,则会不正确地返回 true。从 Kotlin 1.2 开始,在平台类型的空值上调用 x.equals(...)...破坏性变更:通过内联的扩展接收器修复平台的 null 转义 在平台类型空值上调用的内联扩展函数并没有检查接收器是否为 null,并因此允许 null 转义到其他代码中。...Kotlin 1.2 在调用点强制执行此检查,如果接收方为空,则抛出异常。 要切换到旧行为,请将 fallback 标志 -Xno-receiver-assertions 传递给编译器。

    3.2K70

    Java知识点总结

    4、使用NOT NULL   很多表都包含可为NULL(空值)的列,即使应用程序并不需要保存 NULL 也是如此 ,这是因为可为NULL是列的默认属性。...在这种情况下,判断 null 真正含义的唯一方法是调用方法 getUpdateCount,它将返回一个整数。这个整数为调用语句所影响的行数;如果为 -1 则表示结果是结果集或没有结果。...也就是说,当下列条件为真时表示没有结果(或没有其它结果): ((stmt.getResultSet() == null) && (stmt.getUpdateCount() == -1)) 如果已经调用方法...正如我们所言,HashMap由于使用了2的幂次方,所以在取模运算时不需要做除法,只需要位的与运算就可以了。...但是由于引入的hash冲突加剧问题,HashMap在调用了对象的hashCode方法之后,又做了一些位运算在打散数据。关于这些位计算为什么可以打散数据的问题,本文不再展开了。感兴趣的可以看这里。

    1.2K10

    Oracle面试题

    )6.小表不要建立索引7.对于基数大的列适合建立B树索引,对于基数小的列适合建立位图索引8.列中有很多空值,但经常查询该列上非空记录时应该建立索引9.经常进行连接查询的列应该创建索引10.限制表中索引的数量...(4)尽量用TRUNCATE语句替代DELETE语句。当执行TRUNCATE命令时, 回滚段不会存放任何可被恢复的信息,所有数据不能被恢复。因此很少资源被调用,整个执行时间就会很短。...(5)在使用oracle时,尽量多使用COMMIT命令。该命令可以明显释放运行资源,因此程序的性能得到明显提高。(6)可以通过用索引提高效率。oracle使用了树形的数据结构。...当引用索引的第二个列时,优化器使用了全表扫描而忽略了索引。...(19)避免在索引列上使用 IS NULL和IS NOT NULL避免在索引中使用任何可以为空的列,ORACLE将无法使用该索引 。

    2K00

    Kotlin 1.2 新特性

    比如说,如果你在调用一个返回“T”的泛型方法时,并将它的返回值“T”转换为特定类型如“Foo”,编译器就会推断出这个方法调用中的“T”其实是“Foo”类型。...val button = findViewById(R.id.button) as Button 智能转换 当一个变量为某个安全表达式(如校验非空)所赋值时,智能转换也同样运用于这个安全调用的接收者。...返回不正确true时x为空。从Kotlin 1.2开始,调用x.equals(…)一个平台类型的null值会抛出一个NPE (但是x == …不会)。...内联扩展空修复 在以前的版本中,在平台类型的空值上调用的内联扩展函数没有检查接收器是否为null,并因此允许null转义到其他代码中。...Kotlin 1.2中强制执行此检查,如果接收方为空,则抛出异常。

    2K100
    领券