SQL复习

SQL基础

包括:

  • 数据查询:SELECT
  • 数据定义语言:CREATE、ALTER和DROP
  • 数据操纵语言:INSERT、UPDATE、DELETE
  • 数据控制语言:GRANT、REVOKE
    在这里插入图片描述

特点:

  • 综合统一
  • 高度非过程化
  • 面向集合
  • 既是独立的也是嵌入式语言

三级模式结构

  • 外模式:视图、部分基本表
  • 模式:基本表
  • 内模式:存储文件

基本语句

建表

CREATE TABLE SC(
studentNo char(7) NOT NULL ,
courseNo char(3) NOT NULL ,
score numeric(5,1) DEFAULT 0 NOT NULL
CHECK(score BETWEEN 0.0 AND 100.0),
/*主码由两个属性构成,必须作为表级完整性约束进行定义*/
CONSTRAINT ScorePK PRIMARY KEY (studentNo, courseNo),
/*表级完整性约束条件,studentNo是外码,被参照表是Student*/
CONSTRAINT ScoreFK1 FOREIGN KEY (studentNo)
REFERENCES student(studentNo),
/*表级完整性约束条件,courseNo是外码,被参照表是Course*/
CONSTRAINT ScoreFK2 FOREIGN KEY(courseNo)
REFERENCES course(courseNo)
);

索引

CREATE INDEX ClassBirthIdx
ON Student(classNo, birthday DESC);

通配符

select Cno,Cname,credit from course where
Cname like 'DB\_%设__' escape '\';

排序

常用语句

检索全部学生都选修的课程号和课程名

SELECT CNO,CNAME FROM C WHERE CNO IN(SELECT DISTINCT CNO FROM SC GROUP BY CNO HAVING COUNT(SNO) = (SELECT COUNT (*) FROM S) );

检索至少选修Liu老师所教授课程中一门课程的女学生的姓名

SELECT DISTINCT S.SNAME FROM S,C,SC WHERE S.SNO=SC.SNO AND C.CNO=SC.CNO 
AND S.SEX = '女' AND S.SNO IN (SELECT DISTINCT SNO FROM C,SC WHERE C.CNO=SC.CNO AND C.TEACHER = 'Liu');

求Liu老师所授课程的每门课程的平均成绩

SELECT CNAME, AVG(GRADE) FROM C,SC WHERE C.CNO=SC.CNO AND TEACHER='shu' GROUP BY CNAME;

统计每个学生选修课程的门数(超过2门的学生才统计)。要求输出学生学号和选修门数,查询结果按门数降序排列,若门数相同,按学号升序排列。

SELECT SNO,COUNT(CNO) FROM SC GROUP BY SNO 
HAVING COUNT(CNO)>2 ORDER BY COUNT(CNO) DESC,SNO ASC;

查询每一门课的间接先修课

select  A.Cno, A.Cname, B.Pre_Cno 
from  Course  A,Course  B
where  A.Pre_Cno =  B.Cno  and  B.Pre_Cno is not null;

查询成绩至少比选修了C02号课程的一个学生成绩低的学生学号

select  Sno  from  SC where grade < any (
select  Grade from SC where Cno = "C02"
)  and  Cno <> "C02";

查询成绩比所有选修了C02号课程的学生成绩低的学生学号

select  Sno  from  SC where grade < all (
select  Grade from SC where Cno = "C02"
)  and  Cno <> "C02"

查询选修了全部课程的学生姓名

SELECT SNAME
FROM Student
WHERE SNO IN (SELECT SNOFROM SCGROUP BY SNOHAVING COUNT(DISTINCT CNO) = (SELECT COUNT(*) FROM Course)
);

select Sname from Student where not Exists (
select * from course where not Exists (
select * from SC where Sno=Student.Sno and Cno=Course.Cno)
);

查询所在系为自动化的学生以及姓李的学生的基本信息

select * from student where Sdept like '自动化'  
Union  
select * from student where Sname like '李%';

删除平均分在60分到70分之间的同学选课记录

DELETE FROM Score 
WHERE studentNo IN (SELECT studentNo FROM Score GROUP BY studentNoHAVING avg(score) BETWEEN 60 AND 70 );

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/705353.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年5月13号刷题相关事项个人总结

