热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:SQL操作集合

篇首语:本文由编程笔记#小编为大家整理,主要介绍了SQL操作集合相关的知识,希望对你有一定的参考价值。一、几种join的用法

篇首语:本文由编程笔记#小编为大家整理,主要介绍了SQL 操作集合相关的知识,希望对你有一定的参考价值。



一、几种 join 的用法

  1、inner join 和 join 一样的

中间交集

 

  2、left join

 以左边为主,右侧匹配不到全赋为 null

 

  3、right join

 

 

以右边为主,左侧匹配不到全赋为 null

 

   4、full  outer join

 

两侧全匹配,任一元组中匹配不到的值全赋为 null

 

可用灵活使用 null 作为条件查询(需注意不是 ‘=’,是 is 判断)


SELECT DISTINCT course.*
FROM course full join score on course.courseno
= score.courseno
WHERE score.courseno is
null

   参考:https://www.cnblogs.com/reaptomorrow-flydream/p/8145610.html

 

二、排序

  默认升序,上面最小。使用 desc 降序


select top 1 score.*
from score INNER JOIN course on score.courseno
= course.courseno
where course.cname
= \'电子技术\'
ORDER BY
final desc
对不同的属性可相应设置值
ORDER BY studentno DESC , final DESC

  参考:https://www.w3school.com.cn/sql/sql_orderby.asp

 

三、like 匹配模式

  where 语句中的一种匹配模式,和 % 通配符搭配使用查询


SELECT COUNT(DISTINCT score.studentno)
FROM score join course on score.courseno
= course.courseno
WHERE course.cname like
\'%软件%\'

 

四、as 别名使用

  select score.studentno, score.usually*0.4+score.final*0.6 as sco

  要注意 sco 只能在子 select 中使用

 

五、substring(str, start, length)字段截取

  搜索某属性的某字段具有某种意义,要单独拿出来作为条件使用(left/right (str, length) 扩展函数)


select *
from dbo.student a join dbo.score b on a.studentno
=b.studentno
join dbo.course c on b.courseno
=c.courseno
where substring(a.studentno,
1,2)=\'17\' and c.cname=\'电子技术\'
order by
final

  参考:https://blog.csdn.net/album_gyd/article/details/81365573

 

六、聚合不应出现在 WHERE 子句中,除非该聚合位于 HAVING 子句或选择列表所包含的子查询中,并且要对其进行聚合的列是外部引用。

  聚合函数优先级比 where 低,比 having 高,所以 where 不能使用而 having 可以使用


SELECT *
FROM student
WHERE student.point
> (
SELECT avg(student.point)
FROM student
)
ORDER BY student.birthday

 

七、group by 语句报错


[Err] 42000 - [SQL Server]选择列表中的列 \'score.studentno\' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。


SELECT score.*
FROM score
GROUP BY score.courseno
HAVING avg(score.
final) < (
SELECT MIN(score.
final)
FROM score, course
WHERE score.courseno
= course.courseno and course.cname = \'机械制图\'
)

是因为 select 中必须是 group 中的或者是聚合函数

 

八、cash语句(可代替 if 语句)


SELECT SUM(course.credit)
FROM course join score on course.courseno
= score.courseno
WHERE (
course.type
= \'必修\' and
score.
final > 70
) or (
course.type
= \'选修\' and
score.
final > 80
)
SELECT SUM(
CASE
WHEN course.type
= \'必修\' and score.final > 70 THEN course.credit
WHEN course.type
= \'选修\' and score.final > 80 THEN course.credit
ELSE
0
END
)
FROM course, score
WHERE course.courseno
= score.courseno

 

九、drop 和 truncate 清除表格

 drop table a:连 a 表也直接删除

 truncate table a:只清除数据,保留表

 

十、精度 decimal(a,b)

  a:指定小数点左边和右边可以存储的十进制数字的最大个数,最大精度38

  b:指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从 0 到 a之间的值。默认小数位数是 0


select studentno, cast(AVG(final) as decimal(10,3))
from dbo.score
group by studentno
order by
2 desc

 

十一、alter table 对表进行修改,增加或删除


//增加列
ALTER TABLE table_name
ADD column_name datatype
//更改列属性
ALTER TABLE table_name
ALTER COLUMN column_name datatype
//删除列
ALTER TABLE table_name
DROP COLUMN column_name

 

十二、datediff 日期差


DATEDIFF ( date-part, start_date, end_date )

 SELECT DISTINCT sfzh
 FROM spb
 WHERE DATEDIFF(day, sprq, qfrq) >= 30


https://www.w3school.com.cn/sql/func_datediff.asp 

 

十三、添加约束


ALTER TABLE hbb add CHECK(sdf<>mdd)

 



推荐阅读
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • yum安装_Redis —yum安装全过程
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Redis—yum安装全过程相关的知识,希望对你有一定的参考价值。访问https://redi ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 企业数据应用挑战及元数据管理的重要性
    本文主要介绍了企业在日常经营管理过程中面临的数据应用挑战,包括数据找不到、数据读不懂、数据不可信等问题。针对这些挑战,通过元数据管理可以实现数据的可见、可懂、可用,帮助业务快速获取所需数据。文章提出了“灵魂”三问——元数据是什么、有什么用、又该怎么管,强调了元数据管理在企业数据治理中的基础和前提作用。 ... [详细]
  • 本文主要介绍了gym102222KVertex Covers(高维前缀和,meet in the middle)相关的知识,包括题意、思路和解题代码。题目给定一张n点m边的图,点带点权,定义点覆盖的权值为点权之积,要求所有点覆盖的权值之和膜qn小于等于36。文章详细介绍了解题思路,通过将图分成两个点数接近的点集L和R,并分别枚举子集S和T,判断S和T能否覆盖所有内部的边。文章还提到了使用位运算加速判断覆盖和推导T'的方法。最后给出了解题的代码。 ... [详细]
author-avatar
香水百合-2012
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有