MySQL-删除数据(DELECT)
数据库备份介绍:
数据库一旦删除数据,它就会永远消失。 因此,在执行DELETE语句之前,应该先备份数据库,以防万一要找回删除过的数据。
MySQL提供了非常有用的工具,用于在服务器上本地备份或转储MySQL数据库。
MySQLDump是由MySQL提供的程序,可用于转储数据库以备数据库或将数据库传输到另一个数据库服务器。
转储文件包含一组用于创建数据库对象的SQL语句。 此外,mysqldump可用于生成CSV,分隔符或XML文件。
数据库备份操作:
要备份MySQL数据库,数据库首先必须存在于数据库服务器中,并且您也可以访问该服务器。 如果没有远程桌面,可以使用SSH或Telnet登录到远程服务器。
数据库备份
mysqldump -u [username] –p[password] [database_name] > [dump_file.sql]
[username]:有效的MySQL用户名。[password]:用户的有效密码。 请注意,-p和密码之间没有空格。[database_name]: 要备份的数据库名称[dump_file.sql]: 要生成的转储文件。
执行上述命令,所有数据库结构和数据将导出到一个[dump_file.sql]转储文件中。
数据库备份实例:
mysqldump -u root –p123456 yiibaidb > D:\worksp\bakup\yiibaidb001.sql
仅备份数据库结构操作:
如果只想备份数据库结构而不需要备份数据,那么只需要添加一个选项-no-data来告诉mysqldump只需要导出数据库结构。 mysqldump -u [username] –p[password] –no-data [database_name] > [dump_file.sql] 实例:
C:\Users\Administrator> mysqldump -u root –p123456 -no-data yiibaidb > D:\worksp\bakup\backup002.sql
仅备份数据库数据:
有一种情况,您希望在分段和开发系统中刷新数据,因此这些系统中的数据与生产系统相同。
在这种情况下,只需要从生产系统导出数据,并将其导入到临时或开发系统中。要实现只备份数据。
可以使用mysqldump的选项-no-create-info:
mysqldump -u [username] –p[password] –no-create-info [database_name] > [dump_file.sql] 实例:
mysqldump –u root –p123456 –no-create-info yiibaidb > D:\worksp\bakup\backup003.sql
多个数据库备份到一个文件夹:
如果要通过[database_name]中的命令来备份多个数据库,只需单独的数据库名称即可。
mysqldump -u [username] –p[password] [dbname1,dbname2,…] > [all_dbs_dump_file.sql] 如果要备份数据库服务器中的所有数据库,请使用选项-all-database。
mysqldump -u [username] –p[password] –all-database > [all_dbs_dump_file.sql]
MySQL-DELECT语句
功能介绍:从表中删除数据。
MySQL-DELECT语法: DELETE FROM table_name
WHERE condition;
第一,指定删除数据的表(table_name)。
第二,使用条件来指定要在WHERE子句中删除的行记录。如果行匹配条件,这些行记录将被删除。如果省略WHERE子句,DELETE语句将删除表中的所有行。
MySQL-DELECT和LIMIT
如果要限制要删除的行数,则配合Order By使用LIMIT子句。
DELETE FROM table_name
ORDER BY c1, c2, ...
LIMIT row_count;
MySQL-ON DELETE CASCADE语句
功能介绍:ON DELETE CASCADE对于外键的引用操作,可以实现在从父表中删除数据时自动删除子表中的数据。
外键:
如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。
学生(学号,姓名,性别,专业号,年龄,班长)关系中,“学号”是主键,“班长”属性表示该学生所在班级的班长的学号,它引用了本关系中“学号”属性,因此“班长”是外键。
假设有两张表:建筑物(buildings)和房间(rooms)。
该数据库模型中,每个建筑物都有一个或多个房间。 然而,每个房间只属于一个建筑物。没有建筑物则房间是不会存在的。

