当前位置: 首页 > article >正文

一、数据库 MySQL 基础学习 (上)

一、数据库的概念



DB 数据库(database):存储数据的“仓库”,保存一系列有组织的数据

DBMS:数据库管理系统(Database Management System)。数据库是通过 DBMS 创建和操作的容器

创建的 DBMS: MySQL、Oracle、DB2、SqlServer 等

SQL:结构化查询语言(Structure Query Language)

​ SQL:几乎所有的 DBMS 都支持 Sql;简单易学;虽然简单,可以进行非常复杂和高级的数据库操作


数据库 (DB) 的特点:

1、数据先放在表中,表再放到库中

2、一个数据库中可以有多个表,每个表有一个名字,用来表示自己。表明具有唯一性

3、表具有一些特性,类似 java 中“类”的设计

4、表由列组成,我们也称为字段

5、表中数据按行存储,有点类似 Java 中的对象

数据库好处:1、可以持久化保存数据到本地;2、结构化查询


MySQL的常见命令

1、查看当前所有的数据库

show databases;

2、打开指定的库

use 库名

3、查看当前库的所有表

show tables;

4、查看其他库的所有表

show tables from 库名;

5、创建表

create table 表名(

​ 列名 列类型,

​ 列名 列类型,

​ …

​ 列名 列类型 (最后一行不用加“,”)

)

6、查看表结构

desc 表名;


MySQL 的语法规范

1、不区分大小写,但建议 关键字大写,表名、列名小写

2、每条命令最后用分号结尾

3、每条命令根据需要可以进行缩进或者换行

4、注释:

​ 单行注释: #注释文字

​ 单行注释: – 注释文字 (注意这里面 -与注释文字间要有一个空格)

​ 多行注释:/*

​ 注释文字

​ */ (和 java 里面的多行注释一样)


基础查询

语法:

select 查询列表 from 表名;

类似于: System.out.println(打印东西);

特点:

1、查询列表可以是:表中的字段、常量值、表达式、函数

2、查询的结果是一个虚拟的表格

起别名:

方式一、用AS

SELECT last_name AS 姓,first_name AS 名 FROM employee

方式二、直接用空格

SELECT last_name 姓,first_name 名 FROM employee

如果别名与关键字相同,我们需要添加一个“ ”给它包起来

去重 :用关键字 DISTINCT

SELECT DISTINCT xxx From xxx

+号的作用

在JAVA中,+号的作用:运算符,来那个操作数为数值型;连接符

MySQL中+号只有一个功能 运算符

​ 两个操作数都为数值型,则做加法运算

​ 若其中一方为字符型,试图将字符型数值转换为数值

​ 如果转换成功,则继续做加法运算

​ 如果转换失败,则将字符型数值转换为 0 进行加法运算

select null+10 只要其中一方为 null 则结果一定为 null

案例:查询员工名和姓连接成一个字段,并显示为 姓名

SELECT CONCAT(‘a’,‘b’,‘c’) AS 结果

条件查询

SELECT 查询列表

FROM 表名

WHERE 筛选条件

分类:一、按条件表达式筛选

​ 条件运算符:> < = !=(<>) >= <=

​ 二、按逻辑表达式筛选

​ 逻辑运算符(作用:用于连接条件表达式):

​ && || !

​ and or not

​ 三、模糊查询:

​ like

​ between and (包含临界值;两个临界值从小到大 不能颠倒顺序)

​ in : 判断某字段的值是否属于 in 列表中的某一项; 我们in 列表的值类型必须要统一或者兼容;括号中不支持通配符的使用

​ is null: =或< >都不能用于判断 null 值

<=> 安全等于 : 既可以判断 null 值,也可以判断普通的数值

​ 模糊查询的特点:一般和通配符搭配使用。 通配符%:任意多个字符,包含0 个字符 _ :任意单个字符 \为转义字符; escape’ ‘’ 任意转义字符

举例:要求查询名字中第二个字符为_的 员工信息表

SELECT *
FROM employees
WHERE last_name LIKE '_\_%';   或者 这个地方写成    WHERE last_name LIKE '_$_%' ESCAPE'$'; 这里的$可以为任意字符

举个小例子:查询部门编号不等于 90 的员工名与工作编号

	-- 查询部门编号不等于 90 的员工名与工作编号SELECT first_name,last_name,job_id From employeeswhere department_id<> 90;-- 模糊查询-- 查询员工名字中包含 字符a 的信息SELECT *FROM employeesWHERE	last_name like '%a%';

在编写 SQL 的代码时,一定注意要在语句的最后加上 ; 



插入一点 Linux 中的小指令(就当过了眼)

CleanShot 2025-03-04 at 21.47.55@2x


进阶 一:排序查询

语法:

	select 查询列表from 表【where 筛选条件】order by 排序列表 【ascdescasc 升序(从小到大)  desc 降序(从大到小)  默认为 asc(可以不写 )

