【MySQL】MySQL表的增删改查(初阶)

[复制链接]
发表于 2024-8-28 10:04:49 来自手机 | 显示全部楼层 |阅读模式


  

  
欢迎关注个人主页:逸狼

  
  
创造不易,可以点点赞吗~

  
如有错误,欢迎指出~

  
  
  目录
  
   表内容利用
  插入内容
  按次序插入
  指定某些列插入
  一次插入多行记载
  插入时间
  查询表内容
  全列查询
  指定列查询
   指定表达式查询 
  用as取别名
  ​编辑
  去重查询
  排序查询order by
  条件查询 (关键)
  比力运算符
  逻辑运算符
  练习
  根本查询
  and和or
   范围查询
  like 模糊匹配
  分页查询
  修改表内容
  删除表内容
  
  
   表内容利用

插入内容

按次序插入

insert into 表名 values(值,值,值.....);    新增(这里列的个数 和 范例 要和表结构 匹配)
SQL中表现字符串可以使用 " 或 '

SQL中范例会实验自动强转

指定某些列插入

insert into 表名(列名,列名....)values(值,值.....);

一次插入多行记载

insert into  表名 values(值,值....),(值,值....),(值,值....).....;  每个括号代表一行

插入时间


可以插入当前系统时间,使用库函数 now()  -->获取当前时间

查询表内容

全列查询

select  * from 表名;  全列查询(查询出这个表的全部行和列) , * 是通配符,可以指代全部的列.
注意: select * 是一个很危险的利用,由于如果表非常大(千万/亿级别的数据量),进行select * 会产生大量的硬盘IO 和网络 IO,很大概会把你的硬盘 /网卡 带宽给吃满. 若是在公司的生产环境下进行 select * ,很大概会使其他用户访问数据库的时间 出现访问失败的环境


指定列查询

select 列名,列名.... from 表名;
为了方便举例,下面创建一个成绩表

下图指定 name和math列输出

 指定表达式查询 

select 表达式 from 表名;  输出的效果是"零时表",数据库本体(数据库服务器硬盘上的数据)没有任何改变
下图查询的是 语文成绩+10 的效果.

用as取别名

select 表达式 as 别名 from 表名;   这里的as可以省略(但是不建议,由于as省略后,别名就非常容易当成表达式的一部分)
下图输出总成绩 以total 命名


去重查询

select distinct 列名 from 表名;  查询的效果里必须是全部一样才能去重

排序查询order by

select 列名 from 表名 order by 列名;    针对查询效果进行排序,指定按照某个列进行排序,可以指定升序(asc  默认是 升序,可以省略)和 降序(desc)  ,select 语句对排序没有任何影响, 在排序之前,次序是不可预期的
 

 order by可以指定多个列查询,先按照第一个列查询,这列相同的部分 会按照第二列排序.....

条件查询 (关键)

select 列名 from 表名 where 条件;   查询过程中,指定筛选条件,满足条件的就保留,不满足条件的就跳过
比力运算符


逻辑运算符



注意:


  • WHERE条件可以使用表达式,但不能使用别名。
  • AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先实行的部分
练习

根本查询

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

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

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

 使用别名时注意:  条件不能用别名,会报错

and和or

查询语文成绩大于80分,且英语成绩大于80分的同学 

查询语文成绩大于80分,或英语成绩大于80分的同学 

 范围查询

where 列名 between ...and ;
查询语文成绩在 [80, 90] 分的同学及语文成绩

用and实现同样的效果 

where 列名 in(要查询的值,多个值用 , 隔开);   针对离散的数据
查询数学成绩是 58 大概 59 大概 98 大概 99 分的同学及数学成绩

like 模糊匹配

like要搭配通配符一起使用
where 列名 like 通配符;


  • % :匹配 0 个或 任意 个的任意字符
  • _  : 匹配 1 个特定的字符
like 是一个比力低效的利用,数据库原来就慢,以是开发时使用like 要控制~
通过下列例子理解like 的用法






不要拿= 和null比力,要用<=>或 is null 判断

分页查询

select 列名 from 表名 limit N;    N代表限定 n 条记载

limit可以搭配offset使用
select 列名 from 表名 limit N offset M;   表现从下标为M开始记载(从0开始盘算) N 条

上面代码可以简写为 select * from exam_result limit 4 , 3 ;
修改表内容

update 表名 set 列名 = 值 , 列名 = 值.....   后面可以加上条件 where /order by/ limit ,如果没有指定任何条件 ,修改的就是全部行. update 同样也是危险利用(真正改的是硬盘上的数据,"持久有效"),

匹配的效果 >= 现实修改的效果

删除表内容

delete from 表名 where 条件 / order by / limit;  将筛选出的行删除,  这也是 危险利用!!!
若没有指定条件,删除的就是这个表的数据,但是这个表还在(空表)


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5

GMT+8, 2025-7-23 10:54 , Processed in 0.080866 second(s), 30 queries 手机版|qidao123.com技术社区-IT企服评测▪应用市场 ( 浙ICP备20004199 )|网站地图

快速回复 返回顶部 返回列表