数据库基础
# 数据库的概念
数据库是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
数据库的存储介质:
- 磁盘
- 内存
# 连接服务器
mysql -h 127.0.0.1 -P 3306 -u root -p
1
-h: 表示你要连接的 MySQL 服务器所在的主机,127.0.0.1 表示本主机。-P: 表示你要连接的 MySQL 服务器所对应的端口号,一般默认是 3306。-u: 表示用哪一个用户连接 MySQL 服务器,root 表示超级用户。-p: 表示该用户对应的密码,密码可以直接跟在-p 后面,也可以回车后输入
# SQL 分类
SQL(Structured Query Language,结构化查询语言)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL 语句可分为如下三类:
- DDL(Data Definition Language)数据定义语言,用来维护存储数据的结构。比如 create 语句、drop 语句、alter 语句等。
- DML(Data Manipulation Language)数据操作语言,用来对数据进行操作。比如 insert 语句、delete 语句、update 语句等。
- DCL(Data Control Language)数据控制语言,主要负责权限管理和事务。比如 grant 语句、revoke 语句、commit 语句。
说明一下: DML 中又单独分了一个 DQL(Data Query Language)数据查询语言,比如 select 语句、from 语句、where 语句等。
# 存储引擎
存储引擎就是数据库管理系统如何存储数据、如何为存储的数据建立索引、如何更新数据、如何查询数据等技术的实现方法,MySQL 中的存储引擎是插件式的存储引擎,它可以支持多种存储引擎。
查询存储引擎:
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| ndbcluster | NO | Clustered, fault-tolerant tables | NULL | NULL | NULL |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
| ndbinfo | NO | MySQL Cluster system information storage engine | NULL | NULL | NULL |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 用户管理
用户信息存储在mysql数据库中user表中:
mysql> select User, Host from user;
+------------------+-----------+
| User | Host |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 创建用户
CREATE USER '用户名'@'登录主机' IDENTIFIED BY '密码';
1
# 删除用户
DROP USER '用户名'@'登录地址';
1
# 权限管理
新创建的用户没有任何权限,因此创建用户后需要给用户授权。
# 授予权限
GRANT 权限列表 ON 库名.对象名 TO '用户名'@'登录地址' [IDENTIFIED BY '密码'];
1
# 查看权限
show grants for '用户名'@'登录地址'
1
# 回收权限
REVOKE 权限列表 ON 库名.对象名 FROM '用户名'@'登录地址';
1
上次更新: 2025/11/11, 22:03:54