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

一、数据库 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 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


相关文章:

  • FineBI_实现求当日/月/年回款金额分析
  • LeetCode 2588.统计美丽子数组数目:前缀和 + 位运算(异或) + 哈希表
  • 自动化同步多服务器数据库表结构
  • 2025年渗透测试面试题总结-字某某动-安全研究实习生(二面)(题目+回答)
  • STL:C++的超级工具箱(一)
  • linux 系统内核查询
  • C++ 中前置 `++` 与后置 `++` 运算符重载
  • 【落羽的落羽 C++】C++入门基础:引用,内联,nullptr
  • 神经网络|(十二)|常见激活函数
  • 3.使用ElementUI搭建侧边栏及顶部栏
  • linux_c3.5
  • PDF 分割工具
  • C++中`const int*` 与 `int* const` 的区别及记忆技巧
  • Swift系列01-Swift语言基本原理与设计哲学
  • 基于 Docker 的跨平台镜像构建与增量更新实战指南
  • leetcode349 两个数组的交集
  • 算法精讲——树(一):DFS 的奇妙探险之旅
  • Linux 运维安全加固策略:实战指南
  • Docker Desktop 4.38 安装与配置全流程指南(Windows平台)
  • π0源码解析——一个模型控制7种机械臂:对开源VLA sota之π0源码的全面分析,含我司的部分落地实践
  • 成品源码1688网站免费/凡科建站快车
  • 网上怎么做网站赚钱/一级消防工程师考试
  • 如何做企业网站的更新/精准营销的案例
  • 网站建设硬件设置/下载手机百度最新版
  • wordpress怎么查看域名/深圳seo优化电话
  • 无锡优化网站价格/今日广东头条新闻