MySQL第二课表的增删插改

 后端进行的表的操作增删查改

 现在是建了一个成绩表,注意哈。 

 decimal(2,1).  2是M表示有两个有效数字长度,1是D的长度,即小数点后有一位(10分制)

MySQL第二课表的增删插改_第1张图片

 MySQL第二课表的增删插改_第2张图片

开始

1.增加:

insert into 表名 values(值,值······) 值要和表中的列相匹配

也可以单添加name这种:

insert into student(name) values('aa');

 双引号和单引号都表示字符串,小问题

 他下面的select的语句我会解释

 MySQL第二课表的增删插改_第3张图片

两个图进行的操作,以及其效果

MySQL第二课表的增删插改_第4张图片

这是插入一行的,那么假如我们插入多行呢

insert into 表名 values(值,值······),(值···)

 就是后面再加上这种参数就OK

MySQL第二课表的增删插改_第5张图片

 

 这时候可能有疑问,我一个一个插入和你这种一个插入三个区别在哪里呢,

我们要记住MySQL是客户端服务器结构的程序,每一次交互都会有成本(时间等东西)。

所以一次插入多个会更有效率。

2 查询(你插入的东西):

1.全列查询(危险,十几亿的数据全掏出来,服务器干死机了

 select *from 表名 查询当前数据库中的所有行和列

服务器会解析SQL并且执行,读取硬盘中student(表名),表中的每一条记录,会把所有记录通过网络返回给客户端。

MySQL第二课表的增删插改_第6张图片

2.(1)指定列查询:

手动去指定查询某一列,或者某几列,服务器返回的结果,就只包含想要的数据:

select 列名,列名(可多个)from 表名;

MySQL第二课表的增删插改_第7张图片

 

2.(2)查询可以同时计算

比如select name ,chinese+10 from student;

但是我们要了解一件事❗️❗️❗️

MySQL是一个客户端服务器结构的程序,大家看到的客户端显示的结果只是个临时表,select不管你如何加,都不影响数据库服务器硬盘存储的原始数据,即使我现在是下面的+10,但是这个表还是原来那样(原来的数据)。

MySQL第二课表的增删插改_第8张图片

 ❗️❗️❗️看到了吧,他不会改变他的数据

MySQL第二课表的增删插改_第9张图片

 

2.(3)SQL的四则运算只能针对数字进行,也可利用两个列或或多个列计算

MySQL第二课表的增删插改_第10张图片

 

 2.(4)查询的时候,给列/指定别名

        select 列名 as 别名 from 表名

       下图是把总和别名为total

MySQL第二课表的增删插改_第11张图片

 

 2.(5)查询时去重

 把重复的去掉:select distinct 列名 from 表名 

distinct后面的列名可以写多个,那么要求后面的值都要相同,才叫重复

MySQL第二课表的增删插改_第12张图片

 

2.(6)排序查询:

           针对查询到的结果进行排序

           select 列名 from 表名 order by 列名         

MySQL是一个客户端,服务器的结构的程序,因此这里的排序,也只是针对临时表进行的,对于数据库的原始数据顺序,没有任何影响

 下面的select* 是显示出每一列由english排列的结果

MySQL第二课表的增删插改_第13张图片

 默认排序由小到大:

 由大到小:select 列名 from order by 列名 desc

 (descond):下降

  如果SQL中没有指定order by,此时我们代码不该依赖去临时表的顺序,MySQL不保证不带order by有一定顺序。(总结:不理解就无脑加order by )

MySQL第二课表的增删插改_第14张图片

 

order by可以指定多个列排序,并且用逗号连接。

看下面的图片,英语一样就比数学,谁小谁前面

MySQL第二课表的增删插改_第15张图片

2(7)条件查询(指定筛选条件)​​​​​​​

2(7).1、WHERE表达式     

     条件表达式即是,对记录进行过滤,满足条件进行显示。如果没有指定WHERE子句,则显示所有记录;在WHERE表达式中,可以使用MySQL支持的函数或者运算符。

       where 特别重要:有很多大佬有时候都会忘记写where低级,但是重要。

下面是各种表达式

❣️ 

MySQL第二课表的增删插改_第16张图片

 简单说一下 =和<=>的区别

 两个都是等于,但是<=>可以比较NULL

 比如NULL<==>NULL(条件成立),假如是=就会不成立

注:理解查询语句执行过程

1.服务器需要先遍历表中的每一个记录

2.针对当前记录,带入条件,看他是否成立

3.如果条件成立,则一条记录加入结果集,并返回给客户端,如果不成立,这一条记录跳过

如找英语小于4分的

select 列名 from 表名 where 条件

MySQL第二课表的增删插改_第17张图片

 

当然,条件比较并不是使用列名和常量比较,也可以使用列名和其他列名进行比较

如找语文大于英语的

MySQL第二课表的增删插改_第18张图片

 条件查询,也可以加一些更复杂的表达式,

但是别名使用不了(更精准是不能在条件里面用),这是结论,我们下面这个是前面,而不是用于条件,对比着来看。

MySQL第二课表的增删插改_第19张图片

 

 

select执行顺序:

1.遍历某个指定的行

2.带入条件筛选

3.条件为true,被筛选成功,再计算select 列名表达式;

AND和OR(&&和|| 懂的我不多说)

MySQL第二课表的增删插改_第20张图片

 

你可能感兴趣的:(mysql,数据库)