MySQL--增、删、改、查,
-
数据库的概述、发展、现状、历史、分类
-
MySQL关系型数据库、架构(C/S)
-
window系统安装MySQL数据库
-
Linux系统【选学】
-
数据库对象——数据库(database)
-
show、create、drop命令
-
数据库对象——表(table)
-
数据类型
-
数据库表的约束
-
表结构的调整(alter)
-
数据库授权和权限管理(grant)
-
数据库的编码情况【编码一致,建议统一采用utf8mb4】
今日目标
-
数据库的CRUD
-
单表的增删改查
-
多表的关联查询
SQL分类
-
DDL 数据定义语言 create drop
-
DML 数据管理语言 CRUD
-
增删改 (更新)
-
DQL 数据查询语言
-
-
DCL 数据控制语言
DML语句
添加数据
insert指令
注意:SQL语句不区分大小写,也就是大小写一致!!
# 语法结构
insert into 表名称[(字段1 [,字段2, ……])] {values|value}(字段值, [……]) [,()];
# 注意:如果主键自增,可以使用null或者default关键字填充
# 其他字段,如果存在默认值,则使用default关键字填充
INSERT INTO t_user values(null, "刘建宏", 20, "陕西西安", "110", default);
# 也可以自己指定默认值存在项
INSERT INTO t_user values(7, "刘建宏", 20, "陕西西安", "110", 30);
INSERT INTO t_user value(8, "赵帅", 25, "陕西安康", "120", 25);
insert into t_user(name) values ("流川枫");
删除数据
DELETE指令
注意:where关键字,必须存在条件时才能出现
SQL中,单引号和双引号是一样的
delete from 表名称 [where 一个或者多个条件];
truncate指令
该指令也可以删除数据,注意:这种数据删除不通过数据字典,是无法恢复的,请慎用!!!!
主要使用场景:清除测试数据!!!!
增加数据
update指令
update 表名称 set 字段名称=新的值 [,字段=xxx [,……] [where 条件];
replace语句
replace语句结构和insert的语法结构一模一样
replace into 表名称[(字段1 [,字段2, ……])] {values|value}(字段值, [……]) [,()];
注意:replace 的sql语句,是集更新和插入于一体的一个SQL。
如果插入的数据不存在(主键、unqiue修饰的字段),执行insert执行
如果插入的数据存在(主键、unqiue修饰的字段),则先执行删除语句,再执行insert语句。
查询语句(select)
使用select查询数据库表中的某些数据。
select 语法结构
select {字段|函数|其他} from 表名称 [where]
select的特殊使用
select 可以用来计算数据,在开发中,如果数据类那些个不是数值,注意,从第一个位置它会尽可能转换为数值。
select 100 + 200;
select '100' + 200;
select '100' + '200';
select 100 + "刘建宏";
select 100 + "200刘建宏";
select 100 + "刘建宏200";
select 'a' + "b"; # 0
select null + 30 + '刘建宏'; # 只要其中一个为NULL,则结果为NULL
select也支持函数使用。select user(); # 查询当前登录用户
select database(); # 查询所属的数据库
select uuid() # 生成一个UUID值, uuid值的特点是,永不重复的一个字符串
select查询数据select 字段 from 表名称
select * from user;
select id, name from user;
select id, name, gender, address, age from user;
早晨内容回顾
-
前三章的内容回顾
-
增删改查的基本语法
insert into 表名称 values()
delete from 表名称 [where 条件]
truncate语句 truncate 表名称
update 表名称 set 字段 = 新值 ,xxxx
repalce into 表名称 values()
select 表达式;
select 函数()
select {* | 字段名称 [, 字段名称..] } from 表名称
select条件查询
select * from t_user;
select id, name, age from t_user;
# 等值条件 =
select address from t_user where id = 1;
select age from user where name="刘建宏";
# 关系条件
-- > < >= <= != = <>
# 判断是否为空
# is关键字 is null is not null
select * from user where address is NULL;
select * from user where address is not NULL;
# <=> 符号
# 充当等号的作用
# 可以用来判断空
select * from user where age <=>18;
select * from user where gender <=> null;
# 多个条件
# 逻辑运算符
# and 并且
# or 或者
# not 不是,取反
select * from user where age = 18 and gender = "男" and id > 10;
select * from user where age = 18 or gender = "女";
select name from user where gender is not null;
select name from user where not gender = "男";
# 范围
update user set age = 25 where id >= 6 and id <= 10;
update user set age = 16 where id between 12 and 15;select * from user where not (age < 20 or age > 25);# 注意:条件的执行顺序问题!!!select * from user where not age < 20 or age > 25;# 列举 in not inselect * from user where id in (1,3,8,10);select * from user where id not in (1,3,8,10);# 去重效果# 使用distinct关键字去掉重复值select distinct age from user;
日期的格式:使用字符串来表示
"yyyy-mm-dd" 如 '2000-03-30' ‘yyyy/mm/dd’ 如 '2024/5/11' 'hh:mm:ss' 如 ‘12:12:21’ "yyyyy-mm-dd hh:mm:ss" ‘2020-3-4 16:05:30’
模糊查询
使用like关键字进行模糊匹配
% 匹配0到多位
_ 匹配一个具体的位
select * from user where name like "%亮";
select * from user where name like "%亮%";
select * from user where name like "%张%";
select * from user where name like "张%";
# 表示第二个字是“绣”
select * from user where name like "_绣%";
正则查询
select * from user where name regexp "^张"; select * from user where name regexp "亮$";
复杂查询
分组查询
将数据相同的,会放在同一个组中,也就是,不会出现重复数据。往往是用来做数据分析。
select 字段
from 表名
[where 条件]
group by 字段 [, 字段 [,……]]
案例
-- 统计不同性别的人数 select count(gender), gender from user group by gender;
having语句
having语句,是配合分组使用,是分组后的筛选!!!!
select 字段 from 表名 [where 条件] group by 字段 [, 字段 [,……]] having 筛选条件
案例:
select gender, count(gender) from user group by gender having count(gender) > 8;
select gender, count(gender) from user where age >= 18 group by gender having count(gender) > 5;
聚会函数-count
统计数据
select count(id) from user;
select count(gender) from user;
select count(id) from user;
select count(1) from user;
select count(1) from user where gender="男";
排序
order by 字段 [{asc | desc }]
如果存在排序,必须是在分组之后
select 字段
from 表名
[where 条件]
[group by 字段 [, 字段 [,……]] ]
[having 筛选条件]
order by 字段 [{asc | desc }] [, 字段 [{asc | desc }]]
案例
select * from user order by age ;
select * from user order by age desc;
select * from user order by age asc;
select * from user order by age , id desc;
别名的使用
别名(alias ),就是将原有名称,重新赋予一个新的名称
在查询SQL时,可以将查询的结果重新设置名称(字段、表名称)。
字段 as 别名 ,as可以省略
select count(*) as count from user; select count(*) count from user;
分页查询
查询非常多,此时全部展示是不现实的,因此,需要通过分页展示部分数据
注意:不同的关系型数据库,实现分页效果,可能SQL不一样!!!
MySQL使用 limit关键字实现分页!!!
select 字段
from 表名
[where 条件]
[group by 字段 [, 字段 [,……]] ]
[having 筛选条件]
order by 字段 [{asc | desc }] [, 字段 [{asc | desc }]]
limit num [, num2];
limit num :表示要截取num条数据。
limit num1, num2 :表示num1为起始位【从0开始】, num2表示一页共显示多少数据。
分页实现时的几个关键变量:
当前页:默认为1,用户决定这个值 pageNow
页面的条数:一般有开发者定义 pageSIze
共有多少页:这个是需要算出来 pageCount
总条数:查询得到 allCount
select * from user limit pageSize * (pageNow - 1) , pageSize;
多表关联查询
为什么要设计多张表?不把数据存储在一张表上呢?
分表的必要性
相关文章:
MySQL--增、删、改、查,
数据库的概述、发展、现状、历史、分类 MySQL关系型数据库、架构(C/S) window系统安装MySQL数据库 Linux系统【选学】 数据库对象——数据库(database) show、create、drop命令 数据库对象——表(tableÿ…...
5.12学习总结
一.JAVA聊天室项目 文件发送 使用 Java Socket 实现聊天内容或文件的传输的原理如下: 服务器端启动:聊天室的服务器端在指定的端口上监听客户端的连接。它创建一个 ServerSocket 对象,并通过调用 accept() 方法等待客户端的连接请求。客户…...
ansible利用playbook 部署lamp架构
搭建参考:ansible批量运维管理-CSDN博客 定义ansible主机清单 [rootansible-server ~]# vim /etc/hosts 192.168.200.129 host01 192.168.200.130 host02 [rootansible-server ~]# vim /etc/ansible/hosts [webserver] host01 host02 在ansible端编写index.html…...
SPI通信(使用SPI读写W25Q64)
SPI通信协议 • SPI(Serial Peripheral Interface)是由Motorola公司开发的一种通用数据总线 • 四根通信线: SCLK:串行时钟线,用来提供时钟信号的。 MOSI:主机输出,从机输入 MISO:从机输出,主机输入 SS:…...
<sa8650>QCX Usecase 使用详解—拓扑图 XML 定义
<sa8650>QCX Usecase 使用详解—拓扑图 XML 定义 一 、前言二、拓扑图 XML 定义2.1 <Node, port, link>2.2 < XML prolog >2.3 < UsecaseDef >2.4 < Usecase>2.5 < Targets>2.5.1 < Target>2.5.2 < Range>2.6 < Pipeline>2.…...
使用C++11实现Golang的defer功能
本文主要用C11标准来实现Golang的defer功能。 背景 目前笔者的主力语言是Golang,其次是C,再次是JS、Delphi。在Golang工程中大量使用了defer关键字实现函数的延迟调用。如打开文件的出错处理。近来在C工程中遇到类似需求,在函数返回时进行某…...
前端之电力系统SVG图低代码
其实所有的图形都是由点,线,面组成的。点线面可以组成一个设备。下面就简单讲讲点线面是怎么画的吧 对于线,可以用path <g><path:d"M ${beginX},${beginY} L ${endX},${endY}":stroke-width"lineWidth":strok…...
括号生成[中等]
优质博文:IT-BLOG-CN 一、题目 数字n代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1: 输入:n 3 输出:["((()))","(()())","(())(…...
配置ubuntu的VNC时遇到报错_XSERVTransmkdir: Mode of /tmp/.X11-unix should be set to 1777
现在win11内嵌了ubuntu系统,我在根据打造基于 VNC 的 Ubuntu 20.04 的远程桌面 配置VNC server时,到了 vncserver :1 这一步,遇到报错: vncserver: /usr/bin/Xtigervnc did not start up, please look into /root/.vnc/xxxxx.:1.…...
openstack部署nova中出现的问题:
[rootcontroller nova]# su -s /bin/sh -c “nova-manage db sync” nova /usr/lib/python2.7/site-packages/pymysql/cursors.py:170: Warning: (1831, u’Duplicate index block_device_mapping_instance_uuid_virtual_name_device_name_idx. This is deprecated and will be…...
【OpenCV 基础知识 3】边缘检测
文章目录 cvCanny完整示例代码 cvCanny 这行代码使用OpenCV库中的 cvCanny 函数对灰度图像进行边缘检测。让我解释一下: cvCanny(gray, dst, 10, 100, 3);gray: 这是输入的灰度图像,即要进行边缘检测的图像。dst: 这是输出的边缘图像,即将结…...
拓宽知识储备量(指数级成长)
对于增强自己的知识储备,不是什么知识都往脑袋里去塞,最好的办法就是让自己的心态回到自己初心的时候,始终保值一颗学者的心,你像那些成功人士,比如格力,华为,腾讯等这样的大公司创始人哪个不是…...
x264 帧类型代价计算原理:slicetype_mb_cost 函数分析
slicetype_mb_cost 函数 函数功能 计算每个宏块 MB 的代价 cost。函数参数分析 x264_t *h:全局编码结构体x264_mb_analysis_t *a:宏块分析结构体x264_frame_t **frames:系列帧数据结构体int p0:帧序号之一,一般指向靠前帧int p1:帧序号之一,一般指向靠后帧int b:帧标志…...
战网国际服加速器哪个好用 暴雪战网免费加速器分享
战网国际服(Battle.net International或Battle.net Global)是由暴雪娱乐公司(Blizzard Entertainment)运营的面向全球玩家的多人在线游戏平台。与专注于特定地区的版本不同,国际服允许玩家不受地域限制地访问暴雪的多款…...
Java入门基础学习笔记26——break,continue
跳转关键字: break: 跳出并结束当前所在循环的执行。 continue: 用于跳出当前循环中的当次执行,直接进入循环中的下一次执行。 package cn.ensource.loop;public class BreakContinueDemo8 {public static void main(String[] a…...
HNU-算法设计与分析-作业6
第六次作业【分支限界法】 文章目录 第六次作业【分支限界法】<1> 算法实现题6-2 最小权顶点覆盖问题<2> 算法实现题6-6 n后问题<3> 算法实现题6-7 布线问题 <1> 算法实现题6-2 最小权顶点覆盖问题 ▲问题重述 问题描述: 给定一个赋权无向…...
2D Chests Assets - Mega Pack
科幻/奇幻/经典主题的箱子和容器。AAA质量,高分辨率,VFX,源PSD文件。 这是一个带有手绘套装的大包装: -【梦幻之栗】 -【科幻钱包】 AAA质量。高分辨率。一切都已准备就绪,可供使用。包括PSD文件。 在1.1版本中添加了VFX并将项目更新为URP。请注意,新的VFX仅适用于URP/HD…...
一种基于电场连续性的高压MOSFET紧凑模型,用于精确表征电容特性
来源:A Compact Model of High-Voltage MOSFET Based on Electric Field Continuity for Accurate Characterization of Capacitance(TED 24年) 摘要 本文提出了一种新的高压MOSFET(HV MOS)紧凑模型,以消…...
vue阶段性测试题,内容丰富,案例典型,题目配有答案
阶段性测试 理论题实践题 1)理论题 请简述Vue、Node.js、Vscode是什么,以及有什么关系 1. vue是一个轻量级、比较灵活的且支持组件开发的网络框架 2. node.js是让JavaScript运行在服务器上的一直环境 3. Vscode是一款有着丰富插件的代码编辑器 4. 关系…...
如何查看PC电脑已经已经连接上的网络WiFi密码?
运行ncpa.cpl...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...
