头歌实践教学平台--【数据库概论】--SQL
一、表结构与完整性约束的修改(ALTER)
1.修改表名
USE TestDb1;
alter table your_table rename TO my_table;
2.添加与删除字段
#语句1:删除表orderDetail中的列orderDate
alter table orderDetail drop orderDate;
#语句2:添加列unitPrice
alter table orderDetail add unitPrice numeric(10,2);
3.修改字段
#请在以下空白处添加适当的SQL语句,实现编程要求
alter table addressBook modify column QQ char(12);
alter table addressBook rename column weixin to wechat;
4.添加、删除与修改约束

二、 单表查询(简单比较,in,范围查询)
1.基本查询语句
-- 任务1: 查询雇员(staff)的全部信息
-- 请在此处添加实现代码
select * from staff;
-- 任务2: 查询全部雇员(staff)的姓名(sname)、出生日期(dob)和手机号码(mobile)
-- 请在此处添加实现代码
select sname,dob,mobile from staff;
-- EOF
2.对查询的结果排序
-- 任务1: 写出能完成以下任务的语句:
-- 查询所有雇员的姓名,性别,手机号。按年龄降序排列,即年龄越大的越靠前。
-- 请在此处添加实现代码
select sname,gender,mobile
from staff
order by dob asc;
3.带比较条件的查询
-- 任务1: 写出能完成以下人物的sql语句:
-- 查询格力空调的型号和价格,依价格升序排列。
-- 请在此处添加实现代码
select model,price
from products
where manufacturer='格力'
order by price asc;
4.带IN关键字的查询
-- 任务1: 写出能完成以下查询任务的SQL语句:
-- 查询10,40,70号产品(空调)的型号、生产厂家和价格,依价格从低到高排序。
-- 请在此处添加实现代码
select model,manufacturer,price
from products
where pid in(10,40,70)
order by price asc;
5.带BETWEEN AND关键字的查询
-- 任务1: 写出可以完成以下查询任务的sql语句:
-- 查询价格在2000到3000之间的所有空调的型号,生产厂家和价格。依价格从低到高排序。
-- 请在此处添加实现代码
select model,manufacturer,price
from products
where price between 2000 and 3000
order by price;
三、单表查询(模式匹配,null,去重,and,or)
1.带LIKE 的字符匹配查询
-- 实现以下查询的SQL语句:
-- 查询1.5匹,即功率3500W的冷暖空调,列出型号,生产厂家和价格,依价格从低到高排序。
-- 请在此处添加实现代码
select model,manufacturer,price
from products
where model like 'KFR%_35%'
order by price;
2.带RLIKE 的字符匹配查询
-- 实现以下查询的SQL语句:
-- 查询分体式室热泵制热冷暖双制,制冷量7200W或6000W的落地式空调的型号、生产厂家和价格,查询结果依价格从低到高排序输出。
-- 请在此处添加实现代码:
select model,manufacturer,price
from products
where model rlike '^KFR-(72|60)LW.*'
order by price;
3.. 查询空值与去除重复结果
-- 任务1:查查询产品表(products)表中,有多少厂家(manufacturer)的产品,一个厂家只列一次,即便该厂家有多个型号的产品。查询结果依厂家名称排序输出。
-- 请在此处添加实现代码
select distinct manufacturer
from products
order by manufacturer;
-- 任务2:查询出生日期(出生日期)未填写(值为NULL)的员工编号,姓名。查询结果依姓名排序输出。
-- 请在此处添加实现代码
select sid,sname
from staff
where dob is null
order by sname;
4.带 AND 与 OR 的多条件查询
-- 查询“美的”、“格力”或 “志高”价格在3000(含)以下,功率为3500W的空调信息,列出厂家,型号,价格。查询结果依价格从低到高排序。
-- 请在此处添加实现代码
select manufacturer,model,price
from products
where manufacturer in('美的', '格力','志高' )and price<=3000 and model like 'KF%_35%'
order by price;
四、单表查询(统计总和,平均,最大,最小)
1.COUNT( )函数及对计算列重命名
-- 查询2023年国庆长假期间(9-29至10-6)共有多少员工共完成了多少笔销售交易,涉及多少个型号的空调。统计结果分别命名为:人数,笔数,型号数。
-- 请在此处添加实现代码
select count(distinct sid) as '人数',
count(rid) as '笔数',
count(distinct pid) as '型号数'
from sales_record
where sdate between '2023-9-29' and '2023-10-6';
2.SUM( )函数
-- 查询7号员工2023年上半年共销售了几个型号的总共多少台空调?统计结果分别命名为:“型号数”、“总台数”。
-- 请在此处添加实现代码
select
count(distinct pid) as '型号数',
sum(quantity) as '总台数'
from sales_record
where sid='7' and sdate between '2023-1-1' and '2023-6-30' ;
3. AVG( )函数
-- 查询产品表中制冷量3500W室内分体空调的平均价格,对均价取整,并命名为:“均价”。
-- 请在此处添加实现代码
select round(avg(price)) as '均价'
from products
where model rlike '^KF[RD]?-35[DGLTQ]W.*'
4.MAX( )函数
-- 查询产品表中制冷量7200W室内分体落地式冷暖空调的最高价,并命名为:“最高价”。。
-- 请在此处添加实现代码
select max(price) '最高价'
from products
where model rlike '^KF[RD]?-72LW.*'
5.MIN( )函数
-- 查询产品表中制冷量3500W室内分体壁挂式冷暖空调的最低价,并命名为:“最低价”。
-- 请在此处添加实现代码
select min(price) '最低价'
from products
where model rlike '^KFR-35GW.*'
五、单表查询(分组统计,限定输出行数)
1. 使用 limit 限制查询结果的数量
-- 查询产品表中制冷量3500W室内分体壁挂式冷暖空调的价格个最低的三个产品的厂家,型号和价格。按价格从低到高排序。。
-- 请在此处添加实现代码
select manufacturer,model,price
from products
where model rlike '^KF[RD]?-35GW.*'
order by price asc
limit 0,3;
2. 分组统计查询(group by)
-- 统计每个空调厂家,制冷功率为3500W的空调平均价格(取整)。结果表的标题分别为:“厂家”,“平均价格”。查询结果依生产厂家名称排序。
-- 请在此处添加实现代码
select manufacturer as '厂家', round(avg(price)) as'平均价格'
from products
where model rlike '^KF[R]?-35[DGLTQ]W.*'
group by manufacturer
order by 厂家;
3. 对分组统计的结果再筛选(having)
-- 查询2023国庆长假期间(9月29日到10月6日)所有员工销售空调的总台数,并按销售量从高到底排序。只输出总台数超过20(含)台数的结果。总台数命名为total。
-- 请在此处添加实现代码
select sid,sum(quantity) as total
from sales_record where sdate between '2023-9-29' and '2023-10-6'
group by sid
having total>=20
order by total desc;
六、连接查询(内连,外连,多表分组统计)
1.内连接查询
-- 查询2023年国庆小长假期间(9月29日到10月6日)的销售明细,包括:型号(model),厂家(manufacturer),数量(qunantity), 单价(price)和折扣(discount)。查询结果依销售记录号(rid)排序。
-- 请在此处添加实现代码
select model,manufacturer,quantity,price,discount
from products inner join sales_record on products.pid=sales_record.pid
where sdate between '2023-9-29' and '2023-10-6'
order by rid;
2.外连接查询
-- 查询2023年国庆节小长假期间(9月29日到10月6日)“格力”空调的销售明细,包括:型号(model),数量(qunantity), 单价(price)和折扣(discount)。没有销售记录的型号也要包括在查询结果中。查询结果按产品号(pid)排序,产品号相同时,再依销售记录号(rid)排序。
-- 请在此处添加实现代码
select model,quantity,price,discount
from products left join sales_record on products.pid=sales_record.pid
and sdate between '2023-9-29' and '2023-10-6'
where manufacturer='格力'
order by products.pid,rid;
3.多表连接查询
-- 统计各位销售人员在2023年国庆节小长假期间(9月29日到10月6日)期间的销售业绩(即销售总金额),列出销售人员姓名,销售额(命名为total)。依销售额从高到低排序。
-- 请在此处添加实现代码
select sname,sum(quantity*price *discount) as total
from staff,products,sales_record
where sales_record.sid=staff.sid and sales_record.pid=products.pid and sdate between '2023-9-29' and '2023-10-6'
group by staff.sid
order by total desc;
七、子查询(in,exists,子查询的位置,分组统计)
1. 带IN谓词的子查询
-- 查询“郑点”没有卖过那些厂家的空调。结果依厂家名字排序。
-- 请在此处添加实现代码
select distinct manufacturer
from products
where manufacturer not in(select distinct manufacturerfrom productsinner join sales_record on products.pid=sales_record.pidinner join staff on sales_record.sid=staff.sidwhere sname='郑点'
)
order by manufacturer;
2. 带EXISTS谓词的子查询
-- 被1-9号(正式)员工都卖过的产品(空调)编号,型号,生产厂家和价格。结果依产品号排序。
-- 请在此处添加实现代码
select p.pid,p.model,p.manufacturer,p.price
from products p
inner join sales_record sr on p.pid=sr.pid
inner join staff s on sr.sid=s.sid
where s.sid between 1 and 9
group by p.pid,p.model,p.manufacturer
having count(distinct s.sid)=9
order by p.pid;
3. 复杂子查询及分组统计
-- 统计每个厂家空调的型号数,其中单冷总型号数,冷暖总型号数。统计结果按总型号数从高到底排列。列出内容:
-- 生产厂家:manufacturer
-- 总型号数: model_total
-- 单冷型号数:single_total
-- 冷暖型号数:dual_total
select manufacturer,
count(distinct model) as model_total,
count(distinct case when model regexp '^KF-[0-9]{2}[DGLTQ]W.*' then model end) as single_total,
count(distinct case when model regexp '^KF[RD]-[0-9]{2}[DGLTQ]W.*' then model end) as dual_total
from products
group by manufacturer
order by model_total desc;
八、数据的插入、修改与删除(Insert,Update,Delete)
1. 插入多条完整的客户信息
-- 用insert语句向客户表(client)插入任务要求的3条数据:
insert into client(c_id,c_name,c_mail,c_id_card,c_phone,c_password)
values(1,'林惠雯','960323053@qq.com','411014196712130323','15609032348','Mop5UPkl'),
(2,'吴婉瑜','1613230826@gmail.com','420152196802131323','17605132307','QUTPhxgVNlXtMxN'),
(3,'蔡贞仪','252323341@foxmail.com','160347199005222323','17763232321','Bwe3gyhEErJ7');
2. 插入不完整的客户信息
-- 已知33号客户部分信息如下:
-- c_id(编号):33
-- c_name(名称):蔡依婷
-- c_phone(电话):18820762130
-- c_id_card(身份证号):350972199204227621
-- c_password(密码):MKwEuc1sc6-- 请用一条SQL语句将这名客户的信息插入到客户表(client):
insert into client(c_id,c_name,c_phone,c_id_card,c_password)
value(33,'蔡依婷','18820762130','350972199204227621','MKwEuc1sc6');
3. 批量插入数据
-- 已知表new_client保存了一批新客户信息,该表与client表结构完全相同。请用一条SQL语句将new_client表的全部客户信息插入到客户表(client):
insert into client
select *
from new_client;
4. 删除没有银行卡的客户信息
-- 请用一条SQL语句删除client表中没有银行卡的客户信息:
delete from client
where not exists(select 1from bank_cardwhere bank_card.b_c_id=client.c_id
);
5. 冻结客户资产
-- 请用一条update语句将手机号码为“13686431238”的这位客户的投资资产(理财、保险与基金)的状态置为“冻结”。:
update client
inner join property on client.c_id=property.pro_c_id
set property.pro_status='冻结'
where client.c_phone='13686431238'
and property.pro_type in(1,2,3);
6.连接更新
-- 在金融应用场景数据库中,已在表property(资产表)中添加了客户身份证列,列名为pro_id_card,类型为char(18),该列目前全部留空(null)。-- 请用一条update语句,根据client表中提供的身份证号(c_id_card),填写property表中对应的身份证号信息(pro_id_card)。
update property join client as c on property.pro_c_id=c.c_id
set property.pro_id_card=c.c_id_card;
九、视图
1. 创建所有保险资产的详细记录视图
-- 创建包含所有保险资产记录的详细信息的视图v_insurance_detail,包括购买客户的名称、客户的身份证号、保险名称、保障项目、商品状态、商品数量、保险金额、保险年限、商品收益和购买时间。
-- 请用1条SQL语句完成上述任务:
create view v_insurance_detail as select c_name,c_id_card,i_name,i_project,pro_status,pro_quantity,i_amount,i_year,pro_income,pro_purchase_time from (select * from (select * from (select * from client union select * from client new_client) a join property b on a.c_id = b.pro_c_id) c join insurance d on c.pro_pif_id = d.i_id) e where e.pro_type = '2';
2. 基于视图的查询

