Mysql 常用 SQL
环境信息
- Mysql 5.7
常用 sql
导出数据
导出到文件
SELECT * FROM [TABLE] |
参数说明:
into outfile ‘导出的目录和文件名’
fields terminated by ‘字段间分隔符’
optionally enclosed by ‘字段包围符’
optionally enclosed by
对数值型字段无效lines terminated by ‘行间分隔符’
产生报错可参考 Mysql 常见错误
插入数据
批量插入
insert into tb(c1,c2) values(1,2),(3,4),(5,6); |
备份数据
mysqldump 常见用法
MySQL 备份及主从恢复mysqldump 备份时排除某些表
--ignore-table=database.table
导出时排除指定的表
mysqldump -uroot -p database --ignore-table=database.table1 --ignore-table=database.table2 > backup.sql |
mysqldump 导出表结构
-d
选项,只导出表结构,不导出数据
导出整个数据库表结构(不包含数据)
mysqldump -uroot -p -d DB > db.sql |
导出单个数据表结构(不包含数据)
mysqldump -uroot -p -d DB TABLE > table.sql |
触发器
为了创建一个新的触发器,可以使用 CREATE TRIGGER
语句。 下面说明了 CREATE TRIGGER
语句的语法: [1]
CREATE TRIGGER [trigger_name] [trigger_time] [trigger_event] |
参数说明:
trigger_name
: 触发器名称, 一般遵循命名约定[trigger time]_[table name]_[trigger event]
,例如before_employees_update
trigger_time
: 触发激活时间,必须指定定义触发器的激活时间。如果要在更改之前处理操作,则使用BEFORE
关键字,如果在更改后需要处理操作,则使用AFTER
关键字trigger_event
: 触发事件,可以是INSERT
,UPDATE
或DELETE
。此事件导致触发器被调用。 触发器只能由一个事件调用。要定义由多个事件调用的触发器,必须定义多个触发器,每个事件一个触发器。table_name
: 触发器管理的表。触发器必须与特定表关联。没有表触发器将不存在,所以必须在ON
关键字之后指定表名BEGIN
…END
: 将 SQL 语句放在BEGIN
和END
块之间。这是定义触发器逻辑的位置。
以下示例定义一个触发器,在表中的字段被更改后,改回旧的之,实现禁止更改表的效果
DELIMITER // |
常用配置
mysql 命令提示符下翻页查看输出
pager less -S |
之后的输出可以使用和less命令一样的参数
gegeral_log 开启
查询 general_log
配置,并启用
mysql> show global variables like '%general%'; |
在 general_log
中可用通过搜索 event id
来查看登陆连接对数据库的所有 SQL 。
脚注
- 1.MySQL触发器创建 ↩