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 删除之后,表和表里的数据都没了~~

相关推荐
Zzz 小生1 小时前
Claude Code学习笔记(四)-助你快速搭建首个Python项目
大数据·数据库·elasticsearch
nongcunqq5 小时前
abap 操作 excel
java·数据库·excel
rain bye bye5 小时前
calibre LVS 跑不起来 就将setup 的LVS Option connect下的 connect all nets by name 打开。
服务器·数据库·lvs
冻咸鱼5 小时前
MySQL的配置
mysql·配置
阿里云大数据AI技术7 小时前
云栖实录|MaxCompute全新升级:AI时代的原生数据仓库
大数据·数据库·云原生
不剪发的Tony老师7 小时前
Valentina Studio:一款跨平台的数据库管理工具
数据库·sql
重生之我要当java大帝7 小时前
java微服务-尚医通-编写医院设置接口下
java·开发语言·sql
weixin_307779137 小时前
在 Microsoft Azure 上部署 ClickHouse 数据仓库:托管服务与自行部署的全面指南
开发语言·数据库·数据仓库·云计算·azure
六元七角八分7 小时前
pom.xml
xml·数据库
虚行8 小时前
Mysql 数据同步中间件 对比
数据库·mysql·中间件