MySQL入门到精通—基础知识篇

目录

MySQL 安装与配置

在 Linux 上安装 MySQL

在 Windows 上安装 MySQL

MySQL 基本配置

用户和权限管理

MySQL 数据库基本概念

数据库和表的管理

数据库管理

数据表管理

数据类型及其使用

整数类型

浮点类型

定点数类型

字符和字符串类型

TEXT 类型

日期和时间类型

二进制类型

枚举和集合类型

SET

基本SQL语句

SELECT语句

INSERT 语句

UPDATE 语句

DELETE 语句

条件查询

WHERE 子句

聚合函数

COUNT

SUM

AVG

MAX

MIN

分组查询

GROUP BY 子句

HAVING 子句

排序查询

ORDER BY 子句

连接查询

INNER JOIN

LEFT JOIN

RIGHT JOIN

FULL JOIN

CROSS JOIN

SELF JOIN

子查询

子查询的类型

子查询的使用

​​​​​​​组合查询

UNION 

UNION ALL

INTERSECT

EXCEPT


MySQL 安装与配置

MySQL 是广泛使用的关系型数据库管理系统。

以下是 MySQL 在 Linux 和 Windows 上的安装与配置步骤。

在 Linux 上安装 MySQL

1. 更新包索引

sudo apt update

2. 安装 MySQL

sudo apt install mysql-server

3. 启动 MySQL 服务并配置

sudo systemctl start mysql

sudo systemctl enable mysql

4. 运行安全安装脚本

sudo mysql_secure_installation

该脚本将引导您完成设置 root 密码、删除匿名用户、禁用远程 root 登录和删除测试数据库等步骤。

5. 验证 MySQL 服务状态

sudo systemctl status mysql

6. 登录 MySQL

sudo mysql -u root -p

在 Windows 上安装 MySQL

1. 下载 MySQL 安装包

从 MySQL 官方网站 MySQL Downloads 下载 Windows 安装程序。

2. 运行安装程序

双击下载的安装程序,按照向导进行安装。

3. 选择安装类型

选择合适的安装类型(如 Developer Default、Server only 等)。

4. 配置 MySQL

按照提示配置 MySQL Server,如设置 root 用户密码、选择默认字符集等。

5. 启动 MySQL

安装完成后,MySQL 服务会自动启动。如果未启动,可以手动启动服务:

net start mysql

6. 登录 MySQL

打开命令提示符,输入:

mysql -u root -p

MySQL 基本配置

1. 修改配置文件

MySQL 的配置文件通常位于 /etc/mysql/my.cnf(Linux)

或 C:\ProgramData\MySQL\MySQL Server x.x\my.ini(Windows)

2. 常见配置选项

绑定地址(默认只允许本地连接):

bind-address = 0.0.0.0

最大连接数:

max_connections = 200

字符集:

[mysqld]

character-set-server=utf8mb4

collation-server=utf8mb4_unicode_ci

3. 重启 MySQL 服务

配置修改后需要重启 MySQL 服务以应用更改。

在 Linux 上:

sudo systemctl restart mysql

在 Windows 上:

net stop mysql

net start mysql

用户和权限管理

1. 创建新用户

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

2. 授予权限

GRANT ALL PRIVILEGES ON database.* TO 'username'@'host';

3. 刷新权限

FLUSH PRIVILEGES;

4. 查看用户和权限

SELECT user, host FROM mysql.user;

SHOW GRANTS FOR 'username'@'host';

5. 删除用户

DROP USER 'username'@'host';

MySQL 数据库基本概念

MySQL 是一个流行的开源关系型数据库管理系统(RDBMS)。

它使用 SQL(结构化查询语言)来管理和操作数据。

有以下是一些 MySQL 数据库的基本概念:

1. 数据库(Database)

数据库是一个组织化的数据集合。在 MySQL 中,一个数据库包含多个表。

每个数据库都有一个名称,通过这个名称可以进行访问和操作。

2. 表(Table)

表是数据存储的基本单位,它由行和列组成。每张表都有一个唯一的名称。在一个表中,列(或字段)定义了数据的类型和结构,而行(或记录)存储了具体的数据。

3. 列(Column)

列是表中的一个垂直部分,每列包含一种特定的数据类型,例如整数、字符串、日期等。列定义了表的结构和数据属性。

4. 行(Row)

行是表中的一个水平部分,每行包含了一条记录的数据。行由多个列的数据组成,每一行代表一个实体的数据。

5. 索引(Index)

