MySQL 小测试

news2024/11/25 22:46:33

      目录

       基础查询

​       高级查询


 基础查询

现有用户表user数据如下:

 1、写出ddl语句创建如上表,插入数据,查询所有数据  

#创建表user
create table user(
id int UNSIGNED auto_increment key ,
device_id int UNSIGNED,
gender varchar(6),
age TINYINT,
university varchar(4),
province varchar(10)
)
#插入数据
insert into user(device_id,gender,age,university,province)
values(2138,'male',21,'北京大学','Beijing'),
(3214,'male',null,'复旦大学','Shanghai'),
(6543,'female',20,'北京大学','Beijing'),
(2315,'female',23,'浙江大学','Zhejiang'),
(5432,'male',25,'山东大学','Shandong');
#查询所有数据
select * from user;

 2、查询设备id为2138对应的性别、年龄和学校的数据,请你取出相应数据

select u.gender,u.age,u.university from user u where u.device_id=2138;

3、查询用户来自于哪些学校,请从用户信息表中取出学校的去重数据

select DISTINCT(university) university from user;

 4、查询前两2条用户信息

select * from user order by id LIMIT 2;

5、查询用户年龄并按降序排序

select age from user order by age desc ;

 6、查询所有北京大学的学生

select * from user where university like '北京大学';
select * from user where university = '北京大学';

7、 查询学校名字带‘京’的学生

select * from user where university like '%京%';

 8、查询24岁以上的用户,请你取出满足条件的设备ID、性别、年龄、学校

select device_id,gender,age,university from user  where age>=24;

 9、查询除复旦大学以外的所有用户信息

select * from user where university != '复旦大学';
select * from user where not university = '复旦大学';

 10、查询所有学校及学校的人数

select university,count(*) num from user GROUP BY university;

 11、查询年龄在20到23之间的用户信息

select * from user where age BETWEEN 20 and 23;
select * from user where age >=20 and age<=23;
select * from user where age in (20,21,22,23);

    高级查询

1、创建并合理设计表:至少满足如下要求

商品: 商品名称 、商品描述、商品价格、商品数量、商品类别等

商品类别: 类别名称 、多级分类,类别排序

商品购买表: 购买的商品、数量 、价格 等

