MySQL——内置函数

1.日期函数

  •  获得年月日

  •  获得时分秒

  • 获得时间戳 

  • 在日期的基础上加上日期

 

  •  在日期的基础上减去时间

 

  • 计算两个日期之间相差多少天

 

创建一个表,记录生日

 

 

 创建一个表,记录字符串和记录时间

2. 字符串函数

  •  获取record表中列的字符集

  •  如图显示

  •  求学生表中学生姓名占用的字节数

 

3.数学函数

  • 绝对值

 

  •  向上取整

  •  向下调整

  •  保留两位小数(四舍五入)

  •  产生随机数

 

4.其他函数

  • user()查询当前用户

  •  md5(str)对一个字符串进行md5摘要,摘要后得到一个32位字符串

  •  显示我们正在使用的数据库

  •  ifnull(val1, val2) 如果val1为null,返回val2,否则返回val1的值

 

### MySQL 和 PostgreSQL 函数差异与相似性 #### 数据库特性概述 MySQL 和 PostgreSQL 是两种广泛使用的开源关系型数据库管理系统(RDBMS),各自具有独特的特性和功能。虽然两者都支持标准 SQL 查询语句,但在内置函数方面存在一些显著区别。 #### 字符串处理函数 对于字符串操作,两个平台提供了大量类似的函数。例如,在获取子串时,`SUBSTRING()` 或 `SUBSTR()` 可以在二者之间互换使用[^1]。然而,某些特定于供应商的功能有所不同: - **字符长度计算** - MySQL 使用 `CHAR_LENGTH()` - PostgreSQL 则提供 `LENGTH()` 来返回给定字符串的字节数量;如果要获得字符数,则应使用 `CHARACTER_LENGTH()` 或者简写的 `CHAR_LENGTH()` ```sql -- MySQL example SELECT CHAR_LENGTH('hello') AS char_length; -- PostgreSQL equivalent SELECT LENGTH('hello'::bytea) AS byte_length; SELECT CHARACTER_LENGTH('hello') AS character_length; ``` #### 数学运算函数 当涉及到数值计算时,大多数基本算术表达式可以在不修改的情况下跨这两个系统工作。但是,也有一些例外情况需要注意: - **随机数生成** - MySQL 提供了简单的 `RAND()` 函数来生成伪随机浮点值。 - PostgreSQL 中有更灵活的选择——可以调用 `RANDOM()` 获取双精度类型的随机数,也可以利用扩展模块如 pgcrypto 实现更强的安全性需求。 ```sql -- MySQL random number generation SELECT RAND(); -- PostgreSQL alternative approaches SELECT RANDOM(); SELECT gen_random_uuid(); -- requires 'pgcrypto' ``` #### 时间日期管理 时间戳和间隔的操作也是开发人员经常遇到的任务之一。尽管两者的语法结构大致相同,但仍有一些细微差别值得指出: - **当前时间戳检索** - 在 MySQL 中可以通过 `NOW(), CURRENT_TIMESTAMP, LOCALTIME, or LOCALTIMESTAMP` 获得服务器端的时间信息; - 对于 PostgreSQL 用户来说,除了上述选项外还有额外的方式比如 `clock_timestamp()` ,它能反映事务提交时刻的确切时间而不是开始执行查询那一刻。 ```sql -- MySQL timestamp retrieval methods SELECT NOW(), CURRENT_TIMESTAMP, LOCALTIME, LOCALTIMESTAMP; -- Additional method in PostgreSQL SELECT clock_timestamp(); ``` #### JSON 支持 随着 NoSQL 的兴起以及混合架构的应用场景增多,现代 RDBMS 都增强了对半结构化数据的支持能力。在这方面,PostgreSQL 明显领先一步,拥有更为丰富的 API 接口来进行复杂的嵌套文档解析、路径查找等功能。 ```json { "name": "John Doe", "age": 30, "address": { "street": "Main St", "city": "Anytown" } } ``` ```sql -- Extract value using -> operator in PostgreSQL SELECT json_column->>'name' FROM my_table WHERE id=1; -- Equivalent operation in MySQL might require different syntax depending on version SELECT JSON_UNQUOTE(JSON_EXTRACT(json_column, '$.name')) FROM my_table WHERE id=1; ``` 综上所述,尽管 MySQL 和 PostgreSQL 在许多核心领域保持一致,但它们也分别引入了一些独有的增强特性,这使得开发者可以根据具体项目的需求做出最佳选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学c的长弓狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值