第一步, 创建buildings表,如下创建语句:
USE testdb;
CREATE TABLE buildings (
building_no INT PRIMARY KEY AUTO_INCREMENT,
building_name VARCHAR(255) NOT NULL,
address VARCHAR(255) NOT NULL
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
第二步, 创建rooms表,如下创建语句:
USE testdb;
CREATE TABLE rooms (
room_no INT PRIMARY KEY AUTO_INCREMENT,
room_name VARCHAR(255) NOT NULL,
building_no INT NOT NULL,
FOREIGN KEY (building_no)
REFERENCES buildings (building_no)
ON DELETE CASCADE
)ENGINE=InnoDB DEFAULT CHARSET=utf8; 注意:在外键约束定义的末尾添加ON DELETE CASCADE子句。
第三步, 将一些数据插入到buildings表,如下插入语句:
INSERT INTO buildings(building_name,address)
VALUES('海南大厦','海口市国兴大道1234号'),
('万达水城','海口市大同路1200号');
第四步, 将一些数据插入到rooms表,如下插入语句:
INSERT INTO rooms(room_name,building_no)
VALUES('Amazon',1),
('War Room',1),
('Office of CEO',1),
('Marketing',2),
('Showroom',2);
第五步, 删除编号为2的建筑物:
DELETE FROM buildings WHERE building_no = 2;
查找受MySQL ON DELETE CASCADE操作影响的表的技巧
用示例数据库(testdb,因为上面两个表是建立在testdb数据库之上的)中的CASCADE删除规则查找与建筑表相关联的表。
USE information_schema; SELECT
table_name
FROM
referential_constraints
WHERE
constraint_schema = 'testdb'
AND referenced_table_name = 'buildings'
AND delete_rule = 'CASCADE'
MySQL-DELECT JOIN语句
功能介绍:来从多个表中删除数据。
MySQL允许DELETE语句中使用INNER JOIN子句来从表中删除和另一个表中的匹配的行记录。
从符合指定条件的T1和T2表中删除行记录
实例:从符合指定条件的T1和T2表中删除行记录 DELETE T1, T2
FROM T1
INNER JOIN T2 ON T1.key = T2.key #T1.key = T2.key指定了将被删除的T1和T2表之间的匹配行记录的条件。
WHERE condition #WHERE子句中的条件确定T1和T2表中要被删除的行记录。
MySQL DELETE与INNER JOIN子句
对关联其他表进行删除

使用DELETE ... INNER JOIN语句删除t2表中的ref=1的行记录: DELETE t1 , t2 FROM t1
INNER JOIN
t2 ON t2.ref = t1.id
WHERE
t1.id = 1;
MySQL DELETE与LEFT JOIN子句
DELETE语句中使用LEFT JOIN子句删除表(左表)中没有与其他表(右表)中的匹配的行记录。

第一步:使用DELETE语句与LEFT JOIN子句来清理客户数据。 DELETE customers
FROM customers
LEFT JOIN
orders ON customers.customerNumber = orders.customerNumber
WHERE
orderNumber IS NULL; 第二步:通过查询没有任何订单的客户,使用以下查询来验证删除: SELECT
c.customerNumber,
c.customerName,
orderNumber
FROM
customers c
LEFT JOIN
orders o ON c.customerNumber = o.customerNumber
WHERE
orderNumber IS NULL;
MySQL-删除数据(DELECT)的更多相关文章
- MySQL 删除数据表
MySQL 删除数据表 MySQL中删除数据表是非常容易操作的, 但是你再进行删除表操作时要非常小心,因为执行删除命令后所有数据都会消失. 语法 以下为删除MySQL数据表的通用语法: DROP TA ...
- 关于mysql 删除数据后物理空间未释放(转载)
转自 关于mysql 删除数据后物理空间未释放(转载) - NETDATA - 博客园http://www.cnblogs.com/shawnloong/archive/2013/02/07/2908 ...
- Mysql删除数据后磁盘空间未释放的解决办法【转】
转自 Mysql删除数据后,磁盘空间未释放的解决办法 - 今日头条(TouTiao.com)http://toutiao.com/a6303087712678412546/?tt_from=mobil ...
- MySQL删除数据后磁盘空间的释放情况【转】
OPTIMIZE TABLE 当您的库中删除了大量的数据后,您可能会发现数据文件尺寸并没有减小.这是因为删除操作后在数据文件中留下碎片所致.OPTIMIZE TABLE 是指对表进行优化.如果已经删除 ...
- MySQL删除数据几种情况以及是否释放磁盘空间【转】
MySQL删除数据几种情况以及是否释放磁盘空间: 1.drop table table_name 立刻释放磁盘空间 ,不管是 Innodb和MyISAM ; 2.truncate table tabl ...
- 关于mysql 删除数据后(.MYD,MYI)物理空间未释放
关于mysql 删除数据后物理空间未释放 OPTIMIZE TABLE 当您的库中删除了大量的数据后,您可能会发现数据文件尺寸并没有减小.这是因为删除操作后在数据文件中留下碎片所致.OPTIMIZE ...
- 十、MySQL 删除数据表
MySQL 删除数据表 MySQL中删除数据表是非常容易操作的, 但是你再进行删除表操作时要非常小心,因为执行删除命令后所有数据都会消失. 语法 以下为删除MySQL数据表的通用语法: DROP TA ...
- RDS for MySQL 删除数据后空间没有减少处理方法
公司的程序和数据库部署在阿里云上,数据库使用的是阿里云的RDS,这天,经理在开发群中发了一个信息: 您的RDS实例rm********0oq的磁盘在过去一周平均使用率已超过80.%,建议您对实例规格进 ...
- php MySQL 删除数据表
MySQL 删除数据表 MySQL中删除数据表是非常容易操作的, 但是你再进行删除表操作时要非常小心,因为执行删除命令后所有数据都会消失. 语法 以下为删除MySQL数据表的通用语法: DROP TA ...
- Mysql 删除数据表的三种方式详解
用法: 1.当你不再需要该表时, 用 drop; 2.当你仍要保留该表,但要删除所有记录时, 用 truncate; 3.当你要删除部分记录或者有可能会后悔的话, 用 delete. 删除强度:dro ...
随机推荐
- Windows命名规则
函数名: ·参照 Windows API 的命名规范. ·推荐使用动宾结构.函数名应清晰反映函数的功能.用途. ·函数名最长不得超过30个字符. ·函数名第一个字母必须大写. ·全局函数必须以小写前缀 ...
- flutter 上传图片 image_picker 的使用
Github地址: https://github.com/flutter/plugins/tree/master/packages/image_picker packages地址: https://p ...
- qemu启动vm后,如何host上使用ssh连接?
qemu启动vm后,如何从host ssh连接vm? qemu启动参数 启动命令: ${cmd_qemu_system} --enable-kvm \ -machine type=q35,accel= ...
- li标签和checkbox绑定
参考原文:https://www.cnblogs.com/youxin/p/3885496.html 我们经常需要li或span包含一个checkbox,不管点击checkbox或li都会触发相应的事 ...
- Spring Boot . 3 -- Spring Boot Auto_configuration 是如何实现的?
配置是Spring 框架的重要核心之一,所以Spring 应用能够正常的跑起来肯定是需要配置的,但是使用的Spring Boot 后很多配置没有做,那么AUTO-CONFIGURATION 到底是怎么 ...
- [Python3网络爬虫开发实战] 1.3.3-pyquery的安装
pyquery同样是一个强大的网页解析工具,它提供了和jQuery类似的语法来解析HTML文档,支持CSS选择器,使用非常方便.本节中,我们就来了解一下它的安装方式. 1. 相关链接 GitHub:h ...
- 如果由你来设计 12306.cn,你会怎么设计?
作者:huangkun链接:https://www.zhihu.com/question/20017917/answer/15272038来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业 ...
- Python之基础练习题
Python之基础练习题 1.执行 Python 脚本的两种方式 2.简述位.字节的关系 解:8位是一个字节 3.简述 ascii.unicode.utf-8.gbk 的关系 4.请写出 “李杰” 分 ...
- Poj 2187 凸包模板求解
Poj 2187 凸包模板求解 传送门 由于整个点数是50000,而求凸包后的点也不会很多,因此直接套凸包之后两重循环即可求解 #include <queue> #include < ...
- mysql proxy讀寫分流(二)-加入RW splitting
上一篇中提到 安裝LUA及MySQL Proxy後,接下來就是RW splitting(讀寫分流)的部份了 整體的概念圖跟上一篇MySQL Proxy安裝方式相同,丫忠再補上一個對應port的圖表: ...