Java Web实战(三)Web后端之MySQL语法使用详解-01

目录

    • MySQL数据模型
    • SQL 分类
    • DDL(Data Definition Language)
      • database
      • table
    • DML(Data Manipulation Language)
    • DQL (Data Query Language)
      • 条件查询
      • 统计
      • 分组、排序、分页
    • 案例:根据页面原型分析需求完成员工信息查询

MySQL数据模型

database table record

SQL 分类

简称全称描述
DDLData Definition Language数据定义语言,用来定义数据库对象(数据库,表,字段)
DMLData Manipulation Language数据操作语言,用来对数据库表中的数据进行增删改
DQLData Query Language数据查询语言,用来查询数据库中表的记录
DCLData Control Language数据控制语言,用来创建数据库用户、控制数据库的访问权限

DDL(Data Definition Language)

database

create database if not exists student_info;
show databases;
use database student_info;
select database();  --查看 当前数据库
drop database if exists student_info;

table

约束是作用于表中字段上的规则, 用于限制存储在表中的数据, 保证数据库中数据的正确性、有效性和完整性。

约束描述关键字
非空约束限制该字段值不能为nullnot null
唯一约束保证字段的所有数据都是唯一、不重复的unique
主键约束主键是一行数据的唯一标识,要求非空且唯一primary key
默认约束保存数据时,如果未指定该字段值,则采用默认值default
外键约束让两张表的数据建立连接,保证数据的一致性和完整性foreign key

那么假如要建立这样一张表, (id, username, name, age, gender), 要求id为主键, username唯一且非空. 则有:

create table if not exists tb_user{id int primary key auto increment comment '用户ID, 唯一标识',username varchar(20) unique not null comment '用户名, 非空且唯一',name varchar(10) comment '姓名',age int comment '年龄',gender char(1) default '男' comment '性别'
} comment '用户表';

在员工管理系统中, 有这样一个表格(tb_emp), 请在 IDEA 中实现它

字段名称必填/选填类型长度限制输入限制是否唯一
用户名必填输入框2-20数字、字母
员工姓名必填输入框2-10汉字
性别选填下拉框-选择 男/女
图像选填图片上传2M图片大小不能超过2M
职位选填下拉框-选择 班主任/讲师/学工主管/教研主管
入职日期选填日期选择组件-格式为:xxxx-xx-xx
归属部门选填下拉框-选择该员工所属的部门,关联到部门表

添加员工时,会给员工设置一个默认的密码 123456,添加完成后,员工就可以通过该空码登录该后台管理系统了

添加一条记录时, 还会保存它的 添加时间(或称为 入职时间)

更新一条记录时, 还会保存它的 更新时间

DML(Data Manipulation Language)

添加数据 (INSERT)
修改数据 (UPDATE)
删除数据 (DELETE)

  1. tb_emp 表插入几条数据
    insert into tb_emp(username,name, gender,create time,update time) values ('wuji','张无忌',1,now() ,now());
  2. 更新其中的一条数据
    update tb_emp set name = '张三', update_time = now() where id=1;
  3. 删除表格数据
    delete from tb_emp where xxx;

DQL (Data Query Language)

  • 基本查询 (select attrs from table)
  • 条件查询 (where condition)
  • 分组查询 (group by some attr)
  • 排序查询 (order by some attr)
  • 分页查询 (limit start_index, record counts)

条件查询

  1. 查询姓名为 景天 的员工信息
  2. 查询 没有分配职位 的员工信息
  3. 否询 入职日期 在2000-01-01(包含) 到2010-01-01(包含)之的员工信息
  4. 查询 姓名 为两个字的员工信息
  5. 查询 职位是 2 (讲师),3 (学工主管),4 (教研主管) 的员工信息
  6. 查询 姓张的员工信息
    select * from tb_emp where name like '张%'

统计

  1. 统计 tb_emp 记录条数:
    select count(*) from tb_emp;
  2. 统计该企业最早入职的员工
    select min(entrydate) from tb_emp;
  3. 统计该企业最迟入职的员工 - max
  4. 统计该企业员工 ID 的平均值 - avg
  5. 统计该企业员工 ID 之和 - sum

