当前位置: 首页 > news >正文

MySQL表的增删改查(初级)

MySQL数据库最核心的内容就是增删改查(即CURD),看了这篇初级增删改查的博客之后可以解决以后工作中百分之80-90的内容,这部分的知识并不是很难,但是需要一定的熟练程度;
C:create--新增
U:update--修改
R:retrieve--查询
D:delete--删除

一,新增操作

语法:
全列插入:insert into 表名 values(列,列,列......);
指定列插入:insert into 表名 (指定列) values(列,列,列......);

1.单行数据,全列插入

每次新增都是直接新增一行(一条记录)

2. 多行数据,全列插入

当插入多条记录时,每条记录之间用逗号隔开即可

3. 指定列插入

当需要指定列进行插入时,只需在表名后面写上所要插入的列即可(此时插入的数据要和指定的列相匹配),未指定的列将会自动插入默认值

二,查询操作

语法:
1. 全列查询:select * from 表名;
2. 指定列查询:select 列名 from 表名;
3. 带表达式的查询:select 表达式 from 表名;
4. 带别名的查询:select 列名/表达式 as 别名 from 表名;
5. 去重查询:select distinct 列名 from 表名;
6. 排序: select 列名 from 表名 order by 列名/表达式/别名 asc/desc;
7. 条件查询:select 列名 from 表名 where 条件;

所有的查询操作生成的表均为临时表,所以对硬盘内的数据造成改写

1.全列查询

*相当于通配符,代表所有列,该操作只适合初学阶段,在生产环境中千万不能用全列查询,因为数据量太大会造成网络带宽和硬件资源的占用,导致服务器崩溃

2.指定列查询

当需要指定多个列时,只需要在不同列名之间加上逗号即可

3.带表达式的查询

这里将语文,数学,英语成绩的加和作为一个表达式进行查询

4.带别名的查询

针对3中表达式的查询,觉得chinese+math+english这样一个表达式太过于复杂,其就是为了表达总分的意思,不如将该列名改成total(总分)更易读

这里的as可以不加,但是为了增加可读性最好还是加上as

5.去重查询

未进行去重之前,李四和孙权的英语成绩相同,此时进行去重操作:

此时去重成功;这里的去重是针对一个列进行去重,如果针对多个列进行去重时,必须所对应的列必须都相同,这样才可以称为"重复"

6.排序(默认NULL为最小值)

升序:order by asc(不加asc的情况下默认为升序)

降序:order by desc(需要加上desc)

关于排序的注意事项:

  1. 如果SQL中没有显示的写order by语句,认为查询结果的顺序是不可预期的

  1. 如果排序的列中有NULL,NULL视为最小值

  1. 排序也可以针对表达式/别名进行排序(如果NULL参与计算则结果为NULL)

  1. 排序也可以指定多个列进行查询(此时的比较规则较为复杂)

此时先按语文成绩进行升序的情况下,按照数学成绩进行降序

7.条件查询

1.>, >=, <, <=:大于,大于等于,小于,小于等于

查询语文成绩大于数学成绩的学生

2. =:等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL

当查询结果为NULL时,则不安全:

MySQL中,NULL = NULL的结果为NULL,默认为false

3. <=>:等于,NULL 不安全,例如 NULL = NULL 的结果是 TRUE

4. between a0 and a1:范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 TRUE

查询语文成绩在80~90范围之内的学生:

5.IN (option, ...):如果是 option 中的任意一个,返回 TRUE

查询语文成绩为80.5,85.5,90,95.5这4个数据中其中一些数据的学生:

6.LIKE:模糊匹配,% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字符

%:查询姓孙同学的语文成绩

_:查询姓孙但是姓名只有两个同学的语文成绩

注意:模糊查询,对于数据库来说,时间开销是比较大的

7.分页查询

limit N:N表示此次查询最大结果的数量(即显示在屏幕上的记录的个数)

offset M:M指定了从第几条记录开始查询,搭配limit使用(offset的值从0开始计算,即第一条记录的为0记录)

三,修改操作

语法:update 表名 set列名 = 值 where 条件;

所有的修改操作都是切切实实的对硬盘内的数据进行修改,改完之后会持久生效

1.对单列进行修改

将孙权同学的语文成绩设置成80分

where条件表达式是为了描述哪些记录需要修改,满足该条件则将该记录进行对应修改,否则直接pass

2.对多列进行修改

将孙权同学所有的成绩均设置为0分

对多列进行修改时,只要将所修改的列与列之间用逗号隔开即可

四,删除操作

语法:delete from表名 where 条件;

删除操作也是切切实实的在操作硬盘,删除了就没了

删除名为孙权的同学的所有成绩

删除操作十分危险,在线上生产环境中,谨慎使用!!!

相关文章:

  • 企业网站做推广/百度客服
  • 家用100mb光纤做网站/百度域名收录提交入口
  • 微信网站制作平台/百度知道在线
  • 环保东莞网站建设技术支持/seo的优点有哪些
  • 金华婺城建设局网站/淘宝流量网站
  • 做商城网站需要准备那些/在线营销推广
  • day38【代码随想录】动态规划之斐波那契数、爬楼梯、使用最小花费爬楼梯
  • gma 1.1.2 (2023.01.14) 更新日志(重大更新:开始支持空间绘图)
  • 3-Spring创建
  • 基于机器学习的上海房价预测
  • Pytorch深度学习【十六】
  • byzer笔记本使用
  • c++版本cef详细使用
  • 三、命令行工具cmder的安装
  • 《计算机构造与解释》读书笔记(4)
  • Python:每日一题之求和(前缀和)
  • web应用——CSS
  • 【Kubernetes 企业项目实战】04、基于 K8s 构建 EFK+logstash+kafka 日志平台(上)