一.CASE的两种用法 1.1 等值判断->相当于switch case (1)具体用法模板: CASE expression WHEN value1 THEN returnvalue1 WHEN value2 THEN returnvalue2 WHEN value3 THEN returnvalue3  ELSE defaultreturnvalue END (2)具体使用示例: 假设我们有一个论坛网站,其中有一张User表{ UId,Name,Level },Level是一个int类型,代…
本文是在Cat Qi的参考原帖的基础之上经本人一题一题练习后编辑而成,非原创,仅润色而已.另外,本文所列题目的解法并非只有一种,本文只是给出比较普通的一种而已,也希望各位园友能够自由发挥. 一.三点一线当学霸:“学生-课程-成绩”类题目 1.1 本题目的表结构 Student(S#,Sname,Sage,Ssex)  学生表  Course(C#,Cname,T#)  课程表  SC(S#,C#,score)  成绩表  Teacher(T#,Tname)   教师表 1.2 本题目的建表及测试…
一.变量那点事儿 1.1 局部变量 (1)声明局部变量 DECLARE @变量名 数据类型 ) DECLARE @id int (2)为变量赋值 SET @变量名 =值 --set用于普通的赋值 SELECT @变量名 = 值 --用于从表中查询数据并赋值,,可以一次给多个变量赋值 SET @name=‘张三’ SELECT @name = sName FROM student WHERE sId=@id (3)输出变量的值 SELECT 以表格的方式输出,可以同时输出多个变量:而PRINT 则…
子查询进行SELECT语句嵌套查询,可以一次完成很多逻辑上需要多个步骤才能完成的SQL操作.子查询虽然很灵活,但是执行效率并不高. select goods_id,goods_name from goods where goods_id = (select max(goods_id) from goods); 执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,这里多了一个创建和销毁临时表的过程. 可以使用连接查询(JOIN)代替子查询,连接查…
原文:在论坛中出现的比较难的sql问题:40(子查询 销售和历史库存) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路. 求教:我有个表有入库时间,有出库时间,我想得到该样式号每月的销售和历史库存 http://bbs.csdn.net/topics/390629790 库结构大概是这样: 货号    样式号    入库时间    出库时间 a001  …
原文:在论坛中出现的比较难的sql问题:7(子查询 判断某个字段的值是否连续) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路. 1.求一个聚合的SQL该怎么写 http://bbs.csdn.net/topics/390640648?page=1#post-396068172有这样的数据员工    开始日期                     终了…
简介 最近在练习SQL基础,首先感叹一下,在机器上写和在纸上写还是有区别的. 本文的练习题目请点击此链接进行查看:http://www.cnblogs.com/edisonchou/p/3878135.html 提要:本文只列举个人认为有点难度,且有必须要重温知识点的题目,详细还请查看上面所给的链接进行练习. 练习题 (1)查询学过"001"并且也学过编号"002"课程的同学的学号.姓名: 思路1:使用++intersect++(intersect的使用) 思路1:…
MySQL数据库基础 MySQL数据类型 整数类型:TINYINT   SMALLINT   MEDIUMINT   INT   BIGINT 属性:UNSIGNED 长度:可以为整数类型指定宽度,列如:INT(11).对大多数应用是没有意义的,它不会限制值的合法范围,只会影响显示字符的个数. 实数类型:FLOAT   DOUBLE   DECIMAL DECIMAL可存储比BIGINT还大的整数:可以用于存储精确的小数FLOAT和DOUBLE类型支持使用标准的浮点进行近似计算. 字符串类型:V…
文章目录 1.数据库基础 1.1 数据库(database) 1.2 表(table) 1.3 列和数据类型 1.4 行 1.5 主键 2.什么是SQL 3.创建后续练习所需数据库.表(MySQL8.0.16) 3.1 创建数据库 3.2 创建数据库表 3.2.1开始创建数据库表 3.2.2 为各表定义主.外键约束 3.3 插入数据 1.数据库基础 SQL是一种专门用来与数据库沟通的语言,因此在学习SQL之前,我们应该对数据库和数据库技术的某些基本概念有所了解. 本节主要介绍数据库及数据库技术的…
五.表连接 当数据表中存在许多重复的冗余信息时,就要考虑将这些信息建在另一张新表中,在新表中为原表设置好外键,在进行数据查询的时候,就要使用到连接了,表连接就好像两根线,线的两端分别连接两张表的不同字段上,将两个字段进行关联.表连接分为内连接(inner join).交叉连接.自连接和外连接等. 1.内连接,语法  inner join table_name on condition ,table_name被关联的表名,condition关联条件. 例如:有两张表,T_Customer保存着客户…