【MySQL】知识点 + 1

本文介绍了如何在MySQL中使用日期时间函数如`curdate()`、`curtime()`和`DATEDIFF()`计算日期差异,生成随机数,以及`DATE_ADD()`和`INTERVAL`处理时间间隔。同时讲解了数据库外键约束(FOREIGNKEY)的概念及其在维护数据完整性的应用。
摘要由CSDN通过智能技术生成

 

# (1)查询当前日期、当前时间以及到2022年1月1日还有多少天,然后通过mysql命令执行命令。
select curdate() AS '当前日期',
       curtime() AS '当前时间',
       datediff('2022-01-01', curdate()) AS '距离2022年1月1日还有天数';
       

# (2)利用随机函数输出20-90的任意3个数(含2位小数)       
select round(rand() * (90 - 20) + 20, 2) AS '随机数1',
       round(rand() * (90 - 20) + 20, 2) AS '随机数2',
       round(rand() * (90 - 20) + 20, 2) AS '随机数3';

# (3)计算1000天后的日期和3000分钟后的日期时间。
select date_add(curdate(), interval 1000 day) AS '1000天后的日期',
       date_add(now(), interval 3000 minute) AS '3000分钟后的日期时间';

1、`DATEDIFF(date1, date2)` 是一个MySQL中的SQL函数,用于计算两个日期之间的天数差。这个函数接受两个日期参数,并返回第一个日期减去第二个日期的天数差。

`DATEDIFF()` 函数将返回 `date1` 减去 `date2` 的天数差。如果 `date1` 在 `date2` 之后,结果将为正数;如果 `date1` 在 `date2` 之前,结果将为负数;如果两个日期相同,结果将为0。

以下是一个示例,演示如何在MySQL中使用 `DATEDIFF()` 函数:

SELECT DATEDIFF('2022-01-01', '2021-12-25') AS day_difference;

在这个示例中,`DATEDIFF('2022-01-01', '2021-12-25')` 将计算日期 '2022-01-01' 减去日期 '2021-12-25' 的天数差,并返回结果。运行此查询将返回天数差,例如7。

`DATEDIFF()` 函数在计算日期之间的差异时非常有用,例如计算两个事件之间的天数差等。如果你有任何问题或需要更多示例,请随时告诉我。

2、`curdate()` 是一个MySQL中的SQL函数,用于获取当前日期。当调用 `curdate()` 函数时,它会返回当前日期的值。

3、`curtime()` 是一个MySQL中的SQL函数,用于获取当前时间。当调用 `curtime()` 函数时,它会返回当前时间的值。

4、

`RAND()` 是一个MySQL中的SQL函数,用于生成一个介于0和1之间的随机数。每次调用 `RAND()` 函数都会返回一个新的随机数。

当你在查询中使用 `RAND()` 函数时,它将返回一个随机数,该随机数范围在0到1之间(包括0,不包括1)。

以下是一个示例,演示如何在MySQL中使用 `RAND()` 函数:

SELECT RAND() AS random_number;

在这个示例中,`RAND()` 函数将返回一个随机数,并将其命名为 `random_number`。每次运行此查询,都会得到一个不同的随机数。

`RAND()` 函数在需要生成随机数的情况下非常有用,例如在数据抽样、随机排序等场景中。如果你有任何问题或需要更多示例,请随时告诉我。

5、

`DATE_ADD()` 是一个MySQL中的SQL函数,用于在日期上添加指定的时间间隔。这个函数接受三个参数:日期,时间间隔和时间单位。通过使用 `DATE_ADD()` 函数,你可以在一个日期上添加天数、小时、分钟等时间间隔。

以下是 `DATE_ADD()` 函数的一般语法:

DATE_ADD(date, INTERVAL expr unit)

- `date` 参数是要添加时间间隔的日期。
- `expr` 参数是要添加的时间间隔的数量。
- `unit` 参数是时间间隔的单位,如天(DAY)、月(MONTH)、小时(HOUR)等。

