【MySQL】MySQL表的增删改查(初阶)
https://i-blog.csdnimg.cn/direct/f754c7be68b148bfa6995f197c1a866b.jpeg
欢迎关注个人主页:逸狼
创造不易,可以点点赞吗~
如有错误,欢迎指出~
目录
表内容利用
插入内容
按次序插入
指定某些列插入
一次插入多行记载
插入时间
查询表内容
全列查询
指定列查询
指定表达式查询
用as取别名
编辑
去重查询
排序查询order by
条件查询 (关键)
比力运算符
逻辑运算符
练习
根本查询
and和or
范围查询
like 模糊匹配
分页查询
修改表内容
删除表内容
表内容利用
插入内容
按次序插入
insert into 表名 values(值,值,值.....); 新增(这里列的个数 和 范例 要和表结构 匹配)
SQL中表现字符串可以使用 " 或 '
https://i-blog.csdnimg.cn/direct/ae59b982852a46eca6f9379a2d17c450.png
SQL中范例会实验自动强转
https://i-blog.csdnimg.cn/direct/eb1db16091014f0cadd3f37f0f035b31.png
指定某些列插入
insert into 表名(列名,列名....)values(值,值.....);
https://i-blog.csdnimg.cn/direct/ab78a1eeb3e244bcaffbfc7a456bfbaf.png
一次插入多行记载
insert into 表名 values(值,值....),(值,值....),(值,值....).....; 每个括号代表一行
https://i-blog.csdnimg.cn/direct/751e4d972ca54b26a169a2c67f3617ca.png
插入时间
https://i-blog.csdnimg.cn/direct/77270d5545654321816a2b9118bd6f8f.png
可以插入当前系统时间,使用库函数 now() -->获取当前时间
https://i-blog.csdnimg.cn/direct/422fe3d3f9f3452887a1545e9f5e49b9.png
查询表内容
全列查询
select * from 表名; 全列查询(查询出这个表的全部行和列) , * 是通配符,可以指代全部的列.
注意: select * 是一个很危险的利用,由于如果表非常大(千万/亿级别的数据量),进行select * 会产生大量的硬盘IO 和网络 IO,很大概会把你的硬盘 /网卡 带宽给吃满. 若是在公司的生产环境下进行 select * ,很大概会使其他用户访问数据库的时间 出现访问失败的环境
https://i-blog.csdnimg.cn/direct/30cbf62c299e47cf93141674833fe479.png
指定列查询
select 列名,列名.... from 表名;
为了方便举例,下面创建一个成绩表
https://i-blog.csdnimg.cn/direct/7788921e9db74b80a33007aa6613c046.png
下图指定 name和math列输出
https://i-blog.csdnimg.cn/direct/c5b76a41052040259bce0bc565dbc678.png
指定表达式查询
select 表达式 from 表名; 输出的效果是"零时表",数据库本体(数据库服务器硬盘上的数据)没有任何改变
下图查询的是 语文成绩+10 的效果.
https://i-blog.csdnimg.cn/direct/8060b1b94d7442c696af3d7d34352d52.png
用as取别名
select 表达式 as 别名 from 表名; 这里的as可以省略(但是不建议,由于as省略后,别名就非常容易当成表达式的一部分)
下图输出总成绩 以total 命名
https://i-blog.csdnimg.cn/direct/41938c53bbb84e7c891495b26ece87b9.png
去重查询
select distinct 列名 from 表名; 查询的效果里必须是全部一样才能去重
https://i-blog.csdnimg.cn/direct/0d43a8b30ba64836bec77c8c02fbcf40.png
排序查询order by
select 列名 from 表名 order by 列名; 针对查询效果进行排序,指定按照某个列进行排序,可以指定升序(asc 默认是 升序,可以省略)和 降序(desc) ,select 语句对排序没有任何影响, 在排序之前,次序是不可预期的
https://i-blog.csdnimg.cn/direct/256319b663684bc1a8b328d0c58f9613.png
order by可以指定多个列查询,先按照第一个列查询,这列相同的部分 会按照第二列排序.....
https://i-blog.csdnimg.cn/direct/249ce2b62604400fbf0db7f842cb0669.png
条件查询 (关键)
select 列名 from 表名 where 条件; 查询过程中,指定筛选条件,满足条件的就保留,不满足条件的就跳过
比力运算符
https://i-blog.csdnimg.cn/direct/c019b32a3ea142edbe9214cffae8c801.png
逻辑运算符
https://i-blog.csdnimg.cn/direct/2d4a2a30e5574840ab761c9a65b94bcf.png
注意:
[*]WHERE条件可以使用表达式,但不能使用别名。
[*]AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先实行的部分
练习
根本查询
查询英语不及格的同学及英语成绩 ( < 60 )
https://i-blog.csdnimg.cn/direct/15bced83f01c4583bf90d22ba922c94a.png
查询语文成绩好于英语成绩的同学
https://i-blog.csdnimg.cn/direct/1e27295c146d46e4bc37d807ad95a1a4.png
查询总分在 200 分以下的同学
https://i-blog.csdnimg.cn/direct/8500d31cbd8f4c3d92b7c9184ccb8063.png
使用别名时注意: 条件不能用别名,会报错
https://i-blog.csdnimg.cn/direct/2c36b057ebfd45b6a1bddff6bf254550.png
and和or
查询语文成绩大于80分,且英语成绩大于80分的同学
https://i-blog.csdnimg.cn/direct/e19f5140c67a4d2c8167d6b238c2d00d.png
查询语文成绩大于80分,或英语成绩大于80分的同学
https://i-blog.csdnimg.cn/direct/df2ac726e6d841978562d302068c9212.png
范围查询
where 列名 between ...and ;
查询语文成绩在 分的同学及语文成绩
https://i-blog.csdnimg.cn/direct/e347fecc6b4f40afae0aa09b72f14672.png
用and实现同样的效果
https://i-blog.csdnimg.cn/direct/b220858d9bb746babb6746a2b093e49e.png
where 列名 in(要查询的值,多个值用 , 隔开); 针对离散的数据
查询数学成绩是 58 大概 59 大概 98 大概 99 分的同学及数学成绩
https://i-blog.csdnimg.cn/direct/968b9aa8843244048e06d683a83f6d3f.png
like 模糊匹配
like要搭配通配符一起使用
where 列名 like 通配符;
[*]% :匹配 0 个或 任意 个的任意字符
[*]_ : 匹配 1 个特定的字符
like 是一个比力低效的利用,数据库原来就慢,以是开发时使用like 要控制~
通过下列例子理解like 的用法
https://i-blog.csdnimg.cn/direct/8ea7e1f1da31409b82c5a1f8df02353e.png
https://i-blog.csdnimg.cn/direct/383221ee7fac4d178c5ff2f33d9bf9a5.png
https://i-blog.csdnimg.cn/direct/a6650ab001734c178baa6b005b29921c.png
https://i-blog.csdnimg.cn/direct/25d520207df94884b8ddb26e4286abb1.png
https://i-blog.csdnimg.cn/direct/b248e0d1b19f4d7690e7f6b1ff898697.pnghttps://i-blog.csdnimg.cn/direct/71bfa87d538c41daa2d65d0baf0e1541.png
不要拿= 和null比力,要用<=>或 is null 判断
https://i-blog.csdnimg.cn/direct/64e4cfc51ab94e94958cec93ba37328f.png
分页查询
select 列名 from 表名 limit N; N代表限定 n 条记载
https://i-blog.csdnimg.cn/direct/608e1b5c6a6a43cea685e2d863f04b22.png
limit可以搭配offset使用
select 列名 from 表名 limit N offset M; 表现从下标为M开始记载(从0开始盘算) N 条
https://i-blog.csdnimg.cn/direct/4e15470494ac4086bfd8b8f11875b9d5.png
上面代码可以简写为 select * from exam_result limit 4 , 3 ;
修改表内容
update 表名 set 列名 = 值 , 列名 = 值..... 后面可以加上条件 where /order by/ limit ,如果没有指定任何条件 ,修改的就是全部行. update 同样也是危险利用(真正改的是硬盘上的数据,"持久有效"),
https://i-blog.csdnimg.cn/direct/65b4e73698da45a9b25c88f0dfe76d09.png
匹配的效果 >= 现实修改的效果
https://i-blog.csdnimg.cn/direct/12c47a3fb169483cb0c1fe2f59711b9d.png
删除表内容
delete from 表名 where 条件 / order by / limit; 将筛选出的行删除, 这也是 危险利用!!!
若没有指定条件,删除的就是这个表的数据,但是这个表还在(空表)
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]