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

news2025/3/9 23:02:24

一、数据库的概念



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 employees
	where department_id<> 90;
	
		-- 模糊查询
	-- 查询员工名字中包含 字符a 的信息
	SELECT *
	FROM employees
	WHERE	
			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


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

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

相关文章

基于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;就可以…

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

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领…

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…

安装与配置 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 库&#…

计算机二级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;…

【够用就好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…

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

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

[QT]开发全解析:从概念到实战

文章目录 Qt 框架入门与应用开发指南一、Qt 框架概述1.1 什么是 Qt1.2 Qt 的发展史1.3 Qt 支持的平台1.4 Qt 版本1.5 Qt 的优点1.6 Qt 的应用场景1.7 Qt 的成功案例 二、Qt 的开发工具概述Qt CreatorVisual StudioEclipse 三、认识 Qt Creator3.1 Qt Creator 概览3.2 使用 Qt C…

【pyqt】(十二)文本框

控件-文本框 文本框主要有两类&#xff0c;为富文本框(QTextEdit)和纯文本框(QPlainTextEdit)&#xff0c;在学习新的控件的时候&#xff0c; 需要掌握的内容主要除了属性之外&#xff0c;其信号触发方法也非常重要。还可以利用Designer来辅助我们进行学习&#xff0c;尤其是利…

汽车免拆诊断案例 | 2023款丰田雷凌汽油版车行驶中偶尔出现通信故障

故障现象  一辆2023款丰田雷凌汽油版车&#xff0c;搭载1.5 L发动机&#xff0c;累计行驶里程约为4700 km。车主反映&#xff0c;行驶中偶尔组合仪表上的发动机转速信号丢失&#xff0c;转向变重&#xff0c;且有“闯车”感&#xff0c;同时车辆故障警报蜂鸣器鸣响。 故障诊断…

关于OceanBase与CDH适配的经验分享

CDH是Cloudera早期推出的一个开源平台版本&#xff0c;它实质上成为了Apache Hadoop生态系统内公认的安装与管理平台&#xff0c;专为企业级需求量身打造。CDH为用户提供了即装即用的企业级解决方案。通过整合Hadoop与另外十多项关键开源项目&#xff0c;Cloudera构建了一个功能…

基于国产芯片的AI引擎技术,打造更安全的算力生态 | 京东零售技术实践

近年来&#xff0c;随着国产AI芯片的日益崛起&#xff0c;基于国产AI芯片的模型适配、性能优化以及应用落地是国产AI应用的一道重要关卡。如何在复杂的京东零售业务场景下更好地使用国产AI芯片&#xff0c;并保障算力安全&#xff0c;是目前亟需解决的问题。对此&#xff0c;京…

HTML label 标签使用

点击 <label> 标签通常会使与之关联的表单控件获得焦点或被激活。 通过正确使用 <label> 标签&#xff0c;可以使表单更加友好和易于使用&#xff0c;同时提高整体的可访问性。 基本用法 <label> 标签通过 for 属性与 id 为 username 的 <input> 元素…