
mysql 常用细节 时间 + 触发器+外键+查询结果创建新表
发布日期:2021-05-07 00:40:06
浏览次数:17
分类:技术文章
本文共 2963 字,大约阅读时间需要 9 分钟。
mysql 常用细节
查询当前日期是周几
select data_format(now, "%w") from test;
mysql 百度百科说 没有boolean类型,但是实际是支持的
create table test( is_return boolean),insert test values(false); 0insert test values(true); 1
mysql 时间比较 date datetime可以直接比较
crate tablte test( date1 datetime, date2 date);insert test values("2021-3-6 10:00:00", "2021-2-7");select * from test where date1 > "2021-3-5";-- 时间相等比较select * from test date1 = "2021-3-6"-- 等价于select * from test date1 = "2021-3-6 00:00:00"
时间比较2
-- 如果只想看日期是否相同select * from test where Date(date1) = '2021-3-6'
时间比较3
-- 查询2021年1月的条目select * from test where date(date1) between '2021-01-01' and '2021-01-31'-- 等价于select * from product where Year(date1) = 2021 and Month(date1) = 1
mysql 获得当前时间
-- 获取当前时间 格式:YYYY-MM-dd HH:mm:ssnow();-- 格式转换 格式:YYYY-MM-ddDATE_FORMAT(NOW(),'%Y-%m-%d')-- 查询示例SELECT * FROM 表名 WHERE 日期字段 >= DATE_FORMAT(NOW(),'%Y-%m-%d')
-- 每秒select SECOND(t), count(*) from test group by SECOND(t);-- 每分钟select MINUTE(t), count(*) from test group by MINUTE(t);-- 每小时select HOUR(t), count(*) from test group by HOUR(t);-- 查询每天的数据select DATE_FORMAT(t,'%Y-%m-%d'), count(*) from test group by DATE_FORMAT(t,'%Y-%m-%d');-- 查询每周的数据select WEEK(t), count(*) from test group by WEEK(t);-- 查询每月的数据select MONTH(t), count(*) from test group by MONTH(t);-- 查询每年的数据select YEAR(t), count(*) from test group by YEAR(t);
-- 加一天DATE_ADD(t,INTERVAL 1 DAY);-- 减一天DATE_SUB(t,INTERVAL 1 DAY);
-- 升序select * from 表名 order by 字段 asc(MySQL中默认是升序排列,可不写)-- 降序select * from 表名 order by 字段 desc-- 同时升降 order by 升序字段 asc,降序字段 desc
mysql 触发器
创建触发器
CREATE TRIGGER trigger_nametrigger_timetrigger_event ON tbl_nameFOR EACH ROWtrigger_stmt
trigger_name:标识触发器名称,用户自行指定; trigger_time:标识触发时机,取值为 BEFORE 或 AFTER;
trigger_event:标识触发事件,取值为 INSERT、UPDATE 或 DELETE; tbl_name:标识建立触发器的表名,即在哪张表上建立触发器; trigger_stmt:触发器程序体,可以是一句SQL语句,或者用BEGIN 和 END 包含的多条语句。由此可见,可以建立6种触发器,即:BEFORE INSERT、BEFORE UPDATE、BEFORE DELETE、AFTER INSERT、AFTER UPDATE、AFTER DELETE。
另外有一个限制是不能同时在一个表上建立2个相同类型的触发器,因此在一个表上最多建立6个触发器。
查看触发器
show triggers;SELECT * FROM information_schema.`TRIGGERS`;
删除触发器
drop trigger lease_trigger;
MySQL创建触发器没有权限
解决如下
SET GLOBAL log_bin_trust_function_creators = 1;
外键
删除外键
alter table lease drop foreign key lease_ibfk_1;
添加外键
修改一下外键,下面是个例子:
alter table 表名add constraint 外键名foreign key(字段名) references 主表名(字段名)on delete cascade
alter table lease add constraint lease_ibfk_1 foreign key(crew_name) references crew(crew_name) on delete cascade on update cascade
语法:Foreign Key(column[,...n])references referenced_table_name[(ref_column[,...n])][on delete cascade][on update cascade]注释:column:列名referenced_table_name:外键参考的主键表名称ref_name:外键要参考的表的主键列on delete:删除级联on update:更新级联
查询结果创建新表
CREATE TABLE school SELECT * FROM class
mysql 改表名
ALTER TABLE old RENAME TO new;
mysql 导出(备份)
mysqldump -h主机 -u用户名 -p密码 数据库 表1 表2 ... > 物理位置/文件名.sql导入登录source 位置未登录mysql -uroot -p密码 库名 < 备份文件
MySQL 中止正在执行的SQL语句
show processlist;kill id;
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年03月28日 03时24分24秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【译】N 皇后问题 – 构造法原理与证明 时间复杂度O(1)
2019-03-06
docker基础:容器生命周期管理命令
2019-03-06
Shell脚本学习指南
2019-03-06
日志切分神器--logrotate
2019-03-06
C#3.0新增功能08 Lambda 表达式
2019-03-06
C#开发BIMFACE系列35 服务端API之模型对比6:获取模型构建对比分类树
2019-03-06
C# 规范建议
2019-03-06
.NET 5.0正式发布,新功能特性(翻译)
2019-03-06
重磅推出:AutoProject Studio 自动化项目生成器
2019-03-06
INotifyPropertyChanged 接口
2019-03-06
一些有趣的线段树玩法
2019-03-06
Go语言中的数组与数组切片
2019-03-06
操作系统启动过程
2019-03-06
进程管理
2019-03-06
物理层
2019-03-06
内建函数
2019-03-06
C/C++分文件编写
2019-03-06
80x86指令系统-1-数据传送指令
2019-03-06
C语言+easyX图形库的推箱子实现
2019-03-06
应用程序与dll的静态库通信
2019-03-06