- 博客(47)
- 收藏
- 关注
原创 CREATE VIEW AS 创建一个图示表
这一部分内容是基于新的图示表的操作,新的图示表和其他普通表格性质一样,可以调用可以作为连接。这里主要顺带着复习了一下SELECT 子句里的子查询。主要运用的语句就是【CREATE VIEW ‘名字’ AS】只用在开头加上这一段执行命令就好了。
2025-03-02 22:11:45
170
原创 CASE END函数
注意,我觉得3000 和2000部分会有重叠,但是在这里写的话可以不考虑,因为先分第一类,结束后剩余的分第二轮。比起Excel的嵌套,我个人觉得CASE 函数更好理解好写。
2025-02-27 21:09:29
210
原创 IF 函数 sql
方法最好先试一试子查询对不对,再代入,这里第一次运行的时候得出的次数结果都是一样的,然后各种查询,我觉得自己的代码写得也是对的。上一张该讲述的关于文本连接的问题,比如说表格中的first_name,和last_name 怎么连在一起,是使用子句CONCAT(名称一,名称二)中间也可以插入字符。IF函数主要运用格式 IF(条件, ‘如果通过条件那么名称为’, ‘如果没有通过条件那么名称是’)案例:案例中使用的方法是相关子查询在SELECT中应用,以及自连接,
2025-02-27 20:48:13
214
原创 IFNULL 以及 COALESCE
二者的原理都是找到NULL部分进行填写,而不同之处在于,IFNULL仅能够塞入自己编入的信息,而COALESCE在第一层搜索NULL然后再去第二个项目寻找有没有内容,如果第二层也是NULL才会来到最后一层的注释。目的是将信息缺少的空格填上注释,而注释包括文件内提供的注释和未提供的现在需要自己编入的。COALESCE(空缺项目名称, 内置注释位置,‘填入注释内容’)IFNULL(空缺项目名称, ‘填入注释内容’)
2025-02-27 20:04:20
145
原创 计算时间和日期
TIME_TO_SEC('时间点') - TIME_TO_SEC('时间点')DATEADD('具体时间' 运算符号 intertval 时间段)DATEDIFF('时间点' 运算符 ‘‘时间点’)后续的话就是这三个运算方式的总和运用。
2025-02-27 19:31:36
89
原创 DATE_FROMAT 格式化时间日期
注意%y %Y 之间代表着一个缩写 一个详写,同样的适用于大小m,其次最后一个的%p是代表am与pm的,时间输出中间记得加一个‘:’这个格式就是格式化日期与时间,让最初的时间看起来更好看一点,但是我觉得还是第一种写法更好看。
2025-02-25 21:26:34
191
原创 SQL 中 日期函数
这一段代码是查询现在年份的订单,但是由于数据里面没有记载本年份的数据,所以说要使用 YEAR(NOW())-6 返回到2019年。当然 TIME(NOW()) DAY(NOW()) HOUE(NOW()) SECOND(NOW()) 同理。然后引入了EXTRACT()的使用方式,比如说:SELECT EXTRACT(YEAR FROM NOW())组合拳案例: YEAR(NOW()) 最后输出结果就是年份 2025。但是如果要返还星期的话 是 DAYNAME(NOW())
2025-02-25 21:05:36
149
原创 FROM语句中的子查询
FROM 子查询需要命名,不然报错: Error Code: 1248. Every derived table must have its own alias 0.000 sec。在FROM子句中我们亦可以插入子查询,相当于将子查询结果当成一个新的TABLE来使用,这样大大地提升了子查询的可使用性。
2025-02-24 14:39:55
228
原创 SELECT 中的子查询
其次还需要注意到在SELECT 中不能使用别名,要重命名的话,需要使用子查询的方式,加一个SELECT 的框架结构。练习:要求整理出表格,显示同一个client id 购买总量与平均购买量之间的差距。AS 的命名问题,在SELECT 的子查询里进行命名,需要查询结束之后再命名。这是该代码查询出的图表,刚开始想要直接加上AVG但是忘了聚合函数的特性了。难点:以client id连接的购买如何核算总量,使用SUM 聚合函数。如何显示一列的平均购买量。
2025-02-23 23:38:27
135
原创 EXISTS 运算符
或者换句话来说,从一组数字中筛选没有出现过的,再从反面理解,就是从一组数字中筛选出出现过的,然后再反向。子查询是用来定位的,而自连接是一一对应的,EXISTS是判断定位出来的一一对应的数字是否具有可行性。网友的一句总结:EXISTS是判断子查询的可行性,IN是判断是否存在于子查询里。那肯定是同一个数据,所以考虑到 子查询,自连接,EXISTS的整体运用。这个例子是从order_items表中筛选没有被买过的商品。
2025-02-23 22:04:53
97
原创 **相关子查询 SQL
第一条数据选择出来,然后进入子查询,查询出office_id一定是和第一条的office_id一致的。下面第二个图输出的AVG值智慧根据ID 的不同进行滚动改变的,这里只是默认的总体的AVG值。我觉得错误的地方应该是在GROUP BY 这里,是这样的,你看使用GROUP BY 查回的是一个表格,或者是一串数据。对比下面两个子查询的输出情况。需要注意,子查询里面的语句用的是WHERE 而不是我想的 GROUP BY HAVING。下面是这段代码子查询执行的结果:和使用WHERE 子句结果是一样的。
2025-02-23 19:46:56
141
原创 ANY 关键字
这一次使用 = ANY 当然也可以是 =SOME 来写,最后的结果是一样的。总而言之 =ANY 以及 =SOME 等同于 IN。我们第一次使用IN 筛选订单超过两次的客户信息。
2025-02-22 20:23:15
108
原创 ALL 关键字
第一种使用新方法,ALL 关键字,ALL的逻辑是从子句里得出的所有数据都要一一比对,然后找出能够通过所有条件之后才能选择出来。两种方式都可以,现目前还没有发现什么特别大的区别,等后续补充吧。实际上和第二种方式是一样的。第二种从子查询里直接找取最大的。一个案例的两种解决方法。
2025-02-22 19:29:18
131
原创 子查询 vs 连接
讲述同样的目的使用不同的方法,第一种方法就是子查询,先查询出筛选条件,再进行再次筛选,第二种是使用join子句,连续join两个表格,等信息全部集中在一起之后,在进行定位。其实在这里对比来看,JOIN 语句可能或许会比子查询更简单,但是我们会考虑一个是写,另一个是读,所以从读的角度来说,子查询会更具有逻辑性,但JOIN 更加好读。老规矩,一切子查询先写第一个筛选条件,这里的第一个条件就是查找出order_id 买过 product_id =3 的用户。下面的案例都是查询买过生菜的顾客。
2025-02-22 14:14:15
158
原创 IN 运算符 DISTINCT 去除重复值
在上一节中讲述了子运算是可以返回单个值的,即是上一节的平均工资水平 所以可以用= 来连接WHERE 和子运算。需要补充的是子运算不仅可以返回单个数值,也可以返回表格或者数据集合。只不过就需要用到IN 来连接两个部分。加上了DISTINCT 之后,值是缺少的,剔除了相同的值。在这里返回的值是全部的,没有缺少,是重复的。我们先讲述DISTINCT 的作用。然后讲述IN 运算符。
2025-02-22 13:37:21
130
原创 Subqueries 子查询
基本逻辑是,先select总体需要表现的东西,然后开始做WHERE 定位,我们的定位只要是有条件的,那么就会涉及到子查询。比如,这个案例就是,查询基本工资高于平均水平的员工,salary是显而易见的,所以我们需要再子查询里面找出平均工资到底是多少,然后在进行比较定位。需要注意的是,子查询语句你可以先运行一下,保证是能够和前面的值进行比较的。子查询,从第六章开始讲述更加复杂的程序,而子查询是重中之重。
2025-02-22 13:21:08
103
原创 ROLLUP子句
WITH ROLLUP 的作用在于 SUM() GROUP UP 之后,进行加总的作用,相当于Excel里面将一列进行加总核算。完毕 好累,明天继续。
2025-02-22 00:09:43
96
原创 HAVING 子句
其次,在这个代码运行的时候有个很奇怪的地方,就是SELECT 后面添加一个customer 会报错,或者添加state也会报错,但是把state移到最后一个顺序的时候又能够显示出来,这时为什么呢?这里学到一个方法,为了检验查找出大长段里面的错误,我会把它分解成一个一个小实验进行检查,比如说,这里先执行SUM子句写法对不对,然后在看看这个JOIN 子句对不对,然后一一排除掉错误。HAVING 多个条件限制的具体使用方法是以AND 连接的,我需要再多注意一下,并列信息连接的方式方法。
2025-02-21 23:51:54
195
原创 group by 子句
最开始我们讲述方程式,有SUM MAX MIN 等,延续到SUM 的多种运用,但是这个是总列的加总,所以我们加上了条件,针对于‘同一名字’‘同一地点’‘同一编号’的加总。所以引入了group by子句,这里是利用date和payment_method作为条件。需要注意的是,多个条件之间用逗号连接,而不是AND 连接,会报错,报错。
2025-02-21 17:26:29
140
原创 Aggregate Functions 聚合函数
失落感满满,因为不会做,首先需要注意SUM后面不能加空格,WHERE 定位时间段,用BETWEEN AND。这里的例子是要输出如此模式的表格。
2025-02-21 15:41:32
110
原创 删除行 sql
随后查询得知,是因为主键引起的原因,现目前简单的解决方法就是使用【SET FOREIGN_KEY_CHECKS=0】,但是这样存在问题,数据库的外码约束设置来就是用来保证数据完整的,如果关掉的话,会存在风险。
2025-02-21 14:21:54
131
原创 SQL 在Update 中用子查询
先写出查询位置并且执行,主要是看自己位置找错没有。这里都不需要写前缀,现在我还没有搞懂什么情况之下需要写明前缀。可以观察到这种语句里都没有加入复杂的前缀,可能就是默认前缀为order?也就是说,SELECT 语句后面跟着的是具体的列,而不是一整个表格。然后开始书写更新语句,即是 【SELECT】【SET】【WHERE】子查询最重要的是,先写出位置,然后套用进update语句中。这两个代码都是正对子查询的练习。上面是课程教学练习,以及自己出的题目。
2025-02-20 22:50:26
278
原创 更新多行 Update Multiple Row
【WHERE】 这里需要注意,如果是以主键位作为依据查找的话,需要取消安全环境,安全环境的取消在【偏好】中寻找。不用先选中再加积分,直接加,同时也不需要使用select子句!-----单行更新一致的。【IN】 子句后面跟() 多个元素并列。更新多行是在单行更新的基础上进行的。
2025-02-20 21:38:14
226
原创 创建表复制 Creacting a Copy of Table
我第一次做的时候先创建了一个新表,然后筛选条件,你在筛选条件的时候使用的是其他数据,那如果其他数据不靠谱的话,就会出现混乱。随后是想要合并表格。但是有好多细节搞不清楚,比如说WHERE子句怎么加进去,哪里需要使用符号;题目要求:母表order,里面包括着order的时间状态顾客下单时间等,要和子表的订单单价相连接。--说道混乱,你真的是,你不能先想清楚在动笔?非要写一步想一步,乱七八糟的东西都往里面放。案例,真的是,搞了半天都没弄好,你自己反思一下。这个知识点主要的难题在于顺序,理清顺序就好了。
2025-02-20 15:23:55
188
原创 插入分层行 Inserting Hierarchical Row
现在母表增加一个订单,订单编号叫做5,然后补充订单5的具体内容,同时,我们需要在表2中也注明订单5的存在,那么问题来了,如何使得自认排序的主键两表一致呢?2.第二次的【INSERT】直接填order_id,因为该表格有一个主键自动填写,其余的信息都是必须填入的,所以整体都需要填,就不用详细地写入各个名称了。这里就需要使用到【LAST_INSERT_ID】上一个插入的ID编号,这样可以保证即是是在主键自然排序的情况之下,使得两表的订单编号是一致的。这一章节主要引入了【LAST_INSERT_ID】的概念。
2025-02-20 13:05:49
306
原创 多行插入 Inserting Multiple Row
这代表着主键是可以自动输入,不需要特别写出,而其余的信息都不能空缺并且需要自己写。首先我们要查看products_table,阅读属性。随后是这个datatype 数据的性质也需要多加关注。实例,在表格products中插入三行数据。发现主键【NN】【AI】其余的数据都是【NN】
2025-02-19 16:53:00
248
原创 单行插入 INSERT INTO
单行插入的格式,【INSERT INTO 】后跟上需要插入哪一个表,随后写明插入的是那一列,每一列要和后续的值相对应。列属性表名【AI】那么就可以通过【DEFAULT】自然顺序赋值,若是【NN】name必须写明内容,不可以空缺。若是【CHAR(2)】那么赋值只能是小于等于2。单行插入,是指在表格中最后一行,插入信息,我们会考虑到,每一个空格里是否能够使用【NULL】或者,使用自动增加【AI】。以及,插入的顺序是否可以调动。注意,赋值时间的,【2004-02-28】错误,【'2004-02-28'】 正确。
2025-02-19 16:39:54
239
原创 列属性 COLUMN ATTRIBUTES
-CHAR(50) 与上面相对,二者主要区别在于第一个输入字符小于50,那么其余地方不占位,而第二个,如果输入字符小于50,则剩余地方被动补齐空格符。【ZF】fill up values for that column with 0‘s if it is numeric 0填入。【AI】auto incremental 自增主键,主键自增长。【G】generated column 生成列。【B】binary column 二进制列。【PK】primary key 主键。
2025-02-19 16:17:36
227
原创 联合 UNIONS
联合,就像一个胶带一样,能够将两个不同处理的数据粘接在一起,只不过需要注意的是如何进行粘接,比如果开始有两列内容,那么在【UNION】后面粘接也要有两列,不可多也不可少。其实这个案例里有问题的地方是【‘Achive’ AS satus】这一栏的加入,可以翻译成‘内容是Achive 将其标题命名为 ststus’那我想,是不是加上之前的交叉连接,可以做出商品所有搭配模式,可以更简单便捷。这里的运用是对于不同时间加上不同订单状况。完毕 太累了 练习不想做 脑阔疼。
2025-02-18 16:46:35
204
原创 SQL自然连接
自然连接,顾名思义,就是软件自动识别两个表格中相同部分然后进行连接,写法会简单些,但是也简单不了多少,而且,如果出现需要用到外连接的时候,会出现错误,所以,在使用自然连接的时候,最重要的是事先辨析能不能使用自然连接,能不能达到预期效果。
2025-02-18 16:06:40
83
原创 USING 子句
其次,有一个特别容易混淆的地方,就是每张表格里面到底有什么数据,多表链接的时候,会把一张表与另一张根本没有这个数据的表相连接然后报错。再者,【USING】子句也有使用限制的地方,比如第二个【JOIN】里,不能够使用,因为两个表格对应相名字不一样。需要注意的是,在使用[USE]子句的时候,不需要再添加前缀【o. s. c.】直接填入即可。练习:注意一个地方,就是简写设置的时候,不要在后面加上点,不然会报错。【USING】是对【ON】和【AND】的简化。
2025-02-18 15:57:35
142
原创 自外连接 SELF OUTER JOIN
案例,在【hr】表格中,所有人的mannager都是Y,但是,既然Y作为CEO没有自己的mannager,所以是null显示。而我们要求最后出表的时候不能遗漏这一个人,所以要使用左连接。上一篇多表外连接有点没搞懂的地方,在于明明可以进行自连接,为什么非要弄一个外连接,还要考虑左连接和右连接的问题。这里就详细地解释了为什么要使用外连接。
2025-02-18 15:28:36
229
原创 多表外连接
我们关注一下【ON】的条件,条件是以customer来连接,主表格信息完整,而另一个表格【order】是不完整的,所以,我们会以信息较为完整的表格作为主表格。需要注意的是,【FROM】哪一个表格,因为这个会影响后续的外连接是用左连接还是右连接,一般来说,为了整齐且明晰,会统一用左连接。展示的代码有待改善。多表外连接顾名思义,是在外连接的基础之上,进行多个表格的连接,这里展示的是表格【order】同另外两个表格的外连接代码。练习中主表格换成了【customers】这样更好地规范格式,全部使用左连接。
2025-02-18 15:12:06
297
原创 外连接 【左连接右连接】
左连接表示左侧的表格无论有没有对应的序数都要被显示,同理可知道右连接是右侧的表格无论有没有对应的序数都要被显示。我们之前讲了内连接【INNER JOIN】现在我们开始讲外连接【OUTER JOIN】外连接可以分为【LEFT JOIN】和【RIGHT JOIN】两种。今天最后一篇,写完休息捏!
2025-02-17 21:52:26
137
原创 隐式连接语法
但是,这里并不推荐使用隐式连接语法,一但忘记使用【WHERE】则会出现笛卡尔积,即本来输出结果只有10,失误后则会变成100+。同样,如果是内连接基础语句,不加【on】直接运行也会出现上述效果,直接宕机?隐式连接语法,是对于内连接的简化,从FROM-JOIN-ON,简化为FROM-WHERE。简化方式自行对比,容易学会。
2025-02-17 21:24:06
129
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人