首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

5. MySQL编程基础

如果局部变量嵌⼊到SQL语句中,由于局部变量名前没有“@”符号,这就要求局部变量名不能与表字段名同名,否则将出现⽆法预期的结果。...函数必须指定返回值数据类型,且须与return语句中的返回值的数据类型相近(⻓度可以不同)。 函数选项: contains sql:表示函数体中不包含读或写数据的语句(例如set命令等)。...no sql:表示函数体 中不包含SQL语句。 reads sql data:表示函数体中包含select查询语句,但不包含更新语句。 modifies sql data:表示函数体包含更新语句。...[else语句块n] end if; 或 case 表达式 when value1 then语句块1; when value2 then语句块2; when value3 then语句块3;...until条件表达式 end repeat [循环标签]; 系统函数 mysql提供了所有常⻅函数,⽐如三⻆函数、字符串处理函数、⽇期处理函数、类型转换函数 等,需要时请⾃⾏查询

2.3K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    学习SQL【8】-谓词和CASE表达式

    CASE表达式的语法 CASE表达式的语法分为简单CASE表达式和搜索CASE表达式两种。但是搜索CASE表达式包含了简单CASE表达式的全部功能,所以我们学习搜索CASE表达式的语法就可以了。...--搜索CASE表达式 CASE WHEN THEN WHEN THEN WHEN THEN...ELSE END CASE表达式会从最初的WHEN子句中的“ ”进行求值运算。...所谓求值,就是要调查该表达式的真值是什么,如果结果为真(TRUE),那么就返回THEN子句中的表达式,CASE表达式的执行到此为止。如果结果不为真,那么就跳转到下一条的WHEN子句的求值之中。...CASE表达式的使用方法 咱们用一个例子说明: --通过CASE表达式将A~C的字符串加入到商品种类中 SELECT product_name, CASE WHEN product_type = '衣服

    2.3K60

    MySQL——函数与约束的讲解

    name, ( case workaddress when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市' end ) as '工作地址'...when math >= 85 then '优秀' when math >=60 then '及格' else '不及格' end ) '数学', (case when english >= 85...then '优秀' when english >=60 then '及格' else '不及格' end ) '英语', (case when chinese >= 85 then '优秀' when...数据库中,存储的是学生的分数值,如 98 、 75 ,如何快速判定分数的等级呢? ----------> 答案 : case ... when ... ---- 二....----  2.约束演示 上面我们介绍了数据库中常见的约束,以及约束涉及到的关键字,那这些约束我们到底如何在创建表、修改表的时候来指定呢,接下来我们就通过一个案例,来演示一下。

    25520

    记录下关于SQL Server的东西

    select empid, sum(case when custid='A' then qty end) as A, sum(case when custid='B' then qty end) as...B, sum(case when custid='C' then qty end) as C, sum(case when custid='D' then qty end) as D from...,比如可以根据不同的逻辑进行(delete,update,insert); Merge是基于连接语义的,在merge子句中指定目标表的名称,在using子句中指定源表的名称,通过on子句来定义和并条件。...在merge语句中,可以通过when matched then定义当找到匹配时执行的操作,通过when not matched then子句定义没有找到匹配时执行的操作。...);--最后要加分号结束 在merge语句中也可以定义第三种字句when not matched by source,表示当目标表中的一个行,在来源表中没有行可以与之匹配的时候,和when not matched

    1.3K10

    神奇的 SQL 之 HAVING → 容易被轻视的主角

    示例中通过 cno 进行聚合后的结果如下:     聚合后的这个结果并没有 cname 这个列,那么通过这个列来进行条件处理,当然就报错了啦     细心的小伙伴应该已经发现,HAVING 子句的构成要素和包含...GROUP BY 子句时的 SELECT 子句的构成要素是一样的,都是只能包含 常数 、 聚合函数 和 聚合键 HAVING 的魅力   HAVING 子句是 SQL 里一个非常重要的功能,是理解...WHEN COUNT(*) = 0 THEN '表为空' WHEN COUNT(*) MAX(id) - MIN(id) + 1 THEN '存在缺失的编号' ELSE '连续'...WHEN T2.salary >= T1.salary THEN 1 ELSE 0 END) >= COUNT(*) / 2 -- S2 的条件 AND SUM(CASE WHEN T2...如果只是用 WHERE submit_date IS NOT NULL 条件进行查询,那文学院也会被包含进来,结果就不正确了     正确的做法应该先以 dept 进行分组(GROUP BY),然后对组进行条件的过滤

    97820

    SQL 中 HAVING 的魅力,多数人容易忽略

    会更容易理解;示例中通过 cno 进行聚合后的结果如下: 聚合后的这个结果并没有 cname 这个列,那么通过这个列来进行条件处理,当然就报错了啦 细心的小伙伴应该已经发现,HAVING 子句的构成要素和包含...GROUP BY 子句时的 SELECT 子句的构成要素是一样的,都是只能包含 常数 、 聚合函数 和 聚合键 HAVING 的魅力 HAVING 子句是 SQL 里一个非常重要的功能,是理解 SQL...WHEN COUNT(*) = 0 THEN '表为空' WHEN COUNT(*) MAX(id) - MIN(id) + 1 THEN '存在缺失的编号' ELSE '连续'...WHEN T2.salary >= T1.salary THEN 1 ELSE 0 END) >= COUNT(*) / 2 -- S2 的条件 AND SUM(CASE WHEN T2...个子集拥有共同部分 如果去掉等号,将条件改成 > COUNT(*)/2 ,那么当元素个数为偶数时,S1 和 S2 就没有共同的元素了,也就无法求出中位数了;加上等号是为了写出通用性更高的 SQL 查询不包含

    1.1K50

    神奇的 SQL 之 HAVING → 容易被轻视的主角

    聚合后的这个结果并没有 cname 这个列,那么通过这个列来进行条件处理,当然就报错了啦     细心的小伙伴应该已经发现,HAVING 子句的构成要素和包含 GROUP BY 子句时的 SELECT...子句的构成要素是一样的,都是只能包含 常数 、 聚合函数 和 聚合键 HAVING 的魅力   HAVING 子句是 SQL 里一个非常重要的功能,是理解 SQL 面向集合这一本质的关键。...WHEN COUNT(*) = 0 THEN '表为空' WHEN COUNT(*) MAX(id) - MIN(id) + 1 THEN '存在缺失的编号' ELSE '连续'...WHEN T2.salary >= T1.salary THEN 1 ELSE 0 END) >= COUNT(*) / 2 -- S2 的条件 AND SUM(CASE WHEN T2...如果只是用 WHERE submit_date IS NOT NULL 条件进行查询,那文学院也会被包含进来,结果就不正确了     正确的做法应该先以 dept 进行分组(GROUP BY),然后对组进行条件的过滤

    1.1K20

    【SQL技能】SQL技能对于ETL开发人员的重要性

    当今很多ETL工具都有从不同源系统读取数据的能力,如COBOL文件,平面文件,XML, 数据库和对实时数据捕捉的扩展支持。...在下面的用于计算红利的语句中,应用SQL查询来进行数据转换是个非常好的例子。...比如: Select Empid, CASE WHEN sal < 500 THEN ‘POOR’ WHEN sal between 500 and 1000 THEN ‘MID’ WHEN sal...我们采用的解决方案是在select语句中用hint创建视图(译者注:hint会起到加速查询的效果),这样查询就会使用相应的索引了。...团队 中出这个主意的人具有良好的SQL知识并知道如何在SQL中使用hint。 虽然具有如上好处,我仍然要提出在ETL中使用复杂SQL 所带来的问题。

    2K90
    领券