写在前面
鉴于全网MySQL知识点的总结分散难懂、良莠不齐,为了避免初学者少走弯路,更好更快地掌握MySQL知识,博主特地将自己所学的笔记分享出来。
如果想深度理解掌握MySQL,欢迎订阅专栏:MySQL进阶之路【秋说】,本专栏注重实践和案例应用,带你成为优质后端程序员。
文章目录
MySQL基础概念
数据库: 用于存储和组织结构化数据的系统。它是一个电子化的数据仓库,可以方便地管理、访问和更新大量数据。在数据库中,数据按照一定的规则和结构进行组织和存储,以便于对数据进行检索、处理和管理。数据库通常由多个表格(或称为关系)组成,每个表格包含了一组相关的数据字段(列)和数据记录(行)。
数据库管理系统: 用于管理和操作数据库的软件系统。它提供了一系列的工具和功能,用于创建、访问、维护和控制数据库。
常见的数据库管理系统(DBMS)包括: 关系型数据库(如MySQL、Oracle、SQL Server)、非关系型数据库(如MongoDB、Redis)等
表: 在关系型数据库中,表是一种数据结构,用于存储和组织数据。它由行和列组成。表可以被看作是一个二维的数据表格,其中每一列代表一个字段,每一行代表一条记录。
如下图所示:
SQL语句的分类
- 数据定义语言(Data Definition Language,DDL):用于创建、修改和删除数据库对象,如数据库、表、视图、索引等。常见的DDL语句包括:
create
:创建数据库对象
alert
:修改数据库对象的结构
drop
:删除数据库对象
- 数据操作语言(Data Manipulation Language,DML):用于查询、插入、更新和删除数据。常见的DML语句包括:
select
:查询数据
insert
:插入数据
update
:更新数据
delete
:删除数据
- 数据查询语言(Data Query Language,DQL):专门用于查询数据,是DML的子集,用于从数据库中检索数据。
- 数据控制语言(Data Control Language,DCL):用于授权和权限管理。常见的DCL语句包括:
grant
:授予用户权限
revoke
:撤销用户权限
- 事务控制语言(Transaction Control Language,TCL):用于管理数据库中的事务。常见的TCL语句包括:
commit
:提交事务
rollback
:回滚事务
savepoint
:设置保存点
MySQL常用命令
- 查看mysql数据库的版本号:
select version();
- 启动MySQL服务:(基于Windows)
net start mysql
- 停止MySQL服务:
net stop mysql
- 登录MySQL数据库:
mysql -u 用户名 -p
其中,用户名
是MySQL用户名,接着根据系统提示输入密码即可
- 如果安装MySQL时没有设置root密码,可以使用以下命令登录:
mysql -u root
- 退出 MySQL 命令行界面:
exit或者quit
- 显示所有的数据库名:
show databases;
- 创建数据库:
create database 数据库名;
- 切换到特定的数据库:
use 数据库名;
- 查看当前使用的数据库名:
select database();
- 删除数据库:
drop database 数据库名;
- 显示数据库中的表:
show tables;
- 创建表:
create table 表名 (
列名1 数据类型,
列名2 数据类型,
...
);
- 删除表:
drop table 表名;
- 向表中插入数据:
insert into 表名(列名1, 列名2, ...)
VALUES (具体值1, 具体值2, ...);
- 在表中查询特定的数据:
select 列名1, 列名2, ...
from 表名
where 查询条件;
不需要查询条件时:
select 列名1, 列名2, ...
from 表名;
- 获取某表的所有数据:
select * from 表名
- 获取某表的结构:
desc 表名;
也可使用
describe 表名;
- 更改表中某列的名字:
alert table 表名 rename column 原始列名 to 新列名;
- 为表中某列指定一个别名(并不改变表结构中列的名称)
select 原始列名 as 新列名 from 表名;
MySQL数学运算语句
- 加法:使用
+
运算符执行加法运算。
select column1 + column2 as sum from 表名; //执行加法运算后的结果列指定别名为sum
select column1 + 10 from 表名; //也可以不指定别名
- 减法:使用
-
运算符执行减法运算。
select column1 - column2 as reduce from 表名;
- 乘法:使用
*
运算符执行乘法运算。
select column1 * column2 as ride from 表名;
select column1 * 10 as ride from 表名; //数值扩大十倍
- 除法:使用
/
运算符执行除法运算。
select column1 / column2 as division from 表名;
- 取余:使用
%
运算符计算两个数的余数。
select column1 % column2 as remainder from 表名;
- 其它运算:
POWER()
函数用于计算幂次方,SQRT()
函数用于计算平方根,ABS()
函数用于获取绝对值等等。
MySQL条件查询
MySQL 中的条件查询是通过使用 WHERE
子句来筛选满足特定条件的数据。
MySQL 中条件查询的基本语法:
SELECT column1, column2, ... 。。列名
FROM table_name //表名
WHERE condition; //筛选条件
示例:
- 等于 (
=
) 运算符:
SELECT * FROM table_name WHERE column_name = value;
//也可指定特定的列
- 不等于 (
<>
或!=
) 运算符:
SELECT * FROM table_name WHERE column_name <> value;
- 大于 (
>
) 运算符:
SELECT * FROM table_name WHERE column_name > value;
- 小于 (
<
) 运算符:
SELECT * FROM table_name WHERE column_name < value;
- 大于等于 (
>=
) 运算符:
SELECT * FROM table_name WHERE column_name >= value;
- 小于等于 (
<=
) 运算符:
SELECT * FROM table_name WHERE column_name <= value;
- BETWEEN运算符
//第一种方式
SELECT * FROM table_name WHERE column_name >= value1 AND column_name <= value2;
//第二种方式
SELECT * FROM table_name WHERE column_name BETWEEN value1 AND value2;
//value1必须小于value2
- 模糊匹配 (
LIKE
) 运算符:
SELECT * FROM table_name WHERE column_name LIKE pattern;
条件查询还可以通过逻辑运算符(例如 `AND`, `OR`, `NOT`)组合多个条件。
- NULL运算符
SELECT * FROM table_name WHERE column_name IS NULL;
这将返回所有 column_name 列中值为 NULL 的行。
- IN运算符
IN