分组、排序、分页

  1. 先查询入职时间在2015-01-01(包含)以前的员工, 并对结果根职位分组, 获取员工数量大于等于2的职位:
    select job,count(*) from tb_emp where entrydate <= '2015-01-01' group by job having count(*) >= 2;
  2. 根据入职时间,对员工进行升序排序
  3. 根据入职时间,对员工进行降序排序
    select * from tb_emp order by entrydate desc;
  4. 根据 入职时间 对公司的员工进行 升序排序 , 入职时间相同 , 再按照 更新时间 进行降序排序
    select * from tb_emp order by entrydate ,update_time desc;
  5. 假设每页展示10条数据, 现在要查询第5页的数据
    select * from tb_emp limit 40, 10

案例:根据页面原型分析需求完成员工信息查询

  1. 页面一: 条件查询
    根据输入的 员工姓名、员工性别、入职时间 搜索满足条件的员工信息。
    其中 员工姓名 支持模糊匹配; 性别 进行精确查询,入职时间 进行范围查询
    支持分页查询
    并对查询的结果,根据最后修改时间进行倒序排序.
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 0,10;
  1. 统计分析
    性别分布
select if(gender = 1'男性员工', '女性员工') 性别, count(*) from tb _emp group by gender;

职位分布

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

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

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

相关文章

DAMA考试知识点

数据管理的定义: 数据管理是为了交付、控制、保护并提升数据和信息资产的价值&#xff0c;在其整个生命周期中制定计划、制度、规程和实践活动&#xff0c;并执行和监督的过程。 数据管理专业人员的定义: 是指从事数据管理各方面的工作(从数据全生命周期的技术管理工作&#x…

【科研必备教程】ChatGPT、气象、生态、遥感、水文、洪水、语言、地质、AI人工智能等领域模型应用

针对ChatGPT、遥感、ArcGIS、无人机、水文模型、大气科学、生态系统模型、地下水土壤、数据语言、生物信息、AI人工智能、碳排放等科研领域教程。 ChatGPT专栏1最新ChatGPT支持下的PyTorch机器学习与深度学习实践技术应用2基于ChatGPT4Python近红外光谱数据分析及机器学习与深…

智海Mo 平台与 Datawhale 携手浙江大学,共襄 AI+X 高校行!

2024年3月9日&#xff0c;一场以"AIX 高校行"为主题的活动在浙江大学成功举办。本次活动由 Datawhale 与杭州市人工智能学会主办&#xff0c;浙江大学人工智能研究所、浙江大学控制科学与工程学院联合主办&#xff0c;浙江大学学生人工智能协会承办&#xff0c;趋动云…

工业智能网关的网关模式和交换机模式有哪些区别

工业智能网关主要用以实现工业物联网络中不同设备和系统之间的通信&#xff0c;工业智能网关常见的两种工作模式是网关模式和交换机模式&#xff0c;在功能和应用场景上存在显著差异&#xff0c;本篇就为大家简单介绍一下两者之间的主要区别&#xff1a; 1、网关模式 工业智能…

利用百度竞价排名推广增加转化率-华媒舍

在数字营销领域&#xff0c;提高网站转化率是一个重要的目标。百度竞价排名是一种有效的推广方式&#xff0c;通过提高网站在搜索结果中的排名&#xff0c;能够吸引更多的用户点击&#xff0c;并且增加转化率。本文将介绍如何利用百度竞价排名来推广&#xff0c;并且提供一些最…

week06 day04 (数据库高级函数 procedure 、sql写函数)

一. ER模型 矩形&#xff1a; 代表实体椭圆&#xff1a;代表实体的属性菱形&#xff1a;relation 代表实体之间的关系 二. 存储过程&#xff08;procedure&#xff09; 1. 语法 语法: create procedure 存储过程名(参数,…) begin//代码 end// 注意&#xff1a; 因为在存储…

Java中 常见的开源图库介绍

阅读本文之前请参阅------Java中 图的基础知识介绍 在 Java 中&#xff0c;有几种流行的开源图库&#xff0c;它们提供了丰富的图算法和高级操作&#xff0c;可以帮助开发者更高效地处理图相关的问题。以下是几种常见的 Java 图库及其特点和区别&#xff1a; JGraphT …

阳光保险MySQL数据库平稳迁移OceanBase,稳定运营超700天

作者简介&#xff1a; 车东兴&#xff1a;于阳光保险就职&#xff0c;深耕保险行业的 IT 领域长达12 年&#xff0c;对保险领域的基础架构实践有深刻的理解与掌握。熟悉多款数据库&#xff0c;具有丰富的数据库运维经验。 王华城&#xff1a;于阳光保险就职&#xff0c;10多年一…

红帽认证RHCE好考吗?多长时间能考下来?报名费多少一门?哪些人适合考红帽认证?

