有时候,会需要删除某些行,或者修改其内容。这是候便需要用到DELETE语句和UPDATE语句。

1.  DELETE 语句的基本格式如下所示:

DELETE  FROM tbl_name
WHERE which rows to delete;

其中,WHERE子句是可选的,它用于指定需要删除掉哪些行。如果没有WHERE 子句,那么将删除表里面的所有行。这意味着,越简单的DELETE语句越危险,例如下面的语句:

DELETE FROM tbl_name

它会彻底删除表里的内容,因此务必要小心使用。

如果不清楚某条DELETE语句到底会删除哪些行,那么最好把这条语句的WHERE子句放到一条SELECT 语句里,看看这条SELECT 语句能查出哪些行。这有助于确认:它们的确是你想要删除的那些行,而且只有这些,不能多也不能少。

如下是一个使用示例:

mysql> select * from student;
+--------+-----+------------+
| name | sex | student_id |
+--------+-----+------------+
| Jim | M | |
| Tom | M | |
| Lily | F | |
| Lucy | F | |
| Travis | M | |
| Steve | M | |
+--------+-----+------------+
rows in set (0.00 sec) mysql> delete from student where sex='F';
Query OK, rows affected (0.01 sec) mysql> select * from student;
+--------+-----+------------+
| name | sex | student_id |
+--------+-----+------------+
| Jim | M | |
| Tom | M | |
| Travis | M | |
| Steve | M | |
+--------+-----+------------+
rows in set (0.00 sec)

2. 如果想要修改已有记录行,则需要使用UPDATE语句,其基本格式如下:

UPDATE  tbl_name

SET  which columns to change

WHERE which rows to update;

这里的WHERE子句的情况与DELETE语句里的相似,它是可选的,因此在没有指定它时,会更新表里的每一行。例如,下面的语句会把每一位学生的 name 更改为 George:

mysql> UPDATE student SET name='George';

很显然,必须谨慎对待这类查询,所以通常情况下都需要加上一个WHERE子句,用它来更具体地指出需要更行那些行。

假设在 student 表里添加了一行,但忘记指定 sex 列的内容,默认地,该列会被设置为 'F':

mysql> INSERT INTO student (name)
-> VALUES('Julian');
Query OK, row affected (0.00 sec) mysql> SELECT * FROM student;
+--------+-----+------------+
| name | sex | student_id |
+--------+-----+------------+
| Jim | M | |
| Tom | M | |
| Travis | M | |
| Steve | M | |
| Hellen | M | |
| Julian | F | |
+--------+-----+------------+
rows in set (0.00 sec)

此时,可以用一条UPDATE语句来进行修复,其中包含一条WHERE子句,用以标识需要更新的那一行:

mysql> UPDATE student
-> SET sex='M'
-> WHERE name='Julian';
Query OK, row affected (0.00 sec)
Rows matched: Changed: Warnings: mysql> SELECT * FROM student;
+--------+-----+------------+
| name | sex | student_id |
+--------+-----+------------+
| Jim | M | |
| Tom | M | |
| Travis | M | |
| Steve | M | |
| Hellen | M | |
| Julian | M | |
+--------+-----+------------+
rows in set (0.00 sec)

