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...

wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...

Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...

Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...

Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

【网络安全】开源系统getshell漏洞挖掘
审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案
在大数据时代,海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构,在处理大规模数据抓取任务时展现出强大的能力。然而,随着业务规模的不断扩大和数据抓取需求的日益复杂,传统…...

永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器
一、原理介绍 传统滑模观测器采用如下结构: 传统SMO中LPF会带来相位延迟和幅值衰减,并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF),可以去除高次谐波,并且不用相位补偿就可以获得一个误差较小的转子位…...