查询数据库DQL

 DQL 查询基本语法

--  ======================DQL :基本语法==================;
-- 1查询指定的字段 name  entrydate  并返回select name , entrydate from tb_emp;-- 2 查询 所有字段  并返回select id, username, password, name, gender, image, job, entrydate, create_time, update_time from  tb_emp;-- 2 查询 所有字段  并返回select * from  tb_emp;
-- 3 查询 所有员工的 name entrydate 并起别名(姓名 入职日期)
select name as'姓名' , entrydate as'入职日期' from  tb_emp;
-- 缩写
select name '姓 名' , entrydate '入职日期' from  tb_emp;-- 查询已有的员工关联了那几种职位(不要重复)
select  distinct job from tb_emp

DQL 条件查询

-- ===============DQL:条件查询 ======================-- 1查询  姓名为  杨逍的 员工select * from tb_emp where name = '杨逍';--  2查询 id 小于5的 员工消息
select * from tb_emp where  id<5;-- 3查询 没有分配职位的员工的信息select * from tb_emp where  job is null;-- 4查询 有职位的 员工信息select * from tb_emp where  job  is not null ;-- 5查询 密码不等于 "123456" 的员工 信息select * from tb_emp  where password != 123456;--  一样select * from tb_emp  where password <> 123456;-- 6 查询 入职日期 2000-01 -01 (包含)到 '2000-01-01'之间的员工信息select * from tb_emp where  entrydate >= '2000-01-01' and entrydate<='2010-01-01';-- 缩写select * from tb_emp where  entrydate between '2000-01-01' and '2010-01-01';-- 7 查询 入职日期 2000-01 -01 (包含)到 '2000-01-01' 之间 且 性别是女的员工信息
select * from tb_emp where  entrydate between '2000-01-01' and '2010-01-01' and  gender=2;-- 一样
select * from tb_emp where  entrydate between '2000-01-01' and '2010-01-01' &&  gender=2;-- 8  查询 职位是2 (讲师) 3 (学工主管) 4 (教研) 员工信息select  * from tb_emp  where  job=2 or job=3 or job =4 ;-- 一样select  * from tb_emp  where  job in (2,3,4) ;select  * from tb_emp  where  job in (4) ;-- 9 查询 姓名 为两字的员工信息select * from  tb_emp where name like '____';select * from  tb_emp where name like '__';-- 10 查询 性名 '张' 的员工select  * from  tb_emp where  name like '张%';

 DQL分组查询  group by

-- =================DQL :分组查询 ======================-- 集合 函数
-- 1 统计该企业的员工信息 --count-- A  count 字段select count(id) from tb_emp;select count(name) from tb_emp;select count(job) from tb_emp;-- B count (常量)select count(0) from tb_emp;-- C count (count *)select  count(*) from tb_emp;-- 2 统计该企业最早入职的员工 --minselect  min(entrydate) from tb_emp;-- 3 统计该企业的最迟入职的员工 -- maxselect max(entrydate)from tb_emp;-- 4 统计该企业的 id 平均 值 - avgselect avg(id) from tb_emp;-- 5 统计该企业的 员工的ID 之和 - sumselect sum(id) from tb_emp;

分组查询 高级

 -- ============DQL:分组 查询 ===============-- 1   根据性别分组  统计男性 和女性员工的数量select gender , count(*) from tb_emp group by  gender;-- 2 先查询 入职日期 在 2015-01-10(包含 ) 以前的 员工  并对结果根据 职位分组  获取员工数量 大=大于等于2的职位select job , count(*) from tb_emp  where   entrydate <= '2015-01-10' group by  job having  count(*)>=2;

DQL排序查询 

 -- ================排序查询=========-- 1 根据入职日期 对员工 进行升序排序 --ascselect * from tb_emp order by  entrydate asc;select * from tb_emp order by  entrydate ;-- 2 根据 入职日期   对员工进行降序排序select * from tb_emp order by entrydate desc;-- 3 根据 入职日期 对公司员工进行 升序排序 入职时间相同的 再按照 更新时间 进行降序排序
select * from tb_emp order by  entrydate ,update_time desc ;

DQL 分页查询  limit

 -- =================分页查询 ===============;-- 1 从 起始索引0 开始查询员工数据  每页展示5 条记录select * from tb_emp   limit 0,5;-- 2 查询第1页 员工数据  每页展示5条记录select * from tb_emp   limit 0,5;-- 3 查询第2页 员工数据  每页展示5条记录
