数据库学习记录(一)基础语法与单表查询

基础sql语句分类

DDL操作(图形化界面)

用来定义数据库对象的,例如创建数据库,创建表单

数据库操作

 表操作

DML操作(掌握)

1、insert为添加语句,该语句功能是添加相关数据到表结构中

下面为添加一个用户的部分属性,一个用户的全部属性,多个用户的属性的insert语句

-- 添加一个员工部分信息进入表格
insert into tb_emp(username, position, date, part) VALUES ('zhangsan','经理','2020-09-25','销售部');
-- 添加一个员工的所有信息进入表格
insert into tb_emp values (null,'ahui','男','讲师','2020-05-23','教学部');
-- 批量的添加员工信息进入表格
insert into tb_emp(id, username, gender, position, date, part) VALUES (null,'李四','男','经理',now(),'教学部'),(null,'wangwu','女','员工',now(),'教学部');

2、update为修改语句,可以修改指定数据的值

下面为一个修改id值为1的员工的数据代码演示

-- 修改id为1的员工职位为经理,部门所属part为管理层
update tb_emp set position = '经理',part = '管理层' where id = 1;

如果需要修改表中所有位置的某一数据,那么不用指定where,例如修改表中所有员工的入职时间为2020-02-01,具体sql代码如下:

-- 修改表中所有员工的入职时间为2020-02-01
update tb_emp set date = '2020-02-01';

 3、delete为删除操作语句,该语句为删除带有相关数据的行

删除id为6的员工信息,如下:

-- 删除id为6的员工信息
delete from tb_emp where id = 6;

(注意:delete语句是用来删除整行的数据,也就是一个对象,如果要删除某个对象的某个属性,那么可以使用update将该属性值设置为null)

数据库操作DQL语句查询数据(重点掌握)

单表查询

基本查询

 查询多个字段和所有字段代码如下:

-- 查询指定字段并返回
select name,gender from tb_emp;
-- 查询所有字段,两种实现方式
select id, username, password, name, gender, image, job, entrydate, create_time, update_time from tb_emp;
select * from tb_emp;

查询字段名为name,gender的数据并起别名,让显示的时候以别名显示

-- 查询所有的name和gender,并给其起别名姓名和性别
-- as关键字可以省略
select name as '姓名', gender as '性别' from tb_emp;

查询表中所有job的职位,要求不显示重复

-- 查询表里所有的job类型,不要重复
select distinct job from tb_emp;

条件查询

就是使用select语句后面where添加相应的查询条件。

如查询姓张的员工:这时就是在tb_emp这个表中的所有数据去进行like模糊查找'张%'的员工信息,此时%表示多个字符的占位符。

-- 查询姓张的员工
select * from tb_emp where name like '张%';

 分组查询

1、count函数

查询表中有多少行,此时的行就是代表的表中有多少对象,用count函数,代码如下:

-- 查询表中有多少员工,只要不为null都能被count所记录
select count(*) from tb_emp;
2、min函数

min函数就是查询最小值的方法,传入相关字段,能获取到该字段的最小值(不是对象),如员工年龄age最小为21,那么在查询方法中使用min(age)得到的值就是21。如下:

-- 查询入职最早的员工
select min(entrydate) from tb_emp;
3、max函数

与min函数对应的是max函数,该函数会找到传入字段的最大值,用法与min完全一致,如下:

-- 查询最晚入职的员工
select max(entrydate) from tb_emp;

4、avg函数与sum函数

avg为求字段所有值的平均值,sum为求字段所有值的和

-- 查询员工ID的平均值以及ID的和
select avg(id) from tb_emp;
select sum(id) from tb_emp;

分组查询的具体实现方法如下:

查询一个表中男女性别分别的数量,使用分组查询配合count(*)得出需要查询的数量

-- 分别查询男性和女性的人数
-- 这里前面的gender表示显示的性别,后面的count(*)表示查询的数量,后面的分组表示按性别进行分组查询
-- 结合起来就是按照性别进行分组查询,显示出性别和俩个性别的人数
select gender,count(*) from tb_emp group by gender;

利用分组查询:查询入职时间在'2015-01-01’(包含)以前的员工,并对结果根据职位分组,获取员工数量大于等于2的职位。

分析:先进行分组,查询到相应职位的数量,最后再通过在having后面加筛选条件进行筛选得到员工数量大于等于2的职位,这样的话就能获得上述需要的结果

-- 结合相关的sql语句进行相关的查询数量
select job,count(*) from tb_emp where entrydate <= '2015-01-01' group by job having count(*) >= 2;

 排序查询