特点:order by 字句中可以支持单个字段、多个字段、表达式、函数、别名

order by 一般放在查询语句的最后面,limit 字句除外


进阶二:常见函数

概念:类似 Java 中的方法;将一组逻辑语句封装在方法中,对外暴露方法名

好处:1、隐藏实现细节 2、提供代码的重用性

调用:select 函数名(实参列表) 【from 表】;

关注特点:1、叫什么(函数名) 2、干什么(功能)

分类:1、单行函数 如:concat、length、ifnull 等

​ 2、分组函数(功能:做统计用):又称统计函数

一、字符函数

length()用于获取长度
concat()拼接字符串
upper、lower()大写、小写
substr、substring()截取 字符串,索引从一开始
instr()返回子串第一次出现的索引,如果找不到返回零
trim()去除字符串里面的某个字符 trim(’ 'from ’ ')
lpad()用指定的字符实现字符左边填充填充到指定长度
rpad()右填充
replace()替换

二、数学函数

round()四舍五入
ceil()向上取整(返回大于等于该参数的最小参数)
floor()向下取整(返回<=该参数的最大整数)
truncated()截断
mod()取余 mod 注(a,b):可以视为: a-a/b *b 其中会有自动取整

三、日期函数

now返回当前系统日期
curdate()返回当前系统的日期,没有时间
curtime()返回当前时间,不包含日期
获取指定的部分:年、月、日Select year(now()) 年 select month(now())
str_to_date将日期格式的字符转换成指定格式的日期
date_format将日期转换为字符

四、其他函数

version看版本
database查看数据库

五、流程控制函数

if 函数if else 的效果
case 函数使用一:类似于 Java中 switch case 效果
case 函数使用二:类似多重 if

MySQL 中 case 函数格式一

case 要判断的字段或者表达式

when 常量 1 then 要显示的值或语句一

when 常量 2 then 要显示的值 2 或语句 二

else 要显示的值 n 或语句 n

end

case 函数格式二

case

When 条件 1 then 要显示的值 1 或语句 1

when 条件 2 then 要显示的值 2 或语句 2

else 要显示的值或 n

End


相关文章:

一、数据库 MySQL 基础学习 (上)

一、数据库的概念 DB 数据库&#xff08;database&#xff09;&#xff1a;存储数据的“仓库”&#xff0c;保存一系列有组织的数据 DBMS&#xff1a;数据库管理系统(Database Management System)。数据库是通过 DBMS 创建和操作的容器 创建的 DBMS&#xff1a; MySQL、Oracl…...

基于Django创建一个WEB后端框架(DjangoRestFramework+MySQL)流程

一、Django项目初始化 1.创建Django项目 Django-admin startproject 项目名 2.安装 djangorestframework pip install djangorestframework 解释: Django REST Framework (DRF) 是基于 Django 框架的一个强大的 Web API 框架&#xff0c;提供了多种工具和库来构建 RESTf…...

AutoGen学习笔记系列(七)Tutorial - Managing State

这篇文章瞄准的是AutoGen框架官方教程中的 Tutorial 章节中的 Managing State 小节&#xff0c;主要介绍了如何对Team内的状态管理&#xff0c;特别是如何 保存 与 加载 状态&#xff0c;这对于Agent系统而言非常重要。 官网链接&#xff1a;https://microsoft.github.io/auto…...

Redis渐进式遍历数据库

目录 渐进式遍历 数据库 渐进式遍历 keys*可以一次性的把整个redis中所有key都获取到&#xff0c;这个操作是非常危险的&#xff0c;因为可能一下获取到太多的key&#xff0c;阻塞redis服务器。要想很好的获取到所有的key&#xff0c;又不想出现卡死的情况&#xff0c;就可以…...

机器学习中的线性代数:奇异值分解 SVD

线性代数 奇异值分解&#xff08;SVD&#xff09; 参考资料&#xff1a; 超详细&#xff01;彻底搞懂矩阵奇异值分解&#xff08;SVD&#xff09;本质计算应用&#xff01;_哔哩哔哩_bilibili 非常好的视频&#xff0c;本文内容主要来自于该视频&#xff0c;在此表示感谢&#…...

【每日八股】计算机网络篇(三):IP

目录 DNS 查询服务器的基本流程DNS 采用 TCP 还是 UDP&#xff0c;为什么&#xff1f;默认使用 UDP 的原因需要使用 TCP 的场景&#xff1f;总结 DNS 劫持是什么&#xff1f;解决办法&#xff1f;浏览器输入一个 URL 到显示器显示的过程&#xff1f;URL 解析TCP 连接HTTP 请求页…...

6. PromQL的metric name(在node exporter复制下来交给AI解释的)

