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 ...
随机推荐
- github 添加完sshkey之后仍然需要输入密码
1.在家目录下创建.netrc文件,内容如下 machine github.com login username password password window下创建:在用户文件夹如C:\Users ...
- 雷林鹏分享:PHP 错误处理
在 PHP 中,默认的错误处理很简单.一条错误消息会被发送到浏览器,这条消息带有文件名.行号以及描述错误的消息. PHP 错误处理 在创建脚本和 Web 应用程序时,错误处理是一个重要的部分.如果您的 ...
- Myeclipse下载
地址:http://www.jb51.net/softs/593889.html#download
- Oracle数据库单表循环提取输出
现在有如下的表,名称为Test表: ydid sws_dm sws_mc ry_dm ry_mc 1 1 ...
- IO之Print流举例
import java.io.*; public class TestPrintStream1 { public static void main(String[] args) { PrintStre ...
- Ubuntu终端常用快捷键汇总
Ubuntu终端常用的快捷键 - 转自- 博客园 http://www.cnblogs.com/nucdy/p/5251659.html Ubuntu中的许多操作在终端(Terminal)中十分 ...
- Linux htop工具使用详解【转】
原文地址: http://www.cnphp6.com/archives/65078 一.Htop的使用简介 大家可能对top监控软件比较熟悉,今天我为大家介绍另外一个监控软件Htop,姑且称之为to ...
- rbac组件之权限初始化(五)
当用户登陆后,根据用户的角色要为用户生成对应的权限菜单,此时需要将登陆的用户信息获取且获取角色信息,从数据库中获取菜单以及权限信息,并且存入session中. 1.权限流程 第一次请求的页面是登陆页面 ...
- Spring AOP配置简单记录(注解及xml配置方式)
在了解spring aop中的关键字(如:连接点(JoinPoint).切入点(PointCut).切面(Aspact).织入(Weaving).通知(Advice).目标(Target)等)后进行了 ...
- Leetcode 153.寻找旋转数组中的最小值
寻找旋转数组中的最小值 假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ). 请找出其中最小的元素. ...