MySQL数据库(5)----删除或更新已有行的更多相关文章

  1. Mysql 数据库无法删除 41 错误

    今天删除Mysql 数据库时候,没法删除,直接报错 41: 方法,进入 mysql的安装目录 我的是:D:\tools\Mysql\V76384-01\mysql-advanced-5.6.25-wi ...

  2. MySQL中外键删除、更新

      MySQL支持外键的存储引擎只有InnoDB..在创建外键的时候,可以指定在删除.更新父表时,对子表进行的相应操作,包括RESTRICT.NO ACTION.SET NULL和CASCADE. 其 ...

  3. MYSQL数据库学习----插入、更新、删除

    一:插入数据 1 为表的所有字段插入数据 INSERT INTO 表名 (值1,值2, 值3...); 2 为表的指定字段插入数据 INSERT INTO 表名(字段1,字段2,...) VALUES ...

  4. MySQL数据库起步 linux安装(更新中...)

    卸载mysql! [root@localhost usr]# yum remove mysql mysql-server mysql-libs compat-mysql51 [root@localho ...

  5. mysql数据库操作记录持续更新...

    1.查看删除数据库表的唯一约束 SHOW INDEX FROM tbl_name (唯一约束也是索引) ALTER TABLE tbl_name DROP INDEX index_name   2.u ...

  6. 利用crontab系统每天定时备份MySQL数据库及删除指定crontab定时任务

    利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的. 1.创建保存备份文件的路径/mysqldata mkdir /mysqldata 2.创建/usr/sbin/ba ...

  7. Linux实现定时备份MySQL数据库并删除30天前的备份文件

    1. MySQL5.6以上版本 2. 修改 /etc/my.cnf 文件 # vim /etc/my.cnf [client] host=localhost user=你的数据库用户 password ...

  8. Mysql 数据库之常用命令[更新中...]

    连接命令:mysql -h[主机地址] -u[用户名] -p[用户密码] 创建数据库:create database [库名] 例如:create database jtest; 显示所有数据库: s ...

  9. python多线程备份MYSQL数据库并删除旧的备份。

    #!/usr/bin/python # -*- coding=utf-8 -*- import time import os import datetime import threading from ...

随机推荐

  1. 基础篇:3.1)规范化:3d草绘

    本章目的:3d草绘不同于cad工程图,但也有自己的规范要求.草绘要多多练习. 1.建模草图绘制 草图是大多数 3D 模型的基础.通常,创建模型的第一步是绘制草图,随后可以从草图生成特征.将一个或多个特 ...

  2. Codeforces - tag::graphs 大合集 [占坑]

    520B 给定初始n和目标m,存在两种操作\(-1\)和\(×2\),要求最少操作次数 无脑解法是BFS,不能解决稍大的规模 当n>m时,输出n-m 否则逆向处理,转换为m到n的最小操作次数,存 ...

  3. 初级算法49题 — LeetCode(20181122 - )

    Array: Single Number class Solution { public int singleNumber(int[] nums) { if (nums == null || nums ...

  4. linux 安装python

    wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz #下载安装包 tar zxvf Python-3.6.0.tgz #解压 . ...

  5. Java - 二分法查找(尚学堂第七章数组)

    import java.util.Arrays; public class TestBinarySearch { public static void main(String[] args) { in ...

  6. spring cloud知识点

    eureka注册中心(zookeeper,eureka) 也要集群,可以相互注册,网状结构.后面很多高可用的服务都是用这种方式.Eureka的客户端缓存技术 spring boot actuator ...

  7. cadence help文件库调出指令 :cdnshelp

    cadence help文件库调出指令 :cdnshelp 指令参数记录: Verilog 添加可编译文件后缀名 -vlog_ext +.h,.vh Verilog1995 添加可编译文件后缀名 -v ...

  8. LSTM时间序列预测学习

    一.文件准备工作 下载好的例程序 二.开始运行 1.在程序所在目录中(chapter_15)打开终端   输入下面的指令运行 python train_lstm.py 此时出现了报错提示没有安装mat ...

  9. django notes 一:开篇

    公司 web 框架用的是 django, 以前没用过,打算这两周好好看看. 边学习边整理一下笔记,加深理解. 好像谁说过初学者更适合写入门级的教程,我觉得有一定道理. 高手写的教程有一定深度,不会写入 ...

  10. 1.6 js基础

    必会示例: i的问题 qq头像完整版 this的错误用法 按住鼠标连续加减 封闭空间 甲乙的问题 京东轮播图 苏宁延迟选项卡 无限下拉菜单 淘宝短发送倒计时 1.必须会的         选项卡.按钮 ...