mysql简介
一,数据库概述
1)什么是数据库
2)什么数据库管理系统
3)mysql数据库简介
二,mysql的安装
1)下载软件包
2)安装软件包
涉及到关键步骤截图如下:
1.选择自定义安装

2. 选择安装组件

3) 设置root账户密码



三,mysql软件简介
1)MySQL实用工具程序说明
-
mysqld:这是 SQL 后台程序,即 MySQL 服务器的守护进程。客户端应用程序通过连接到这个服务来访问数据库。
-
mysql:这是一个交互式的 SQL 命令行工具。用户可以通过这个工具连接到 MySQL 服务器,并执行 SQL 语句来查询和管理数据库。
-
mysqlshow:这是一个客户端工具,用于方便地查看数据库、表、列以及索引的相关信息。
-
mysqldump:这是一个用于进行逻辑备份的客户端命令行工具。它可以将一个或多个 MySQL 数据库转储到一个文件中,这个文件包含了一系列的 SQL 语句,可以用来重新创建原始的数据库对象定义和表数据。这个工具常用于数据库的备份或将其迁移到另一台 SQL 服务器。mysqldump 命令还可以生成 CSV、其他分隔符文本或 XML 格式的输出。
主要用途:
-
数据库备份:通过生成包含 CREATE TABLE 和 INSERT INTO 等语句的 .sql 文件来备份整个数据库或特定表。
-
数据库迁移:将数据从一个 MySQL 服务器导出,然后导入到另一个服务器。
-
数据恢复:使用 mysql 客户端执行 mysqldump 生成的备份文件,可以将数据库恢复到备份时的状态。
-
2)mysql核心文件位置说明
四,sql语言简介
1)SQL语言的分类
CREATE TABLE stu (
sid VARCHAR(20) NOT NULL UNIQUE, -- 学号,唯一
sname VARCHAR(50) NOT NULL, -- 姓名
sex ENUM('男', '女') NOT NULL, -- 性别
age INT NOT NULL, -- 年龄
chinese INT NOT NULL, -- 语文成绩(整数)
math INT NOT NULL -- 数学成绩(整数)
) CHARSET=utf8mb4 ;
向表中插入数据:
INSERT INTO stu (sid, sname, sex, age, chinese, math) VALUES
('2023001', '张三', '男', 18, 85, 92),
('2023002', '李四', '女', 17, 90, 88),
('2023003', '王五', '男', 18, 78, 95),
('2023004', '赵六', '女', 49, 92, 87),
('2023005', '钱七', '男', 17, 88, 90),
('2023006', '孙八', '女', 18, 82, 85),
('2023007', '周九', '男', 22, 76, 93),
('2023008', '吴十', '女', 17, 91, 89),
('2023009', '郑一', '男', 28, 84, 86),
('2023010', '王二', '女', 19, 89, 91),
('2023011', '刘一', '男', 17, 79, 88),
('2023012', '陈二', '女', 18, 93, 94),
('2023013', '杨三', '男', 19, 81, 79),
('2023014', '黄四', '女', 37, 87, 90),
('2023015', '赵五', '男', 58, 83, 82),
('2023016', '吴六', '女', 19, 90, 85),
('2023017', '周七', '男', 7, 77, 96),
('2023018', '徐八', '女', 18, 86, 89),
('2023019', '孙九', '男', 19, 80, 87),
('2023020', '马十', '女', 15, 92, 93);
2)语法规则
-
命令结束符
-
; (分号):这是最标准的 SQL 语句结束符。几乎所有的数据库系统都使用分号来分隔多条 SQL 语句。在一个脚本或程序中执行多条语句时,必须使用分号。
-
\g:这个命令不是标准的 SQL 语法,而是 MySQL 命令行客户端特有的一个命令,其作用与分号相同,都是执行当前输入的语句。在其他数据库的命令行工具或图形化界面中,\g 通常是无效的。
-
-
大小写规范
-
关键字:SQL 关键字(如 SELECT, FROM, WHERE 等)是大小写不敏感的。SELECT 和 select 会被数据库同等对待。
-
表名和列名:这部分的大小写敏感性取决于具体的数据库系统和其配置。 例如,在 Windows 上的 MySQL 默认是不区分大小写的,但在 Linux 上通常是区分的。PostgreSQL 默认将不带引号的标识符转换为小写。
-
最佳实践:为了提高代码的可读性和可维护性,强烈建议遵循一种统一的风格,例如将所有 SQL 关键字大写,而将表名和列名小写。
-
-
空格和换行
-
在 SQL 语句中,除了字符串字面量(即引号内的内容)之外,多个空格、制表符或换行符通常被视作一个空格处理。这意味着你可以自由地使用换行和缩进来格式化你的代码,以提高可读性,而不会影响查询的执行。
-
需要注意的是,空格在字符串值内部是会被保留的。
-
-
值的引用
-
字符串和日期/时间类型:标准的 SQL 语法规定,字符串和日期时间类型的字面量值必须使用单引号 (') 括起来。
-
数值类型:数值类型(如 INT, FLOAT)的值不需要使用引号。
-
标识符(表名/列名):通常情况下,如果表名或列名不包含特殊字符、空格且不是关键字,则不需要引号。如果需要,标准 SQL 使用双引号 (") 来界定标识符。不过,不同的系统有差异,例如 MySQL 使用反引号 (`)。
-
-
注释语法
SQL 提供了多种注释代码的方式,这对于解释复杂查询或临时禁用某段代码非常有用。 [5, 7]-
-- (双破折号后跟一个空格): 这是最常见的单行注释。从 -- 开始直到该行结束的所有内容都会被忽略。
-
/* ... */:这是多行注释或块注释。从 /* 开始到 */ 结束的所有内容,即便是跨越多行,也都会被忽略。
-
#:这也是一种单行注释,但它主要在 MySQL 中使用,不属于所有数据库都支持的标准 SQL 语法。
-
-
列/字段别名 (Alias)
别名是为表或列提供一个临时的、更具可读性的名称,在查询结果中显示或在复杂查询(如连接多个表)中使用。-
AS 关键字:使用 AS 关键字来指定别名是最佳实践,因为它能显著提高代码的可读性,尽管在大多数数据库中 AS 是可以省略的。
-
别名的引号:
-
如果别名不包含空格、特殊字符或不是关键字(例如 order_count),则不需要使用引号。
-
如果别名包含空格(例如 "Order Count")、是关键字或希望保留大小写,则应使用双引号 (")。 [19] 在 MySQL 中,也可以使用反引号 (`)。[13] 使用单引号定义别名是不符合 SQL 标准的。
-
-
五,数据库的基础操作
1)启动与关闭mysql服务
2)登录与退出mysql
mysql 命令行工具详解
mysql 是一个交互式的命令行客户端,用于连接 MySQL 服务器并执行 SQL 语句。
1. 基本语法
mysql [options] [database_name]
2. 常用选项 [options]
-
-u, --user=...
指定登录的用户名。 -
-p, --password[=...]
指定用户密码。为安全起见,建议省略密码,在提示符下输入。 -
-h, --host=...
指定要连接的服务器主机名或 IP 地址(默认为 localhost)。 -
-P, --port=...
指定服务器的 TCP/IP 端口号(注意是大写P),默认为 3306。 -
-e, --execute="..."
在命令行直接执行 SQL 语句后退出,不进入交互模式。 -
--protocol={TCP|SOCKET|PIPE|MEMORY}
明确指定连接时使用的通信协议。
3)数据库的相关操作
系统数据库说明:
MySQL 服务器默认包含几个系统数据库,它们对于服务器的正常运行、性能监控和元数据管理至关重要。
-
information_schema
这是一个虚拟数据库,提供了访问数据库元数据的方式。 元数据是关于数据的数据,例如数据库名、表名、列的数据类型、访问权限、字符集和索引信息等。 该库中的表是只读的,不能进行修改。 -
mysql
这是 MySQL 的核心授权数据库,负责存储服务器运行所需的控制和管理信息。它包含了用户账户、访问权限、存储过程、事件、时区等关键数据。 对这个库的修改会立刻影响服务器的操作。例如,当创建一个新用户或修改用户密码时,实际上就是修改了 mysql.user 这个表。 -
performance_schema
这是一个用于监控 MySQL 服务器性能的功能。 它主要收集服务器在运行时详细的、底层的性能参数,例如查询执行的各个阶段所花费的时间、等待的锁、I/O 操作等。 默认情况下,这个功能可能是关闭的,需要手动开启以进行性能分析和诊断。 -
sys
该库可以看作是 performance_schema 的一个可读性更强的视图。 它通过一系列的视图、函数和存储过程,将 performance_schema 中复杂、原始的性能数据汇总并格式化为更易于理解的摘要报告。 这使得数据库管理员(DBA)能够更轻松地解读性能数据并快速定位问题。
用户数据库操作
用户数据库是指根据实际业务需求创建的,用于存储应用程序或项目数据的数据库。
1. 创建数据库
用于新建一个数据库来存储数据。
-
语法
CREATE DATABASE [IF NOT EXISTS] 数据库名; -
注意事项
-
IF NOT EXISTS 是一个可选子句,如果添加了该子句,那么只有在数据库不存在时才会执行创建操作,避免了因数据库已存在而导致的错误。
-
数据库名在其所在的服务器上必须是唯一的。
-
数据库名可以由字母、数字、下划线 _、@、# 和 $ 组成。但是,首字符不能是数字或 $。同时,名称不能是 MySQL 的保留关键字。
-
-
成功提示
-
Query OK: 表示 SQL 语句已成功执行。
-
1 row affected: 表示该操作影响了一行记录。
-
0.02 sec: 表示操作完成所花费的时间。
-
2. 使用数据库
在执行针对特定数据库中表的操作(如 SELECT, INSERT 等)之前,需要先切换到该数据库。
-
语法
USE 数据库名;
3. 查看数据库
用于列出服务器上所有的数据库或查看当前正在使用的数据库。
-
显示所有数据库
SHOW DATABASES; -
查询当前正在使用的数据库
codeSQLSELECT DATABASE();
4. 删除数据库
用于从 MySQL 服务器中永久移除一个数据库及其包含的所有表和数据。此操作不可逆,请谨慎使用。
-
语法
DROP DATABASE [IF EXISTS] 数据库名; -
说明
-
IF EXISTS 是一个可选子句,如果添加了该子句,那么只有在该数据库确实存在时才会执行删除操作,避免了因数据库不存在而报错。
-
4)寻求帮助


更多推荐
所有评论(0)