select * from tb_emp   limit 5,5;-- 4 查询第3页 员工数据  每页展示5条记录
select * from tb_emp   limit 10,5 ;-- 起始索引 =(页码 -1 *  每页展示的记录数 )
-- 起始索引 =(页码 -1 *  5 )



-- 案例 1 按照需求完成 员工管理 的条件分页 查询 - 根据 输入条件 查询第一页的数据 每一页展示 10条数据
-- 输入 条件
-- 姓名 :张
-- 性别 :男
-- 入职时间 : 2000-01-01 2015-12-31
select * from tb_emp where name like '%张%' and gender = 1 and entrydate between
'2000-01-01' and '2015-12-31'order by update_time desc limit 10,10;


-- 案例 2-1 :根据需求 完成员工职位信息的统计 count(*) if判断
select if (gender=1,'男性','女性')'性别', gender, count(*) from tb_emp group by gender ;

-- 2-2 根据需求 完成员工职位信息的统计 -- case

select job,count(*) from tb_emp group by job;
-- case job when 1 then'老师' hen 1 then'老师'hen 1 then'老师'

select job ,
(case job when 1 then '班主任' when 2 then '讲师' when 3 then '学工主管
' when 4 then '教研主管' else '未分配职位'end ) '职位',
count(*) from tb_emp group by job ;

多表设计 

  1. 一对多

  2. 一对一 

  3. 多对多 

1.一对多 

create table tb_emp
(id          int auto_increment comment '主键ID'primary key,username    varchar(20)                  not null comment '用户名',password    varchar(32) default '123456' null comment '密码',name        varchar(10)                  not null comment '姓名',gender      tinyint unsigned             null comment '性别 1男 2女',image       varchar(300)                 null comment '图形url',job         tinyint unsigned             null comment '职位 ,1班主任,2 讲师 ,3 学工主管 ,4 教研主管 ',entrydate   date                         null comment '入职日期',dept_id int unsigned comment '归属部门',crete_time  datetime                     not null comment '创建时间',update_time datetime                     not null comment '修改时间',constraint usernameunique (username)
)comment '员工';-- 部门管理-- create  database  db_03;--  use db_03;
create  table  tb_dpt(id  int unsigned primary key  auto_increment comment 'ID',name varchar(10) not null  unique  comment '部门名称',creation_time datetime not null comment '创建时间',update_time datetime not null comment '修改时间')comment '部门表';

alter table tb_emp  -- (用户表)add constraint tb_emp_fk_dept_id  -- 外连接名称foreign key (dept_id) references  -- 外连接创建表tb_dpt (id);   -- (部门表·)

2.一对一

create table  tb_user(id int unsigned primary key  auto_increment comment 'Id',name varchar(20) not null  comment '姓名',gender tinyint unsigned   not null comment '性别 1:女 2:男',phone char(11)comment '手机号',degree varchar (15) comment '学历') comment '用户表';
insert into tb_user values (1,'买买提',1,'18383905487','本科'), (2,'张小',1,'67124808247','大专'),(3,'李强',1,'18383905487','博士'), (4,'李方',2,'18383905487','初中') ;
create  table tb_user_card(id int unsigned primary key auto_increment comment 'id',ethnic_group varchar(10) not null  comment '民族',birthday date not null comment '生日',idcard char(18) not null comment '身份证号',issued varchar(20) not null comment '签发机关',expire_begin date comment '有效期限-开始时',expire_end date comment '有效期限-结束',user_id int unsigned not null unique comment '用户ID',constraint  fk_user_id foreign key (user_id) references tb_user(id)
)comment '用户信息表';insert into tb_user_card values(1,'汉','1998-08-14','453234199808147439','南京鼓励广场','2000-12-1',null,1),(2,'汉','1998-08-14','453234199808147439','南京鼓励广场','2000-12-1','2023-12-31',2),(3,'汉','1998-08-14','453234199808147439','南京鼓励广场','2000-12-1','2028-10-30',3),(4,'回','1998-08-14','453234199808147439','南京鼓励广场','2000-12-1',null,4)

多对多 

-- 多对多
-- 学生表
create table  tb_student(id int auto_increment primary key comment '主键ID',name varchar(10)comment '姓名',no varchar(10)comment '学号'
)comment '学生表';
insert into tb_student(name, no) values ('person1','20001'),('person2','20002'),('person3','20003'),('person4','20004');create table tb_course(id int auto_increment primary key comment '主键id',name varchar(10) comment '课程名称')comment '课程表' ;
insert into tb_course(name) values ('java'),('php'),('mysql'),('go'),('c'),('linux');create table  tb_student_course(id int unsigned auto_increment comment '主键' primary key ,student_id int not null comment '学生id',course_id int not null comment '课程id',constraint fk_courseid foreign key (course_id)references tb_course(id) ,constraint fk_studentid foreign key (student_id)references tb_student(id))comment '学生和课程表';insert into tb_student_course (student_id, course_id)values (1,1),(1,2),(1,3),(2,2),(2,3),(3,3);

 

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

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

相关文章

C++ 继承和派生 万字长文超详解

本文章内容来源于C课堂上的听课笔记 继承和派生基础 继承是一种概念&#xff0c;它允许一个新创建的类&#xff08;称为子类或派生类&#xff09;获取另一个已经存在的类&#xff08;称为父类或基类&#xff09;的属性和行为。这就好比是子类继承了父类的特征。想象一下&…

【文末附资料链接】2023年第十三届亚太杯数学建模竞赛(APMCM)优秀参考论文思路指导(持续更新中ing)

一、赛事介绍 数学建模作为一门跨学科的科学&#xff0c;不仅需要对数学知识的熟练掌握&#xff0c;还需要对实际问题的深刻理解和解决问题的创新思维。亚太杯数学建模竞赛旨在激发青年学子的创造力和团队协作精神&#xff0c;培养其在实际问题中运用数学方法解决现实挑战的能力…

HarmonyOS ArkTS开发语言介绍(三)

1 引言 Mozilla创造了JS&#xff0c;Microsoft创建了TS&#xff0c;Huawei进一步推出了ArkTS。 从最初的基础的逻辑交互能力&#xff0c;到具备类型系统的高效工程开发能力&#xff0c;再到融合声明式UI、多维状态管理等丰富的应用开发能力&#xff0c;共同组成了相关的演进脉…

HarmonyOS脚手架:快捷实现ArkTs中json转对象

前言 在上篇《HarmonyOS开发&#xff1a;UI开展前的阶段总结》中提到了未来的规划&#xff0c;既能让大家学会鸿蒙开发&#xff0c;也能让大家在以后的开发中如虎添翼&#xff0c;最终决定&#xff0c;便以脚手架为产出物&#xff0c;结合实际的业务需求&#xff0c;进行相关技…

分享职业技术培训类型

职业技术培训类型包括&#xff1a;Python技术应用、人工智能应机器学习、大数据分析、机器学习。 一、“Python技术应用工程师” “Python技术应用工程师”职业技术认证是由工业和信息化部教育与考试中心推出一套专业化、科学化、系统化的人才考核标准&#xff0c;涉及在互…

【前端学java】Java中的异常处理(15)完结

往期回顾&#xff1a; 【前端学java】JAVA开发的依赖安装与环境配置 &#xff08;0&#xff09;【前端学java】java的基础语法&#xff08;1&#xff09;【前端学java】JAVA中的packge与import&#xff08;2&#xff09;【前端学java】面向对象编程基础-类的使用 &#xff08;…

Windows系统搭建VisualSVN服务并结合内网穿透实现公网访问

目录 前言 1. VisualSVN安装与配置 2. VisualSVN Server管理界面配置 3. 安装cpolar内网穿透 3.1 注册账号 3.2 下载cpolar客户端 3.3 登录cpolar web ui管理界面 3.4 创建公网地址 4. 固定公网地址访问 总结 前言 SVN 是 subversion 的缩写&#xff0c;是一个开放源…

Chat GPT 用于论文润色,常用指令这里都全了

ChatGPT在多个方面对科研人员提供帮助&#xff0c;其中之一就是SCI论文润色&#xff0c;通过输入论文的摘要、引言或者段落&#xff0c;科研人员可获得ChatGPT生成的回复&#xff0c;包括修改建议、语法纠正、表达方式优化等。 指令润色 比如&#xff1a; 请帮我润色论文&am…

【【VDMA彩条显示实验之四 含C语言代码】】

VDMA彩条显示实验之四 含C语言代码 VTC 手册简介 所有的视频都需要有时序 有时序的地方就需要有 时序控制器 VTC的 主要作用是 产生 视频时序 相对于上一节 在这里 我们会理解的更多 观察 这个 HB 信号 其实这个和上一节的图片差不多 在 行同步信号 前面就是前沿 在 行同步…

基于SSM的高校毕业设计选题管理系统(有报告)。Javaee项目。

演示视频&#xff1a; 基于SSM的高校毕业设计选题管理系统&#xff08;有报告&#xff09;。Javaee项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring S…

可逆矩阵的性质

如果矩阵A可逆&#xff0c;那么它的逆矩阵也可逆&#xff0c;并且如果矩阵A可逆&#xff0c;假设是一个不为0的数&#xff0c;那么也可逆&#xff0c;并且如果矩阵A和都可逆&#xff0c;而且它们的阶数也相同&#xff0c;那么它们的乘积也是可逆的&#xff0c;并且如果矩阵A可逆…

详解SwinIR的论文和代码(SwinIR: Image Restoration Using Swin Transformer)

paper&#xff1a;https://arxiv.org/abs/2108.10257 code&#xff1a;https://github.com/JingyunLiang/SwinIR 目录 1. Swin Transformer layers1.1 局部注意力1.2 移动窗口机制1.3 关键代码理解 2. 整体网络结构2.1 浅层特征提取2.2 深层特征提取2.3 图像重建 3.总结 SwinI…

同城跑腿服务预约小程序的作用是什么

随着生活质量逐渐提升&#xff0c;围绕人们生活的行业或产品非常多&#xff0c;同时互联网赋能下&#xff0c;也出现了很多便捷人们日常消费的场景&#xff0c;如外卖服务、快递服务等。 跑腿仅依赖微信私聊及电话预约是很低效且容易出错及造成极大工作压力的&#xff0c;同时…

基于一致性算法的微电网分布式控制MATLAB仿真模型

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 本模型主要是基于一致性理论的自适应虚拟阻抗、二次电压补偿以及二次频率补偿&#xff0c;实现功率均分&#xff0c;保证电压以及频率稳定性。 一致性算法 分布式一致性控制主要分为两类&#xff1a;协调同…

Linux入门攻坚——6、磁盘管理——分区及文件系统管理

磁盘管理主要涉及分区的管理&#xff0c;以及分区后的文件系统管理。 磁盘的使用大体要分两步&#xff1a; 文件系统也是一个软件&#xff0c;根是自引用的。 文件系统的全局结构&#xff1a;物理格式&#xff1a; 一个磁盘刚被生产出来的时候&#xff0c;它里边没有划分扇区…

【Go入门】Web工作方式

【Go入门】 Web工作方式 我们平时浏览网页的时候,会打开浏览器&#xff0c;输入网址后按下回车键&#xff0c;然后就会显示出你想要浏览的内容。在这个看似简单的用户行为背后&#xff0c;到底隐藏了些什么呢&#xff1f; 对于普通的上网过程&#xff0c;系统其实是这样做的&…

基于RK3588的8k多屏异显安卓智能网络机顶盒

采用RK3588芯片方案的8K网络机顶盒&#xff0c;搭载纯净的安卓12操作系统&#xff0c;支持Ubuntu和Debian系统容拓展。主要面向外贸市场。此款机顶盒自带两个HDMI输出接口&#xff0c;一个HDMI输入接口&#xff0c;内置双频WiFi6无线模块&#xff0c;支持千兆以太网和USB接口。…

【文末送书】十大排序算法及C++代码实现

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。关…

微创机器人:CRM撬动售后服务数字化升级

一方面&#xff0c;我国医疗器械行业起步较晚&#xff0c;更注重产品的销售和业务的拓展&#xff0c;企业售后服务整体比较滞后。 另一方面&#xff0c;医疗器械售后服务环节数字化程度不足&#xff0c;一些企业仍通过传统的线下手段管理售后服务&#xff0c;进行数字化尝试的…

【快速解决】实验四 对话框 《Android程序设计》实验报告

目录 前言 实验要求 实验四 对话框 正文开始 第一步建立项目 第二步选择empty views activity点击next ​编辑 第三步起名字&#xff0c;点击finish 第四步对 activity _main.xml文件操作进行布局 第五步&#xff0c;建立两个新文件&#xff0c;建立方法如下 SecondA…