01.01.03 LeetCode 入门及攻略&#xff08;第 01 ~ 02 天&#xff09; 1. LeetCode 是什么 「LeetCode」 是一个代码在线评测平台&#xff08;Online Judge&#xff09;&#xff0c;包含了 算法、数据库、Shell、多线程 等不同分类的题目&#xff0c;其中以算法题目为主。我们…

2024红帽全球峰会:CEO行业洞察分享

作为全球IT领域一年一度的行业盛宴&#xff0c;2024红帽全球峰会于近日盛大召开。生成式AI与大模型是当前IT行业最受关注的热点话题&#xff0c;而红帽在生成式AI与大模型领域的最新动作&#xff0c;也理所当然地成为了本届峰会观众目光聚集的焦点。 作为世界领先的开源解决方案…

武汉星起航:亚马逊构建综合性商业生态,卖家买家共享全球化红利

在当今全球化日益加速的时代&#xff0c;亚马逊不仅以其卓越的电商平台服务全球消费者&#xff0c;更通过一系列前沿服务打造了一个综合性的商业生态系统。在这个生态系统中&#xff0c;卖家能够轻松拓展全球业务&#xff0c;买家则享受到了前所未有的购物体验。亚马逊以其独特…

Java入门基础学习笔记24——While循环和do-while循环

1、While循环&#xff1a; 例1&#xff1a; package cn.ensource.loop;public class WhileDemo3 {public static void main(String[] args) {// 目标&#xff1a;掌握while循环的书写格式&#xff0c;以及理解其执行流程// 需求&#xff1a;打印多行Hello Worldint i 0;while…

C++显式类型转换

本文主要分析C的4种显式类型转换 文章目录 static_cast基本数据类型转换const用于类层次结构void* dynamic_cast继承中的转换 const_castreinterpret_cast参考资料 我们使用显示类型转换&#xff0c;就是在告诉编译器要怎么解释这块内存。 在早期C/C中&#xff0c;显式的类型转…

使用python给图片加上文字水印

使用python给图片加上文字水印 作用效果代码 作用 给图片加上文字水印文字水印的字体&#xff0c;颜色&#xff0c;位置可自定义 效果 原图&#xff1a; 加水印后的图&#xff1a; 代码 from PIL import Image, ImageDraw, ImageFontdef add_text_watermark(input_image…

ThreadLocal,一次到位

一、定义 ThreadLocal是线程私有变量&#xff0c;用于保存每个线程的私有数据。 那么什么情况下需要进行线程隔离 二、源码分析 public class ThreadLocalTest01 {ThreadLocal<Integer> t new ThreadLocal<>();public void test() {t.set(1);Integer integer…

iOS plist文件增删改查

一. plist简介 plist文件&#xff0c;即属性列表文件&#xff0c;全名是Property List&#xff0c;这种文件的扩展名为.plist&#xff0c;因此&#xff0c;通常被叫做plist文件。它是一种用来存储串行化后的对象的文件&#xff0c;在iOS开发中通常用来存储用户设置&#xff0c…

记笔记从学Typora开始--------------------(1)下载、安装、购买、激活

一、登录Typora官网 官网地址&#xff1a;Typora 二、鼠标往下滑&#xff0c;点击下载按钮 三、下载得到安装包&#xff0c;双击 四、一直点击下一步&#xff0c;进行安装 五、安装完成 六、启动Typoera 七、针对欢迎界面点击下一页 八、一直点击直到弹出以下软件激活界面 九…

wefaf

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话&#xff1a; 知不足而奋进&#xff0c;望远山而前行&am…

NAT技术总结与双向NAT配置案例

NAT的转换方式&#xff1a; 1.静态转换&#xff1a;固定的一对一IP地址映射。 interface GigabitEthernet0/0/1 ip address 122.1.2.24 nat static global 122.1.2.1 inside 192.168.1.1 #在路由器出接口 公网地址 私网地址。 2.动态转换&#xff1a;Basic NAT nat address-gr…

Shell脚本 <<EOF ... EOF语法(Here Document)(特殊的输入重定向方式)(定界符)

文章目录 Here Document语法Here Document 的基本语法使用场景 关于定界符定界符不是变量定界符在 Here Document 中只是一个字符串&#xff0c;主要功能是标记输入文本的开始和结束&#xff0c;使用时应遵循最佳实践格式要求例子和说明如何使用定界符定界符可重复使用&#xf…