以下是一个示例,演示如何在MySQL中使用 `DATE_ADD()` 函数:

SELECT DATE_ADD('2022-01-01', INTERVAL 1 MONTH) AS new_date;

在这个示例中,`DATE_ADD('2022-01-01', INTERVAL 1 MONTH)` 将在日期 '2022-01-01' 上添加一个月,并返回新的日期。运行此查询将返回新日期,即 '2022-02-01'。

如果你有任何问题或需要更多示例,请随时告诉我。

6、

`INTERVAL` 是MySQL中用于表示时间间隔的关键字。在SQL语句中,`INTERVAL` 可以与日期函数一起使用,用来指定要添加或减去的时间单位。

以下是一个示例,演示如何在MySQL中使用 `INTERVAL`:

SELECT DATE_ADD('2022-01-01', INTERVAL 1 MONTH) AS new_date;

在这个示例中,`INTERVAL 1 MONTH` 表示要在日期 '2022-01-01' 上添加一个月。运行此查询将返回新日期,即 '2022-02-01'。

`INTERVAL` 关键字非常有用,可以用来指定要添加或减去的时间单位,如年、月、日、小时、分钟等。如果你有任何问题或需要更多示例,请随时告诉我。

7、

`NOW()` 是一个MySQL中的SQL函数,用于获取当前日期和时间。当你在查询中使用 `NOW()` 函数时,它会返回当前的日期和时间。

以下是一个示例,演示如何在MySQL中使用 `NOW()` 函数:

SELECT NOW() AS current_datetime;

在这个示例中,`NOW()` 函数将返回当前的日期和时间,并将其命名为 `current_datetime`。运行此查询将返回类似 '2022-01-01 12:34:56' 的结果,其中包含当前的日期和时间。

`NOW()` 函数在许多情况下非常有用,例如记录时间戳或计算时间间隔等。如果你有任何问题或需要更多示例,请随时告诉我。

———————————————————————————————————————————

外键约束

FOREIGN KEY 是数据库中的一个约束,它确保一个表中的数据与另一个表中的数据匹配。FOREIGN KEY 约束用于在两个表之间建立关联,以维护引用完整性。

以下是关于 FOREIGN KEY 的一些关键点:

  1. 引用完整性FOREIGN KEY 确保一个表中的字段(或字段组合)的值必须在另一个表的主键字段(或唯一字段)中存在。这有助于防止插入无效的或不一致的数据。

  2. 两个表之间的关系FOREIGN KEY 约束定义了两个表之间的关系。这种关系通常是一对多(one-to-many)或多对一(many-to-one)关系。

  3. 创建 FOREIGN KEY:当创建表时,你可以使用 FOREIGN KEY 约束来定义两个表之间的关系。例如:

    CREATE TABLE orders (  
        order_id INT PRIMARY KEY,  
        customer_id INT,  
        order_date DATE,  
        FOREIGN KEY (customer_id) REFERENCES customers(customer_id)  
    );

在上面的例子中,orders 表中的 customer_id 字段是一个 FOREIGN KEY,它引用 customers 表中的 customer_id 字段。
4. 删除和更新操作:当使用 FOREIGN KEY 约束时,需要特别注意删除和更新操作。如果尝试删除或更新被其他表引用的记录,数据库可能会阻止这种操作,除非设置了适当的级联规则(如 ON DELETE CASCADE 或 ON UPDATE CASCADE)。
5. 性能:虽然 FOREIGN KEY 约束有助于维护数据的完整性和一致性,但它们也可能对性能产生一些影响,特别是在大数据集上。因此,在设计数据库时,应权衡数据完整性和性能之间的需求。
6. 不是所有数据库系统都支持:虽然大多数关系型数据库系统(如 MySQL、PostgreSQL、SQL Server 等)都支持 FOREIGN KEY 约束,但并不是所有的数据库系统都支持。在使用之前,请确保你的数据库系统支持此功能。

  • 21
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

WuDreamer.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值