如果存在分组查询就是在分组查询之后添加上order by字段加排序方式。如果没有直接加上order by 后面跟上进行排序的字段和规则,可以跟多个,但是排序时是按照从前往后的规则进行排序的,即只有前面的字段出现相同情况时,才会在前一个排序的基础上根据第二个字段排序

-- 根据入职时间对公司员工进行升序排序,如果入职时间相同,再按照更新时间进行降序排序
select * from tb_emp order by entrydate asc ,update_time desc;

分页查询

例如查询表从0索引和6索引的员工信息,代码如下:相当于一页有5个数据,且一次是查询5个数据,那么一次查询就是查询一页的信息。

-- 从0索引开始查询员工数据,每页展示5条数据
-- 这是0索引开始的员工数据
select * from tb_emp limit 0,5;
-- 这是从5索引开始的员工数据
select * from tb_emp limit 5,5;
if表达式和case表达式的使用

if表达式:格式if(条件表达式,true的取值,false的取值)后面可以添加别名
-- 查找男性女性的人数
-- if表达式:格式if(条件表达式,true的取值,false的取值)后面可以添加别名
select if(gender = '1','男性','女性') 性别,count(*) from tb_emp group by gender;
case表达式:格式 case 表达式 when 条件1 then 结果1 when 条件2 then结果2.......else...end
-- 查找员工职位的分布
-- case表达式:格式 case 表达式 when 条件1 then 结果1 when 条件2 then结果2.......else...end
select (case jobwhen 1 then '教学主任'when 2 then '班主任'when 3 then '管理人员'when 4 then '教研主管'else '无业游民' end)职位,count(*)
from tb_emp
group by job;

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

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

相关文章

学习笔记 | 微信小程序项目day04

