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.全列查询

MySQL表的增删改查(初级)_第1张图片

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

2.指定列查询

MySQL表的增删改查(初级)_第2张图片

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

3.带表达式的查询

MySQL表的增删改查(初级)_第3张图片

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

4.带别名的查询

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

MySQL表的增删改查(初级)_第4张图片

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

5.去重查询

MySQL表的增删改查(初级)_第5张图片

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

MySQL表的增删改查(初级)_第6张图片

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

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

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

MySQL表的增删改查(初级)_第7张图片

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

MySQL表的增删改查(初级)_第8张图片

关于排序的注意事项:

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

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

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

MySQL表的增删改查(初级)_第9张图片
  1. 排序也可以指定多个列进行查询(此时的比较规则较为复杂)

MySQL表的增删改查(初级)_第10张图片

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

7.条件查询

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

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

MySQL表的增删改查(初级)_第11张图片

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

MySQL表的增删改查(初级)_第12张图片

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

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

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

MySQL表的增删改查(初级)_第13张图片

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

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

MySQL表的增删改查(初级)_第14张图片

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

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

MySQL表的增删改查(初级)_第15张图片

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

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

MySQL表的增删改查(初级)_第16张图片

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

MySQL表的增删改查(初级)_第17张图片

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

7.分页查询

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

MySQL表的增删改查(初级)_第18张图片

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

MySQL表的增删改查(初级)_第19张图片

三,修改操作

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

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

1.对单列进行修改

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

MySQL表的增删改查(初级)_第20张图片

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

2.对多列进行修改

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

MySQL表的增删改查(初级)_第21张图片

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

四,删除操作

语法:delete from表名 where 条件;

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

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

MySQL表的增删改查(初级)_第22张图片

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

你可能感兴趣的:(MySQL学习,java,mysql)