#创建商品类别
create table category(
id int UNSIGNED auto_increment key ,
name varchar(20),
pid int UNSIGNED DEFAULT 0,
sorts TINYINT UNSIGNED
);
#创建商品表
create table goods(
id int UNSIGNED auto_increment key ,
name varchar(20),
content text,
price decimal(10,2),
stock MEDIUMINT DEFAULT 0,
cid int unsigned,
categoryPath varchar(200),
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_time TIMESTAMP on update CURRENT_TIMESTAMP
);
#商品购买表
create table goods_sale(
id int UNSIGNED auto_increment key ,
gid int UNSIGNED,
name varchar(20),
num MEDIUMINT DEFAULT 0,
price decimal(10,2),
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

 2、写一个存储过程,实现商品类别数据插入至少4条

create PROCEDURE p_initcategory()
begin
insert into category(id,name,pid,sorts)
values(1,'电器',0,1),(2,'电脑',0,2),(null,'电视',1,1),(null,'空调',1,2),
(null,'笔记本',2,1);
end;
#调用
call p_initcategory();

 3、写一个存储过程,插入商品数据n条

create PROCEDURE p_initgoods()
begin
insert into goods(name,content,price,stock,cid,categoryPath)
values('小米电视','',2999,100,'3','1/3/'),('格力空调','',6999,50,'4','1/4/'),('创维电
视','',2100,10,'3','1/3/');
end;
#调用
call p_initgoods();

  4、关联查询显示商品名称、价格、数量、类别

select g.`name`,g.price,g.stock,c.`name` categoryname from goods g JOIN
category c on g.cid=c.id;

 5、根据类别查询出对应商品数据

select * from goods where INSTR(categoryPath,'3/');

 6、写一个触发器添加商品购买记录时,自动更新商品数量

create trigger t_update_goods_stock
after insert
on goods_sale for each row
begin
update goods set stock=stock-new.num where id=new.gid;
end;
#插入购买数据
insert into goods_sale(gid,name,num,price) values(1,'小米电视',2,2999);
select * from goods_sale;
select * from goods;

 7、写一个函数,根据类别id返回类别名称

create FUNCTION f_queryCategoryName(_id int UNSIGNED)
returns varchar(20)
begin
DECLARE _name varchar(20);
select name into _name from category where id=_id;
return _name;
end;
select f_queryCategoryName(1);

8、统计商品销售情况,显示商品名称、销售数量,取排名前三

select s.`name`,sum(s.num) num from goods_sale s GROUP BY name ORDER BY
num desc limit 3;

 9、查询当天的购买记录

select * from goods_sale where DATE_FORMAT(create_time,'%Y-%m-%d')=CURDATE();

10、查询最近3天的购买记录

select * from goods_sale where DATE_FORMAT(create_time,'%Y-%m-
%d')>=DATE_FORMAT(DATE_SUB(now(),interval 3 day),'%Y-%m-%d');

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【算法】双指针——leetcode盛最多水的容器、剑指Offer57和为s的两个数字

盛水最多的容器 &#xff08;1&#xff09;暴力解法 算法思路&#xff1a;我们枚举出所有的容器大小&#xff0c;取最大值即可。 容器容积的计算方式&#xff1a; 设两指针 i , j &#xff0c;分别指向水槽板的最左端以及最右端&#xff0c;此时容器的宽度为 j - i 。由于容器…

七道Android面试题,先来简单热个身

作者&#xff1a;Coffeeee 马上就要到招(tiao)聘(cao)旺季金勾银十了&#xff0c;一批一批的社会精英在寻找自己的下一家的同时&#xff0c;也开始着手为面试做准备&#xff0c;回想起自己这些年&#xff0c;也大大小小经历过不少面试&#xff0c;有被面试过&#xff0c;也有当…

mybatis-plus的逻辑删除的坑

一旦在逻辑字段上加了TableLogic逻辑删除的配置&#xff0c;并且使用mybatis-plus自带的方法时&#xff08;如果自己用xml写SQL不会出现下面的情况&#xff09; 查询、修改时会自动排除逻辑删除的数据 当使用mybatis-plus自带的查询方法时&#xff0c;就不用每次查询的时候跟…

构建 LVS-DR 群集、配置nginx负载均衡。

目录 一、基于 CentOS 7 构建 LVS-DR 群集 1、准备四台虚拟机 2、配置负载调度器&#xff08;192.168.2.130&#xff09; 3、部署共享存储&#xff08;192.168.2.133&#xff09; 4、配置两个Web服务器&#xff08;192.168.2.131、192.168.2.132&#xff09; 测试集群 二…

【HCIP】重发布实验

题目&#xff1a; 配置&#xff1a; R1 //配置ip地址 [r1]int g0/0/0 [r1-GigabitEthernet0/0/0]ip add 12.1.1.1 24 [r1-GigabitEthernet0/0/0]int g0/0/1 [r1-GigabitEthernet0/0/1]ip add 13.1.1.1 24 [r1-GigabitEthernet0/0/1]int lo0 [r1-LoopBack0]ip add 1.1.1.1 24 /…

天马上位在即,将成为iPhoneSE4二级供应商,SE4有望2025年量产

根据知情人士透露&#xff0c;国内OLED面板制造商&#xff0c;如天马&#xff0c;正在积极争取成为苹果iPhone SE 4的AMOLED面板供应商。 苹果面板采购负责人已经在今年上半年访问了中国大陆的主要柔性AMOLED面板制造商之一&#xff0c;这意味着国内一家OLED面板厂商有望成为iP…

哪些人会看作业指导书?作业指导书怎样才能发挥作用?

一般人普遍人为&#xff0c;作业指导书就是给操作人员看的。其实不然&#xff0c;那么哪些人会看作业指导书&#xff1f;大致可以分为: 第一类&#xff1a;新到工作岗位的员工。其中包括新进员工和新转岗位的员工&#xff0c;他们都会在师傅或领班组长的带领指导下&#xff0c;…

MySQL 数据类型总结

整形数据类型 1字节 8bit 2^8256

安灯Andon系统的应用与优势

安灯系统是一款与硬件相结合&#xff0c;实时了解机台与工位状态&#xff0c;让异常的信息得到快速、高效的解决的系统软件&#xff0c;同时记录每次异常报警的种类、响应时间和处理问题用时&#xff0c;提供改善生产管理和人员考核的数据参考&#xff0c;实现透明、快速的生产…

C++实现一键关闭桌面

方法一&#xff1a; C关闭桌面,explorer.exe #include<Windows.h> #include <TlHelp32.h> #include"resource.h" #pragma warning(disable:4996) void taskkill(const char * name) {HANDLE info_handle CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,…

C++ 派生类的拷贝构造函数

当存在类的继承关系时&#xff0c;对于一个类&#xff0c;如果程序员没有编写拷贝构造函数&#xff0c;编译系统会在必要时自动生成一个隐含的拷贝构造函数&#xff0c;这个隐含的拷贝构造函数会自动调用基类的拷贝构造函数&#xff0c;然后对派生类新增的成员对象一一执行拷贝…

更新镜像配置

安装docker Install Docker Desktop on Linux | Docker Documentation 拉取镜像 sudo docker pull reg.docker.xx-inc.com/xxx/xxxx:20220916 基于镜像运行容器 sudo docker run -it reg.docker.xx-inc.com/xx/xxxx:20230317 /bin/bash 修改配置后ctrlp&#xff0c;再ctrlq…

激光切割机的操作中蛙跳技术是什么意思

其实&#xff0c;蛙跳技术就是指在激光切割机运行的过程中&#xff0c;机器换位置的方式。打个比方&#xff0c;你刚刚在这儿把孔1切好了&#xff0c;接下来就得跑到那儿把孔2切了。 在这个过程中&#xff0c;激光切割机就像是一只青蛙&#xff0c;要从一个位置跳到另一个位置。…

#python# #Matplotlib# 常用可视化图形

工作中&#xff0c;我们经常需要将数据可视化&#xff0c;分享一些Matplotlib图的汇总&#xff0c;在数据分析与可视化中是非常有用。 如下协一些常用图形。 安装相关插件 python3 pip3 install scipy python3 pip3 install pandas python3 pip3 install matplotlib python…

【技巧】如何设置Word文档部分内容“限制编辑”?

我们知道&#xff0c;Word文档可以设置“限制编辑”&#xff0c;也就是保护文档不被随意更改。 那如果只想保护文档中的部分内容&#xff0c;其他内容还是随意编辑更改&#xff0c;是否可以设置部分内容“限制编辑”&#xff1f;答案是可以的&#xff0c;下面小编来举例说明一…

【Tomcat】Tomcat部署及优化

Tomcat 它是一个免费、开源的web应用服务器&#xff1b;基于java代码开发的软件&#xff1b;处理动态请求和基于Java代码的页面开发&#xff1b; 可以在html当中写入Java代码&#xff0c;Tomcat可以解析html页面当中的Java代码&#xff0c;执行动态请求以及动态页面 缺点&#…

静态时序分析与时序约束

一、时序分析的基本概念 1. 时钟 理性的时钟模型是一个占空比为50%且周期固定的方波&#xff1a; 实际电路中输入给FPGA的晶振时钟信号是正弦波&#xff1a; 2. 时钟抖动 Clock Jitter&#xff0c;时钟抖动&#xff0c;相对于理想时钟沿&#xff0c;实际时钟存在不随时钟存在…

生信豆芽菜-火山图绘制使用说明

网站&#xff1a;http://www.sxdyc.com/visualsVolcano 一、火山图简介 火山图是散点图的一种&#xff0c;它将统计测试中的统计显著性量度&#xff08;如p value&#xff09;和变化幅度&#xff08;logFC&#xff09;相结合&#xff0c;能够快速直观地识别那些变化幅度较大且具…

记一次前端直接上传图片到oss报错

前端直接上传图片到阿里云oss,相关过程官网和网上资料已经很详细&#xff0c;不做赘述。 但这个过程比较复杂&#xff0c;前后端对接过程中很容易出现报错&#xff0c;这里遇到了以下报错&#xff0c;不容易排查。 请求显示net::ERR_NAME_NOT_RESOLVED错误&#xff0c;catch输…

『Samba』在Linux中实现高效管理共享文件夹的基本操作与实践

&#x1f4e3;读完这篇文章里你能收获到 Samba 的安装和配置&#xff1a;详细介绍了如何在 Linux 操作系统上安装和配置 Samba 服务器共享文件夹的设置&#xff1a;指导如何选择要共享的文件夹&#xff0c;并为其设置共享名称、路径以及访问权限Samba 用户的创建&#xff1a;提…