MySQL数据库操作基础(增删查改)

数据库操作基础(增删查改)

1.插入

1.1往数据表中插入一条数据

复制代码
insert into 表名 values (值,值,值...)

此处列出的这些值的数目和类型 要和表的相对应

1.2指定列插入

复制代码
insert into 表名(列名) values (值);

1.3一次插入多个记录

复制代码
insert into 表名 values (值),(值)...

一次插入多行记录效率 往往高于 一次插入一条记录,分多次插入

2.查询

2.1 全列查询

复制代码
select * from 表名;

这个操作,就是查询出当前数据库中所有的行和列

*****能够代表所有的列

2.2 指定列查询

复制代码
select 列名,列名.. from 表名;

手动指定要查询的某一列或某几列~~ 服务器返回的结果,就只包含想要的数据~~

2.3 查询字段为表达式

查询的同时,可以进行计算

eg:

2.4 查询的时候给列/表达式 指定别名 as

复制代码
select 列名 as 别名 from 表名;

as 关键字,可以省略,但是不建议 ,写上 as 会更容易看,别名会最终显示在查询结果的临时表中.

2.5查询时去重 distinct

复制代码
select distinct 列名 from 表名;

查询的时候,把重复的行,去掉,只保留一份~~

2.6排序查询 order by ----- asc/desc

针对查询到的结果进行排序,

mysql 是一个客服端-服务器结构的程序~~,因此这里的排序,也是针对临时表进行的,对于数据库服务器上的原始数据没有任何顺序上的影响

复制代码
select 列名 from 表名 order by 列名 asc/desc;

asc 是升序,不写也是默认升序

desc 降序

如果SQL中没有指定 order by,则我们不能确定他是有顺序的,虽然有时候我们看着是有顺序的,但是我们不能依赖这个顺序,因为mysql没有说他是有序的


order by 还能指定多个列排序~~(order by 后面可以写多个列~)

2.7条件查询: where

2.7.1 运算符

指定一个筛选条件,把符合条件的结果保留下来,不符合的就剔除掉~~

关系运算符

逻辑运算符

注:

  1. where 条件可以使用表达式,但不能使用别名。
  2. 多个条件时,使用 () 来确保正确的顺序

2.7.2 基本查询

eg:

-- 查询英语不及格的同学及英语成绩 ( < 60 )

-- 查询语文成绩好于英语成绩的同学

注: 条件比较的时候,并不只是使用列名和常量比较(math>60),也可以使用列名和其他列名比较~~

--查询总分在 200 分以下的同学

注: 条件查询,也可以结合一些更复杂的表达式

mysql 的 where 条件中,无法使用 的别名

and 与 or

2.7.3 范围查询

between and ---查询这个区间

eg: 查询语文成绩在 [80,90] 分的同学及语文成绩

注: 可以看出也能用 and 来实现,但是 between and 更方便

in 查询符合要求的

2.7.4** 模糊查询 like**

mysql 进行 like 模糊查询,低效,实际开发,慎重使用

% 匹配任意多个(包括 0 个)字符

_ 匹配严格的一个任意字符

2.7.5 null 查询 -- > is[not]null
复制代码
null 与其他运算的结果还是 null,即最后结果相当于 false

<=> 可以理解为 equals ,比较 两个值是否相同


2.8分页查询 limit , offset 偏移量

LIMIT出现在查询语句的最后,可以使用一个参数或两个参数 来限制取出的数据。其中第一个参数代表偏移量:offset(可选参数),第二个参数代表取出的数据条数:rows。

  • 单参数用法

当指定一个参数时,默认省略了偏移量,即偏移量为0,从第一行数据开始取,一共取rows条。

mysql 复制代码
/* 查询前5条数据 */
SELECT * FROM Student LIMIT 5;
  • 双参数用法

当指定两个参数时,需要注意偏移量的取值是从0开始的,此时可以有两种写法:

mysql 复制代码
/* 查询第1-10条数据 */
SELECT * FROM Student LIMIT 0,10;
/* 查询第11-20条数据 */
SELECT * FROM Student LIMIT 10 OFFSET 10;// 

针对查询出来的结果,进行 截取 ,取出其中的一个部分~~

复制代码
就像是四个一页
复制代码
offset 就是相当于 从哪一个开始算

上述八种查询的写法比较基础,也是经常用到的,熟练掌握即可,多写,多练


3.修改 update

复制代码
update 表名 set 列名 = 值 where 条件...;

进行修好,要明确一些信息

  1. 改哪个表
  2. 改这个表里的哪个列/哪些列,改成什么
  3. 改这个表的哪些行

复制代码
将孙悟空同学的数学成绩变为 80 分

复制代码
将曹孟德同学的数学成绩变更为 60 分, 语文成绩变更为 70 分;

update 表名 set chinese = 70, math = 60 where name = '曹孟德';

复制代码
修改操作,也可以搭配 order by 这样的排序操作

eg : 将总成绩倒数前三的 3 位同学的数学成绩加上 10 分

复制代码
update 表名 set math = math + 10 order by chinese + math + english limit 3;

注意: 修改时也要结合一下数据范围,不要超出,不然会报错

例如加上 30 分会超过范围

​ 由此,可以知道, update可以理解成,先查询,再修改,即先查询一下看修改后的是否符合条件,然后在进行修改


复制代码
如果update 后面没有指定任何条件,则会把所有的行都进行修改

update 表名 set math = 0;

由此可见, update 也是一个很危险的操作,更改甚至比误删的后果还要大,也要谨慎使用.

4.删除 delete

复制代码
delete from 表名 where 条件;

直接删除 符合条件 的行~~

eg: 删除 孙悟空 的成绩

复制代码
delete from 表名 where name = '孙悟空';

如果在 delete 的时候,没有指定条件,就会把整个表的所有数据都删掉!!

delete from 删除之后,表还在,表里的数据,没了~~

drop table 删除之后,表和表里的数据都没了~~

相关推荐
dovens4 分钟前
PostgreSQL 中进行数据导入和导出
大数据·数据库·postgresql
IOT.FIVE.NO.14 分钟前
claude code desktop cowork报错解决和记录Workspace..The isolated Linux environment ...
linux·服务器·数据库
Rick199313 分钟前
mysql 慢查询怎么快速定位
android·数据库·mysql
科技小花7 小时前
全球化深水区,数据治理成为企业出海 “核心竞争力”
大数据·数据库·人工智能·数据治理·数据中台·全球化
X56618 小时前
如何在 Laravel 中正确保存嵌套动态表单数据(主服务与子服务)
jvm·数据库·python
虹科网络安全9 小时前
艾体宝干货|数据复制详解:类型、原理与适用场景
java·开发语言·数据库
2301_7717172110 小时前
解决mysql报错:1406, Data too long for column
android·数据库·mysql
绘梨衣54710 小时前
Docker+FastAPI+MySQL 项目部署报错汇总
mysql·docker·fastapi
小江的记录本10 小时前
【Kafka核心】架构模型:Producer、Broker、Consumer、Consumer Group、Topic、Partition、Replica
java·数据库·分布式·后端·搜索引擎·架构·kafka
dvjr cloi10 小时前
MySQL Workbench菜单汉化为中文
android·数据库·mysql