索引是一个数据结构,用于加速查询操作。它通过在表中创建额外的数据结构来提高查询效率。常见的索引类型有主键索引、唯一索引和全文索引。

6. 主键(Primary Key)

主键是表中一列或多列的组合,用于唯一标识表中的每一行。一个表只能有一个主键,主键中的列不能为空且必须唯一

7. 外键(Foreign Key)

外键是一个或多个列的组合,用于建立和强制两个表之间的关系。外键列的值必须匹配另一表中主键或唯一键的值,从而实现表之间的参照完整性。

8. 约束(Constraint)

约束是应用在表列上的规则,用于确保数据的完整性和一致性。常见的约束有:

NOT NULL:列不能包含 NULL 值。

UNIQUE:列中的所有值必须唯一。

PRIMARY KEY:主键约束,唯一标识每一行。

FOREIGN KEY:外键约束,用于建立表之间的关系。

CHECK:确保列中的值满足特定条件。

9. 视图(View)

视图是基于一个或多个表的查询结果集。视图本质上是一个虚拟表,不存储数据,只存储查询逻辑。视图可以简化复杂查询并增强数据的安全性。

10. 存储过程(Stored Procedure)

存储过程是预编译的 SQL 代码块,存储在数据库服务器上,可以通过调用来执行特定任务。存储过程可以包含逻辑控制语句、变量和条件判断等

11. 触发器(Trigger)

触发器是自动执行的 SQL 代码块,当表上的特定事件(如插入、更新或删除)发生时触发执行。触发器可以用于数据验证、自动填充等

12. 事务(Transaction)

事务是一组操作的集合,这些操作要么全部执行成功,要么全部回滚。事务确保了数据库操作的原子性、一致性、隔离性和持久性(ACID 属性)

13. SQL 语句

SQL 是用于访问和操作数据库的标准语言。常见的 SQL 语句包括:

SELECT:查询数据。

INSERT:插入数据。

UPDATE:更新数据。

DELETE:删除数据。

CREATE:创建数据库和表等对象。

ALTER:修改数据库和表等对象。

DROP:删除数据库和表等对象。

数据库和表的管理

数据库管理

创建数据库

CREATE DATABASE mydatabase;

查看现有数据库

SHOW DATABASES;

选择数据库

在执行操作之前,您需要选择要操作的数据库。

USE mydatabase;

修改数据库

MySQL 没有直接修改数据库名称的 SQL 语句,通常需要通过备份和恢复的方式实现。

以下是一个备份和恢复的示例:

导出数据库:

mysqldump -u username -p mydatabase > mydatabase.sql

创建新数据库并导入数据:

CREATE DATABASE newdatabase;

mysql -u username -p newdatabase < mydatabase.sql

删除旧数据库:

DROP DATABASE mydatabase;

删除数据库

使用 DROP DATABASE 语句删除一个数据库及其所有表。

DROP DATABASE mydatabase;

数据表管理

创建表

使用CREATE TABLE 语句创建一个新表。以下是一个包含各种数据类型和约束的

示例:

CREATE TABLE employees (

    id INT AUTO_INCREMENT PRIMARY KEY,

    first_name VARCHAR(50) NOT NULL,

    last_name VARCHAR(50) NOT NULL,

    email VARCHAR(100) UNIQUE,

    hire_date DATE NOT NULL,

    salary DECIMAL(10, 2) CHECK (salary > 0)

);

查看现有表

使用 SHOW TABLES 语句查看当前数据库中的所有表。

SHOW TABLES;

查看表结构

使用 DESCRIBE 或 SHOW COLUMNS 语句查看表的结构。

DESCRIBE employees;

-- 或

SHOW COLUMNS FROM employees;

修改表结构

使用 ALTER TABLE 语句修改表的结构,如添加、修改或删除列。

添加列:

ALTER TABLE employees ADD COLUMN department VARCHAR(50);

修改列:

ALTER TABLE employees MODIFY COLUMN salary DECIMAL(12, 2);

重命名列:

ALTER TABLE employees CHANGE COLUMN department dept VARCHAR(50);

删除列:

ALTER TABLE employees DROP COLUMN dept;

添加约束:

ALTER TABLE employees ADD CONSTRAINT chk_salary CHECK (salary > 0);

重命名表

使用 RENAME TABLE 语句重命名表。

RENAME TABLE employees TO staff;

删除表

使用 DROP TABLE 语句删除一个表。

DROP TABLE employees;

复制表

复制表结构及其数据(不复制索引和约束):

CREATE TABLE new_employees AS SELECT * FROM employees;

仅复制表结构(无数据):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值