目录 前言&#xff1a; Go 运行时指标&#xff1a; Go 内存统计指标&#xff1a; CPU 指标&#xff1a; 内存指标&#xff1a; 磁盘指标&#xff1a; 网络指标&#xff1a; 系统指标&#xff1a; 前言&#xff1a; 写这个得目的是为了后续方便查询&#xff0c;因为在pro…...

基于单片机的速度里程表设计(论文+源码)

1 系统方案 本次智能速度里程表的总体架构如图2-1所示&#xff0c;在硬件上包括了STC89C52单片机&#xff0c;电机&#xff0c;显示模块&#xff0c;报警模块&#xff0c;DS1302时钟模块&#xff0c;超速检测模块&#xff0c;按键等等。在软件设计功能的功能上&#xff0c;按下…...

计算机毕业设计Python+Django+Vue3微博数据舆情分析平台 微博用户画像系统 微博舆情可视化(源码+ 文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

nvidia驱动升级-ubuntu 1804

升级 1.从官网下载*.run驱动文件 2.卸载原始驱动 sudo /usr/bin/nvidia-uninstall sudo apt-get --purge remove nvidia-\* # 可能不需要加-\ sudo apt-get purge nvidia-\* # 可能不需要加-\ sudo apt-get purge libnvidia-\* # 可能不需要…...

如何使用SSH命令安全连接并转发端口到远程服务器

ssh -p 22546 rootconnect.westc.gpuhub.com d6IS/mQKq/iG ssh -CNgv -L 6006:127.0.0.1:6006 rootconnect.westc.gpuhub.com -p 22546 第一条命令&#xff1a;用于登录远程服务器&#xff0c;进行交互式操作。第二条命令&#xff1a;用于建立 SSH 隧道&#xff0c;进行端口转…...

2025年天梯赛第1场选拔赛

目录 A:徐老师的积木山峰 B:徐老师的最长上升子序列 C:徐老师的机器命令 D:徐老师的地下堡 E:徐老师的新鲜羊腿 F:徐老师的黄金矿工 G:徐老师的成绩统计 H:春节糖果 I:幸运函数 J:好坏钥匙 A:徐老师的积木山峰 徐老师有 n 块积木排成一排&#xff0c;从左往右数编号依次为 1∼…...

06实现相册小项目

一、涉及的知识点&#xff1a; 1、bmp的显示 2、双向循环链表实现图片的轮播 3、触摸屏的滑动算法实现图片的切换 4、目录操作用以检索bmp图片文件 5、项目的优化方向 &#xff08;1&#xff09;可以实现不同图片大小的显示 &#xff08;2&#xff09;图片轮播的时候可以…...

Dify+DeepSeek | Excel数据一键可视化(创建步骤案例)(echarts助手.yml)(文档表格转图表、根据表格绘制图表、Excel绘制图表)

Dify部署参考&#xff1a;Dify Rag部署并集成在线Deepseek教程&#xff08;Windows、部署Rag、安装Ragan安装、安装Dify安装、安装ollama安装&#xff09; DifyDeepSeek - Excel数据一键可视化&#xff08;创建步骤案例&#xff09;-DSL工程文件&#xff08;可直接导入&#x…...

RK3568平台(GPIO篇)Android平台集成libgpiod库

一.libgpiod 介绍 libgpiod 是一个用于与 Linux GPIO(通用输入输出)子系统交互的用户空间库。它提供了一组简单且高效的 API,允许开发者通过用户空间程序控制 GPIO 引脚,而无需编写内核模块或直接操作 /sys/class/gpio 接口。libgpiod 是 Linux 内核推荐的 GPIO 访问方式,…...

API和SDK

API&#xff08;Application Programming Interface&#xff09;和 SDK&#xff08;Software Development Kit&#xff09;是软件开发中密切相关的概念&#xff0c;但它们之间存在一些区别&#xff1a; 定义 API &#xff1a;是一组预先定义的函数、协议和规范&#xff0c;用…...

CR电路介绍

CR电路&#xff08;RC电路&#xff09;介绍 CR电路&#xff08;电阻-电容电路&#xff09;由电阻&#xff08;R&#xff09;和电容&#xff08;C&#xff09;组成&#xff0c;是电子系统中的基础模块&#xff0c;广泛用于信号处理、定时、滤波等场景。以下是其核心功能、实现方…...

安装与配置 STK-MATLAB 接口

STK版本为11.6 Matlab版本为R2018a STK 提供 Connect 和 Object Model (COM) 两种接口与 MATLAB 交互&#xff0c;推荐使用 COM接口进行二次开发。 确保安装了 STK&#xff0c;并且 MATLAB 可以访问 STK Object Model。 在 MATLAB 中运行&#xff1a; % 添加 STK COM 库&#…...

NUMA架构介绍

NUMA 架构详解 NUMA&#xff08;Non-Uniform Memory Access&#xff0c;非统一内存访问&#xff09; 是一种多处理器系统的内存设计架构&#xff0c;旨在解决多处理器系统中内存访问延迟不一致的问题。与传统的 UMA&#xff08;Uniform Memory Access&#xff0c;统一内存访问…...

计算机二级MS之PPT

声明&#xff1a;跟着大猫和小黑学习随便记下一些笔记供大家参考&#xff0c;二级考试之前将持续更新&#xff0c;希望大家二级都能轻轻松松过啦&#xff0c;过了二级的大神也可以在评论区留言给点建议&#xff0c;感谢大家&#xff01;&#xff01; 文章目录 考题难点1cm25px…...

python中采用opencv作常规的图片处理的方法~~~

在python中&#xff0c;我们经常会需要对图片做灰度/二值化/模糊等处理&#xff0c;这时候opencv就是我们的好帮手了&#xff0c;下面我来介绍一下相关用法: 首先&#xff0c;需要安装opencv-python库: 然后&#xff0c;在你的代码中引用: import cv2 最后就是代码了&#x…...

deepseek在pycharm 中的配置和简单应用

对于最常用的调试python脚本开发环境pycharm&#xff0c;如何接入deepseek是我们窥探ai代码编写的第一步&#xff0c;熟悉起来总没坏处。 1、官网安装pycharm社区版&#xff08;免费&#xff09;&#xff0c;如果需要安装专业版&#xff0c;需要另外找破解码。 2、安装Ollama…...

Redis数据结构,渐进式遍历,数据库管理

1.Redis的其他数据结构 前面我们主要讲述了Redis中比较常用的集中数据结构String&#xff0c;List&#xff0c;Hash&#xff0c;Set&#xff0c;Zset&#xff0c;但这并不代表Redis只用这几种数据结构还有如Streams&#xff0c;Geospatial&#xff0c;Hyperloglog&#xff0c;…...

【CSS 】Class Variance Authority CSS 类名管理工具库

1.背景、什么是 CVA&#xff1f; Class Variance Authority (CVA) 是一个用于管理 CSS 类名 的工具库&#xff0c;特别适合在 React 或 Vue 等前端框架中使用。它可以帮助你更轻松地处理组件的 样式变体&#xff08;Variants&#xff09;&#xff0c;比如按钮的不同状态&#…...

[Python入门学习记录(小甲鱼)]第5章 列表 元组 字符串

第5章 列表 元组 字符串 5.1 列表 一个类似数组的东西 5.1.1 创建列表 一个中括号[ ] 把数据包起来就是创建了 number [1,2,3,4,5] print(type(number)) #返回 list 类型 for each in number:print(each) #输出 1 2 3 4 5#列表里不要求都是一个数据类型 mix [213,"…...

《量子潮涌下,DataWorks中AI模型训练框架的变革征途》

在科技迅猛发展的当下&#xff0c;量子计算技术犹如一颗璀璨新星&#xff0c;正以惊人的速度改写着人类的计算格局。这一颠覆性的技术&#xff0c;为人工智能&#xff08;AI&#xff09;领域带来了前所未有的发展契机&#xff0c;尤其是在处理海量数据方面&#xff0c;展现出传…...

【够用就好006】如何从零开发游戏上架steam面向AI编程的godot独立游戏制作实录001流程

记录工作实践 这是全新的系列&#xff0c;一直有个游戏制作梦 感谢AI时代&#xff0c;让这一切变得可行 长欢迎共同见证&#xff0c;期更新&#xff0c;欢迎保持关注&#xff0c;待到游戏上架那一天&#xff0c;一起玩 面向AI编程的godot独立游戏制作流程实录001 本期是第…...

LNK2038 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”

vs2019中属性设置 报错&#xff1a; vs2019中属性设置为 报错&#xff1a; 设置为 报错&#xff1a; 设置为 报错&#xff1a; 原因&#xff1a;是由于ncnn和paddleLite的库同时使用会冲突。只能用其中之一。 后面部署降lite都换成了ncnn就可以了。 要么都用ncnn&a…...

docker-compose部署mongodb副本集集群

生成密钥文件 ​ openssl rand -base64 756 > mongodb.key chmod 400 mongodb.key # 权限必须为400‌:ml-citation{ref="4" data="citationList"} chown 999:999 mongodb.key # MongoDB容器用户ID为999‌:ml-citation{ref="4" data="…...

SpringBoot校园管理系统设计与实现

在现代校园管理中&#xff0c;一个高效、灵活的管理系统是不可或缺的。本文将详细介绍基于SpringBoot的校园管理系统的设计与实现&#xff0c;涵盖管理员、用户和院校管理员三大功能模块&#xff0c;以及系统的部署步骤和数据库配置。 管理员功能模块 管理员是系统的核心管理…...