mysql数据库

本文详述了MySQL数据库的基础知识,包括服务的启动与登录、基础查询和运算符。深入探讨了排序查询、常用函数、分组查询、内连接和外连接的概念与应用。此外,还讲解了子查询、分页查询和联合查询的语法及特点,为数据库查询提供了全面的指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

根据最近一周对mysql数据库连接查询的学习,做出来以下的总结。


一、mysql数据库

1.简介

数据库指的是长期存在计算机内、有组织、可共享的、大量数据的集合。数据是按照特定的数据模型来组织、存储在数据库中的。	

2.好处

​	1.持久化数据到本地
​	2.可以实现结构化查询,方便管理

3.MySQL服务的启动和停止

​	方式一:计算机——右击管理——服务——MySQL
​	方式二:通过管理员身份运行cmd命令提示行
​	net start mysql(启动服务)
​	net stop mysql(停止服务)

4.MySQL服务的登录和退出

​	方式一:通过MySQL自带的客户端
​	只限于root用户

​	方式二:通过cmd命令提示行关闭,未配置MySQL环境变量,需在MySQL安装的bin下启动cmd

​	登录:
​		mysql 【-h主机名 -P端口号 】-u用户名 -p密码

​	退出:
​		exit或ctrl+C

5.基础查询

1. 多个字段的查询
		select 字段名1,字段名2... from 表名;
		* 注意:
			* 如果查询所有字段,则可以使用*来替代字段列表。
2. 去除重复:
		* distinct
3. 计算列
		* 一般可以使用四则运算计算一些列的值。(一般只会进行数值型的计算)
		* ifnull(表达式1,表达式2):null参与的运算,计算结果都为null
			* 表达式1:哪个字段需要判断是否为null
			* 如果该字段为null后的替换值。
4. 起别名:
		* as(可以省略)

6.运算符

* > 、< 、<= 、>= 、= 、<>
* BETWEEN...AND  
* IN( 集合) 
* LIKE:模糊查询
* 占位符:
		* _:单个任意字符
		* %:多个任意字符
* IS NULL  
* and  或 &&
* or  或 || 
* not  或 !

二、排序查询

语法

select
        要查询的东西
    from
        表
    where 
        条件
    order by 排序的字段|表达式|函数|别名 【asc|desc】

排序方式

* ASC:升序,默认的
* DESC:降序

排序分类

 * 1.按单个字段进行排序
 * 2.按多个字段排序
 * 3.按表达式排序
 * 4.按别名排序
 * 5.按函数排序

三、常见函数

1.字符函数

concat: 拼接
substr: 截取子串
upper: 转换成大写
lower: 转换成小写
trim: 去前后指定的空格和字符
ltrim: 去左边空格
rtrim: 去右边空格
replace: 替换
lpad: 左填充
rpad: 右填充
instr: 返回子串第一次出现的索引
length: 获取字节个数	

2.数学函数

round: 四舍五入
rand: 随机数
floor: 向下取整
ceil: 向上取整
mod: 取余
truncate: 截断

3.日期函数

now: 当前系统日期+时间
curdate: 当前系统日期
curtime: 当前系统时间
str_to_date: 将字符转换成日期
date_format: 将日期转换成字符

4.流程控制函数

if 处理双分支
case语句 处理多分支
	情况1:处理等值判断
	情况2:处理条件判断

5.其他函数

version: 版本
database: 当前库
user: 当前连接用户

四、分组函数

count:计算个数
	* 一般选择非空的列:主键
	* count(*)
max:计算最大值
min:计算最小值
sum:计算和
avg:计算平均值

1.特点

1、以上五个分组函数都忽略null值,除了 count(*)
2、sum和avg一般用于处理数值型,max、min、count可以处理任何数据类型
3、都可以搭配distinct使用,用于统计去重后的结果
4、count的参数可以支持:
    * 字段、*、常量值,一般放1

2.注意事项

聚合函数的计算,排除null值。
解决方案:
	* 选择不包含非空的列进行计算
	* IFNULL函数

五、分组查询

1.语法

select 查询的字段,分组函数
from 表
group by 分组的字段

2.特点

 1、可以按单个字段分组
2、和分组函数一同查询的字段最好是分组后的字段
3、可以按多个字段分组,字段之间用逗号隔开
4、可以支持排序
5、having后可以支持别名

where 和 having 的区别?

1. where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来
2. where 后不可以跟聚合函数,having可以进行聚合函数的判断。

六、内连接

1.语法

* SQL92语法:
	SELECT 查询列表
	FROM 表名1 别名1 ,表名2 别名2 
	WHERE 连接条件 				
	AND 筛选条件				
	GROUP BY 分组列表			
	HAVING 分组后筛选条件		  
	ORDER BY 排序列表	
* SQL99语法:
	select 字段列表 
	from 表名1 
	[inner] join 表名2 on 条件
	where 筛选条件
	group by 分组条件
	having 分组后的筛选条件
	order by 排序字段

2.注意事项

1. 使用表名前缀在多个表中区分相同的列
2. 在不同表中具有相同列名的列可以用表的别名加以区分
3. 如果使用了表别名,则在select语句中需要使用表别名代替表名
4. 表别名最多支持32个字符长度,但建议越少越好

七、外连接

1. 左外连接

* 语法:
	select 字段列表 
	from 表1 
	left [outer] join 表2 on 条件
	...
* 注意:
	左外连接查询的是左表所有数据以及其交集部分

2.右外连接

* 语法:
	select 字段列表 
	from 表1 
	right [outer] join 表2 on 条件
	...
* 注意:
	右外连接查询的是右表所有数据以及其交集部分		

八、子查询

1.概念

查询中嵌套查询,称嵌套查询为子查询

2.特点

1、子查询都放在小括号内
2、子查询可以放在from后面、select后面、where后面、having后面,但一般放在条件的右侧
3、子查询优先于主查询执行,主查询使用了子查询的执行结果
4、子查询根据查询结果的行数不同分为以下两类:
    ① 单行子查询
        结果集只有一行
        一般搭配单行操作符使用:> < = <> >= <= 
        非法使用子查询的情况:
           	a、子查询的结果为一组值
            b、子查询的结果为空
   	② 多行子查询
        结果集有多行
        一般搭配多行操作符使用:any、all、in、not in
        in: 属于子查询结果中的任意一个就行
        any和all往往可以用其他查询代替

九、分页查询

1.语法

select 字段|表达式,...
from 表
where 条件
group by 分组字段
having 条件
order by 排序的字段
limit 起始的条目索引,条目数;

2.特点

1.起始条目索引从0开始
2.limit子句放在查询语句的最后
3.公式:select * from  表 limit (page-1)*sizePerPage,sizePerPage
假如:
	每页显示条目数sizePerPage
	要显示的页数 page

十、联合查询(union)

1.语法

select 字段|常量|表达式|函数 from 表 where 条件 union 【all】

2.特点

1、多条查询语句的查询的列数必须是一致的
2、多条查询语句的查询的列的类型几乎相同
3、union代表去重,union all代表不去重
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值