一、红帽认证等级 红帽认证考试有三个等级&#xff0c;分别是RHCSA&#xff08;红帽认证系统管理员&#xff09;&#xff0c;RHCE&#xff08;红帽认证工程师&#xff09;&#xff0c;RHCA&#xff08;红帽认证架构师&#xff09;。RHCA是最高级别的认证。 二、RHCE考试 1、考…

C语言数据结构之堆排序

青衿之志 履践致远 堆排序(Heapsort) 是指利用 堆 这种数据结构所设计的一种排序算法&#xff0c;它是 选择排序 的一种。它是通过堆来进行选择数据。需要注意的是排升序要建大堆&#xff0c;排降序建小堆。 &#x1f3a5;二叉堆 &#x1f3a5;二叉树 &#x1f525;期待小伙伴们…

惰性删除、定期删除和Redis的淘汰策略有什么区别?

惰性删除&#xff08;Lazy Expiration&#xff09;和定期删除&#xff08;Periodic Expiration&#xff09;是Redis处理键过期的两种策略&#xff0c;它们共同作用以确保过期数据能够被有效地清理&#xff0c;但主要针对的是带有过期时间的键。 惰性删除&#xff1a; 当客户端尝…

sql面试题21:营销带货销量分析

题目大概意思&#xff1a; 找出网红带来的订单号和销售额&#xff08;销售额是该订单的&#xff0c;比如凑单&#xff09;&#xff0c;满足是优惠码是1的&#xff0c;B类商品 数据表两个&#xff0c;分别是订单和品类 CREATE TABLE 订单 (订单号 VARCHAR(512),商品号 VARCH…

常用的gpt网站

ChatGPT是一款基于人工智能技术的对话型AI助手&#xff0c;能够进行自然语言交互并提供个性化的对话服务。通过先进的深度学习模型&#xff0c;ChatGPT能够理解用户输入的文本&#xff0c;并生成有逻辑、连贯性的回复。它可以回答各种问题、提供建议、分享知识&#xff0c;还能…

如何使用US Domain Center和WordPress搭建非营利组织网站的详细指南

在今天的数字化时代&#xff0c;拥有一个专业、易于管理和更新的网站对于非营利组织&#xff08;例如慈善机构、NGO等&#xff09;至关重要。WordPress是一个功能强大且易于使用的网站构建平台&#xff0c;而美国域名中心 US Domain Center&#xff1a;US Domain Center 则是一…

如果需要在Log4j中记录特定的异常信息,应该如何实现?如何动态地更改Log4j的日志级别?

如果需要在Log4j中记录特定的异常信息&#xff0c;应该如何实现&#xff1f; 在Log4j中记录特定的异常信息&#xff0c;你可以使用Logger类的error、warn、info等方法&#xff0c;这些方法通常接受一个字符串消息和一个Throwable对象&#xff08;如异常&#xff09;作为参数。下…

嵌入式学习37-TCP并发模型

TCP并发模型: 1.TCP多线程模型: 缺点: 1.创建线程会带来 资源开销 2.能够实现的 并发量 比较有限 2.IO模型: 1.阻塞IO: 没有…

群晖NAS使用Docker安装WPS Office并结合内网穿透实现公网远程办公

文章目录 推荐1. 拉取WPS Office镜像2. 运行WPS Office镜像容器3. 本地访问WPS Office4. 群晖安装Cpolar5. 配置WPS Office远程地址6. 远程访问WPS Office小结 7. 固定公网地址 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff…

optee默认安全配置

OP-TEE&#xff08;Open Portable Trusted Execution Environment&#xff09;是一个开源的可移植的可信执行环境&#xff08;TEE&#xff09;&#xff0c;用于提供安全和受保护的执行环境。它旨在为基于 ARM 架构的设备提供强大的安全性和隔离能力。 OP-TEE 主要由两部分组成…

社交创新的先锋:探秘Facebook背后的故事与智慧

起源与初创阶段 Facebook的故事始于2004年&#xff0c;由马克扎克伯格&#xff08;Mark Zuckerberg&#xff09;、埃迪华索伦&#xff08;Eduardo Saverin&#xff09;、安德鲁麦克卡拉姆&#xff08;Andrew McCollum&#xff09;、克里斯休斯&#xff08;Chris Hughes&#x…

如何保证消息的顺序性

先看看顺序会错乱的场景&#xff1a;RabbitMQ&#xff1a;一个 queue&#xff0c;多个 consumer&#xff0c;这不明显乱了&#xff1a; 解决方案&#xff1a;