今日学习内容 热门推荐下转页面 热门推荐下转页面 1、定义类型 import type { PageResult, GoodsItem } from ./global/** 热门推荐 */ export type HotResult {/** id信息 */id: string/** 活动图片 */bannerPicture: string/** 活动标题 */title: string/** 子类选项 */…

开源的OCR工具基本使用:PaddleOCR/Tesseract/CnOCR

前言 因项目需要&#xff0c;调研了一下目前市面上一些开源的OCR工具&#xff0c;支持本地部署&#xff0c;非调用API&#xff0c;主要有PaddleOCR/CnOCR/chinese_lite OCR/EasyOCR/Tesseract/chineseocr/mmocr这几款产品。 本文主要尝试了EasyOCR/CnOCR/Tesseract/PaddleOCR这…

【开源】SpringBoot框架开发不良邮件过滤系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统用户模块2.2 收件箱模块2.3 发件箱模块2.4 垃圾箱模块2.5 回收站模块2.6 邮箱过滤设置模块 三、实体类设计3.1 系统用户3.2 邮件3.3 其他实体 四、系统展示五、核心代码5.1 查询收件箱档案5.2 查询回收站档案5.3 新…

C语言 数组

文章目录 1.一维数组2.二维数组3.冒泡排序4.一维函数的数组名5.二维数组的数组名 1.一维数组 语法形式&#xff1a;type_t arr_name [const_n] 数组是一组相同类型元素的集合 type_t是指数组的元素类型 arr_name是指数组的名称 const_n是一个常量表达式&#xff0c;用来指定数…

mongoDB7.0.6版安装与使用(最新版踩坑记录)

这里写自定义目录标题 0.前言1.MongoDB下载与安装2.启动服务及验证3.命令行访问4.navicat访问5.停止服务 0.前言 本文总结了最近版mongoDB下载安装的过程及简单的应用&#xff0c;整个过程不涉及修改配置文件&#xff0c;甚至不用设置用户名密码也不用登录认证&#xff0c;在进…

HarmonyOS NEXT应用开发—投票动效实现案例

介绍 本示例介绍使用绘制组件中的Polygon组件配合使用显式动画以及borderRadius实现投票pk组件。 效果预览图 使用说明 加载完成后会有一个胶囊块被切割成两个等大的图形来作为投票的两个选项&#xff0c;中间由PK两字分隔开点击左边选项&#xff0c;两个图形会随着选择人数…

Java城管智慧执法管理系统源码带APP

目录 一、系统概述 二、系统开发环境 三、功能模块 四、应用价值 1、提升案件办理效率 2、提升监管效能 3、提升行政执法水平 4、推进行政执法创新 一、系统概述 智慧城管系统是一个基于现代信息技术手段的综合管理平台&#xff0c;旨在通过强化信息获取自动化、监督管…

官宣!眉州东坡终生认养大熊猫“星星”

2024年03月19日,眉州东坡终生认养大熊猫“星星”签约仪式暨第八届有机川熊猫竹笋节在北京和重庆同时举行。眉州东坡董事长王刚先生、重庆动物园副处长殷毓中先生等嘉宾在重庆共同出席了此次认养仪式,重庆动物园向眉州东坡授予大熊猫终生认养证书,宣布星星正式加入眉州东坡大家庭…

Game of Nodes 16进8

KNIME 还可以用成这样? 是不是有点过分了。 Tableau, PowerBI 同学请绕行&#xff0c;我们讨论的不是同一个东西... 由于 Game of Nodes 没有公开题目&#xff0c;且各个小组赛的题目也是不一样的&#xff0c;在这里我们只能通过拼接图来猜想小组赛题目了。 有的解决方案我甚至…

Android源码阅读 SharedPreferences - 1

目录 前言 正文 SharedPreferences.java PreferenceManager.java ContextImpl.java 前言 由于笔者目前水平限制&#xff0c;表达能力有限&#xff0c;尽请见谅。 SharedPreferences提供了一种轻量级的数据存储方式&#xff0c;允许保存和获取简单的键值对。它适用于保存少…

中霖教育:一级建造师和一级造价师通过率高吗?

在建筑工业领域&#xff0c;一级建造师和一级造价工程师考试都是比较热门的考试&#xff0c;每年参加的人数都非常多&#xff0c;如果只备考一个的话&#xff0c;2024年选择哪项考试更为合适? 一建和一造的平均通过率均未超过10%&#xff0c;两者难度相近&#xff1a; 1. 一…

力扣刷题---岛屿问题--c++

DFS&#xff1a;深度优先遍历&#xff1a;深度优先遍历是一种优先走到底、无路可走再回头的遍历方式 我们所熟悉的 DFS&#xff08;深度优先搜索&#xff09;问题通常是在树或者图结构上进行的。而我们今天要讨论的 DFS 问题&#xff0c;是在一种「网格」结构中进行的。岛屿问题…

源码部署LAMP架构

LAMP 文章目录 LAMP1. lamp简介2. web服务器工作流程2.1 cgi与fastcgi2.2 httpd与php结合的方式2.3 web工作流程 3. LAMP平台构建3.1 安装httpd3.2 安装mysql3.3 安装php3.4 验证 1. lamp简介 有了前面学习的知识的铺垫&#xff0c;今天可以来学习下第一个常用的web架构了。 …

【基于HTML5的网页设计及应用】——动态添加下拉菜单

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

什么是增强型SSL证书?购买一张需要多少钱?

增强型SSL证书是一种提供更高级别安全验证与用户信任度的网络安全工具&#xff0c;也被称为EV证书。相较于DV&#xff08;域名验证&#xff09;和OV&#xff08;组织验证&#xff09;证书&#xff0c;它通过严格的身份核实流程确保网站所有者的合法性和真实性。 首先&#xff0…

【C++】string 类---字符判断与大小写转换(超详细解析!)

目录 一、string 类的介绍 二、字符大小写转换与判断常用函数 &#x1f4a6; 字符大小写判断 ① isalpha() ② isalnum() ③ isdigit() ④ islower() ⑤ isupper() &#x1f4a6; 字符大小写转换 ① tolower() ✨方法一&#xff1a; ✨方法二&#xff1a; ② toupper() ✨方…

【MySQL】MySQL视图

文章目录 一、视图的基本使用1.创建视图2.修改了视图&#xff0c;对基表数据有影响3.修改了基表&#xff0c;对视图有影响4.删除视图 二、视图规则和限制 一、视图的基本使用 视图是一个虚拟表&#xff0c;其内容由查询定义。同真实的表一样&#xff0c;视图包含一系列带有名称…

【springboot】@SpringBootApplication 加载原理解析

从何处放入 AutoConfigurationImportSelector.selectImports AbstractApplicationContext.refresh AbstractApplicationContext.invokeBeanFactoryPostProcessors PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors 此处一个关键信息 只有BeanDefinition…

Html Open with Live Server 报错windows找不到文件

输入setting.json 填入你的浏览器路径 即可

【Qt】Qt代码格式化配置

这里记录一下个人使用的格式化配置: 个人使用的格式化工具Artistic Style格式化信息&#xff1a; --stylelinux #&#xff1a;Linux 风格格式和缩进 #--stylekr #indentspaces4 # 缩进采用4个空格 -A1 #使用AllMan程序风格&#xff0c;即大括号另起一行。 indent-switche…