文章目录
MySQL(4)
前言:
本文 将学习 MySQL 的 修改 和 删除 操作,完成这两个 操作后 还有 涉及到 数据库 约束 。
在进入 文章前我们 来 复习 一下 上文内容
新增:
insert into 表名 values (列的值, 值, …)
注意: 列的 值的类型 和 个数 与创建表的 类型和个数一至。
另外 还可以 指定列插入(表示插入所有的列) 同样还可以 一个语句 ,插入多条记录,values 后面放 多个括号,每个括号对应一条记录(一行)、
查找:
1.全列查找 :
select * from 表名;
2.指定列查找 :
select 列名, 列名 form 表名;
3.指定表达式 :
select 表达式 from 表名;
(往往是列和列之间的运算,得到的结果是一个临时表,不会影响到咱们 原始的数据库的数据)4.指定别名 :
select 表达式 as 别名 from 表名;
此处 的别名 就相当于 查询结果的临时表的列名。5.去重
select distinct 列名 from 表名;
就会根据 指定列的 值, 来进行 去重。6.排序:
select 列名 from 表名 order by 列名 / 表达式 asc / desc;
7.条件查询:
select 列名 from 表名 where 条件;
数据库服务器会遍历 表中的 记录,依次 带入到条件中,如果条件成立,则这个记录就被保留下来。如果条件不成立 则直接跳过。这里条件 就涉及到 一些 运算符。
<
=
is null
like
<=
<=>
is not null
between…and…
>
and
or
!=
>=
in
not
<>
8.分页查询
select 列名 from 表名 limit N offset M;
从 M 条 记录 开始 ,一共返回N个
1.修改(Update)
语法: update 表名 set 列名 = 值 , 列名 = 值 where 条件;
注: update 与 表名之间没有单词连接
新增 : insert 和表名之间 有 个 into
查询 : select 和表名之间 有个 from
另外 这里表名 与 列 名之间的 set 不能 省略, where 条件 是 针对 那些 行 进行 修改 (符合条件的行就会修改,不符合就不会修改,这里如果 where 省略就是修改所有记录)。
这里 where 和 之前 select 那里 的 where 是一样的。另外 where 之外,像 order by
和 limit
也是 可以使用的。
重要:
这里 update 是 会 修改数据库服务器上面的 原始 数据的!!!
下面 来看 几个 具体 例子
演示 : 将孙悟空 同学的 数学成绩 变更 为 80分。
1.这里我们 先通过 条件查询 查找 到孙悟空同学的 语文成绩(方便下面对比)。
2.通过 update 将 孙悟空同学的 成绩 变更为 80分
可以看到这里 将 原来的 87.5 改为了 80。
注意: where 后面的 条件 是非常 重要的,这个条件 直接 决定了有多少个记录受到了影响。
如果这里的条件 写错了 修改的 范围 就会 更大 或者 更小。(这里是没有直接的撤销操作的,只能反向修改回去)
这里的 修改 操作 也是比较危险操作,这里 修改 如果 出现 误 操作 可能 危害 比 删库还来的 严重 !!!
这里 对于删库 操作 ,一般的 公司 都会有 “预案”, 可以 快速 将 数据 给 还原 回来。
但 对于 误 修改 操作, 就会 出现 有的 修改了 ,有的 没修改, 应该 修改的 没有 修改,不应该 修改 的 修改了 。 这就会导致 数据 还原的 时候就需要,仔细 校对
那些 需要修改,那些 不需要 修改,这时 就会 耗时 耗力 耗人。
上面我们 是 一次 修改 一列 ,下面我们来 一次修改两列
演示: 将 曹孟德同学的数学成绩变更为 60分, 语文成绩变更 为70分
1.查询出曹孟德同学的 数学和 语文成绩 (方便下面对比)
2.通过 update 修改 曹孟德同学的 数学和 语文成绩