相关文章:
头歌实践教学平台--【数据库概论】--SQL
一、表结构与完整性约束的修改(ALTER) 1.修改表名 USE TestDb1; alter table your_table rename TO my_table; 2.添加与删除字段 #语句1:删除表orderDetail中的列orderDate alter table orderDetail drop orderDate; #语句2:添加列unitPrice alter t…...
Unity 全栈开发商业级 MMORPG 大型网游:源码与课件助力进阶之路
Unity 全栈开发商业级 MMORPG 大型网游:源码与课件助力进阶之路 在竞争激烈的游戏市场中,大型多人在线角色扮演游戏(MMORPG)凭借其丰富的世界观、庞大的玩家社区以及持续的内容更新,始终占据着重要地位。Unity 作为一…...
软件工程面试题(六)
1、forward及redirect 的区别?有哪些方式实现 <jsp:forward>重定向后url地址栏地址不变还是原来的地址;而response.sendRedirect()重定向后url地址栏地址显示的请求后的新地址。<jsp:forward>重定向的时候可以保存回话信息,因此可以使用re…...
Apache Dubbo 与 ZooKeeper 集成:服务注册与发现的全解析
在分布式系统中,Apache Dubbo 作为一个高性能的 RPC 和微服务框架,广泛用于服务治理,而 ZooKeeper 作为其常用注册中心,提供了服务注册与发现的核心能力。在2025年的技术生态中,理解 Dubbo 与 ZooKeeper 的集成原理和使…...
算法基础——模拟
目录 1 多项式输出 2.蛇形方阵 3.字符串的展开 模拟,顾名思义,就是题⽬让你做什么你就做什么,考察的是将思路转化成代码的代码能⼒。这类题⼀般较为简单,属于竞赛⾥⾯的签到题(但是,万事⽆绝对ÿ…...
【第30节】MFC编程:ListCtrl控件和TreeCtrl控件
目录 引言 一、高级控件ListCtrl 二、高级控件TreeCtrl 三、Shell控件 四、CImageList 五、综合代码示例 引言 在MFC编程里,高级控件能大幅提升应用程序的交互性与功能性。接下来,咱们会详细讲讲ListCtrl和TreeCtrl这两个高级控件。不仅会介绍它们…...
kotlin知识体系(四) : inline、noinline、crossinline 关键字对应编译后的代码是怎样的 ?
1. inline、noinline、crossinline 的作用 在 Kotlin 里,inline、noinline 和 crossinline 这几个关键字和高阶函数紧密相关,它们能够对高阶函数的行为进行优化和控制。本文接下来会详细介绍它们的作用和原理。 1.1 inline 关键字 inline 关键字用于修…...
JavaScript 手写 call、apply、bind 和 new
1. 手写 call 方法 核心思路:改变函数的 this 指向并立即执行,通过将函数临时挂载到目标对象上调用。 Function.prototype.myCall function (context, ...args) {// 如果 context 为 null 或 undefined,则默认为 windowcontext context |…...
睡眠健康领域的智能硬件设备未来的发展趋势
随着社会节奏的不断加快,人们的睡眠问题愈发多了起来,主要表现有以下几个方面: 睡眠质量下降 浅睡眠增多:现代生活中,人们面临着各种压力源,如工作压力、生活琐事、经济压力等,这些压力会导致大…...
计算机网络基础:量子通信技术在网络中的应用前景
计算机网络基础:量子通信技术在网络中的应用前景 一、前言二、量子通信技术基础2.1 量子通信的基本概念2.2 量子通信的主要原理2.2.1 量子密钥分发(QKD)原理2.2.2 量子隐形传态原理三、量子通信技术的特点3.1 绝对安全性3.2 超高通信速率潜力3.3 抗干扰能力强四、量子通信技…...
Postman 下载文件指南:如何请求 Excel/PDF 文件?
在 Postman 中进行 Excel/PDF 文件的请求下载和导出,以下是简明的步骤,帮助你轻松完成任务。首先,我们将从新建接口开始,逐步引导你完成整个过程。 Postman 请求下载/导出 excel/pdf 文件教程...
Stereolabs ZED Box Mini:机器人与自动化领域的人工智能视觉新选择
在人工智能视觉技术快速发展的今天,其应用场景正在持续拓宽,从智能安防到工业自动化,从机器人技术到智能交通,各领域都在积极探索如何利用这一先进技术。而 Stereolabs 推出的ZED Box Mini,正是一款专为满足这些多样化…...
arm之s3c2440的I2C的用法
基础概念 IC(Inter-Integrated Circuit)又称I2C,是是IICBus简称,所以中文应该叫集成电路总线。 IIC的总线的使用场景,所有挂载在IIC总线上的设备都有两根信号线,一根是数据线SDA,另一 根是时钟…...
安装node,配置npm, yarn, pnpm, bun
文章目录 安装node, 配置 npm, yarn, pnpm, bun配置node配置 npm, yarn, pnpm, bunnpmyarnpnpmbun 安装node, 配置 npm, yarn, pnpm, bun 配置node 输入网址:Node.js,包含各种安装方式以及多版本管理方式。也可以直接下载安装包。 安装包的安装过程…...
redis部署架构
一.redis多实例 如上图所示,我们经常使用实例的端口号来作为实例的安装目录名称。 1.创建实例安装目录 如上图所示,这是创建实例的安装目录, 2.拷贝实例的配置文件 如上图所示,将redis解压目录下的配置文件拷贝到对应的conf目录…...
深入理解指针(4)(C语言版)
文章目录 前言一、回调函数是什么(一)定义(二)工作原理(三)应用场景 二、qsort举例(一)qsort函数简介(二)比较函数的定义(三)使用示例…...
【HTML】验证与调试工具
个人主页:Guiat 归属专栏:HTML CSS JavaScript 文章目录 1. HTML 验证工具概述1.1 验证的重要性1.2 常见 HTML 错误类型 2. W3C 验证服务2.1 W3C Markup Validation Service2.2 使用 W3C 验证器2.3 验证结果解读 3. 浏览器开发者工具3.1 Chrome DevTools…...
【Mysql】SQL 优化全解析
文章目录 一、理解执行计划1.1 执行计划的作用1.2 查看执行计划 二、查询优化2.1 避免全表扫描2.2 使用覆盖索引2.3 合理使用 JOIN 三、索引优化3.1 索引设计原则3.2 索引维护 在数据驱动的当今时代,MySQL 作为应用广泛的开源关系型数据库&…...
SenseGlove与Aeon Robotics携手推出HEART项目,助力机器人培训迈向新台阶
在自动化和机器人技术快速发展的今天,SenseGlove和Aeon Robotics联合推出了一项创新项目——HEART项目。该项目在欧盟资助的MasterXR框架内展开,旨在通过整合虚拟现实(VR)、力反馈触觉手套(SenseGlove项目Rembrandt&am…...
mapbox进阶,仿照百度,加载marker点位,移入marker点切换图标,点击展示气泡,气泡和marker联动
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️marker 标注点位 api1.3.1 ☘️构造函数…...
使用HTML5和CSS3实现3D旋转相册效果
使用HTML5和CSS3实现3D旋转相册效果 这里写目录标题 使用HTML5和CSS3实现3D旋转相册效果项目介绍技术栈核心功能实现思路1. HTML结构2. CSS样式解析2.1 基础样式设置2.2 3D效果核心样式2.3 卡片样式 3. JavaScript交互实现3.1 旋转控制3.2 自动播放功能 技术要点总结项目亮点总…...
HTML5 新的 Input 类型学习笔记
HTML5 引入了多种新的表单输入类型,这些新特性不仅增强了输入控制,还提供了更强大的验证功能,使表单设计更加灵活和便捷。以下是 HTML5 新的 Input 类型的详细学习笔记。 一、color 类型 功能:用于选取颜色。 使用场景ÿ…...
游戏引擎学习第186天
回顾并规划今天的任务 现在,我们站在了一个关键的时刻,准备突破,拥有一些优秀的性能分析代码。从目前来看,我们已经能够看到时间的消耗情况,我对这一点感到非常兴奋。昨天的直播中我们勉强让一些东西工作了࿰…...
NDK CMake工程中引入其他C++三方库
在Android NDK CMake工程中引入其他C三方库时,有以下几种常见的依赖方式: 1. 源码依赖 如果三方库的源代码包含在你的项目目录中,并且它有自己的CMake配置,可以使用add_subdirectory将三方库的构建过程集成到你的项目中。 示例…...
【redis】持久化之RDB与AOF
在数字世界的脉搏中,数据是流淌的血液,而持久化则是保障系统生命力的核心机制。作为内存数据库的标杆,Redis凭借其高性能特性成为互联网架构的基石,但其「易失性」的天然属性也催生了关键命题:如何在服务重启或故障时保…...
Brainstorm绘制功能连接图(matlab)
上篇笔记简单介绍了Brainstorm,本次使用Brainstorm绘制功能连接图。而对于连接矩阵,软件中有几种方法:相关、相干、双变量格兰杰因果关系、相位锁相值、包络相关、相位转移熵。 首先,对数据进行预处理,保存为.set&…...
华为HG532路由器RCE漏洞 CVE-2017-17215 复现
华为HG532路由器RCE漏洞 CVE-2017-17215 CVE-Description Huawei HG532 with some customized versions has a remote code execution vulnerability. An authenticated attacker could send malicious packets to port 37215 to launch attacks. Successful exploit could l…...
CSS3学习教程,从入门到精通,CSS3 弹性盒子(Flexbox)布局全面指南(20)
CSS3 弹性盒子(Flexbox)布局全面指南 一、Flexbox 概述 Flexbox(弹性盒子)是 CSS3 提供的一种一维布局模型,可以轻松实现各种复杂的页面布局。它特别适合处理不同屏幕尺寸下的元素排列和对齐问题。 主要优势: 简单实现垂直居中…...
Redis 性能数据解读与问题排查优化版
目录标题 Redis 性能数据解读与问题排查优化版一、Redis 性能数据解读二、常见问题排查与解决(一)CPU 使用率高(二)内存使用异常(三)集群状态异常(四)数据库状态问题 三、综合优化建…...
新能源动力电池测试设备深度解析:充放电设备与电池模拟器的差异及技术趋势
一、技术原理对比与核心技术创新 充放电设备 核心原理与硬件架构 充放电设备的核心功能是通过电力电子技术精确控制电池的充放电过程,其硬件架构包括高精度电源模块、双向DC/DC变换器、数据采集系统和温控单元。例如,在放电阶段,设备通过双向…...
