MySQL数据库管理

目录

前言:

一.数据库基本操作

1.查看数据库信息

2.切换数据库

3.查看数据库中的表

4.查看表结构

二.常用数据类型

三.数据库文件存储结构

[四.SQL 语句分类](#四.SQL 语句分类)

[五.DDL 操作(数据库和表管理)](#五.DDL 操作(数据库和表管理))

1.创建数据库

2.创建数据表

3.删除表

4.删除数据库

5.修改表结构(ALTER)

[六.DML 操作(表数据管理)](#六.DML 操作(表数据管理))

1.插入数据

2.更新数据

3.删除数据

4.清空表

[七.DQL 操作(数据查询)](#七.DQL 操作(数据查询))

1.查询数据

2.限制查询结果

3.竖向显示结果

八.表高级操作

1.临时表

2.克隆表

九.用户管理

1.创建用户

2.查看用户

3.删除用户

4.修改密码

[5.忘记 root 密码处理](#5.忘记 root 密码处理)

十.用户授权管理

1.授权用户

2.查看授权

3.撤销权限

十一.权限说明

总结

前言:

上次和读者们分享了关于数据库的相关概念以及编译安装操作,今天我将对数据库管理的相关命令和操作做一个讲解。

一.数据库基本操作

1.查看数据库信息

显示当前 MySQL 服务器上所有数据库列表
SHOW DATABASES;

2.切换数据库

切换当前操作的数据库
USE 数据库名 ;

3.查看数据库中的表

显示当前数据库或指定数据库的所有表
SHOW TABLES;
SHOW TABLES IN 数据库名 ;

4.查看表结构

DESCRIBE 表名 ;
输出结果:
Field :字段名称
Type :字段类型
Null :是否允许为空
Key :是否是主键( PRI )、唯一键( UNI )或索引( MUL )
Default :默认值
Extra :额外属性(如 auto_increment )

二.常用数据类型


注意事项
CHAR 存入长度不足时补空格,超出指定长度低版本截取,高版本报错
主键唯一,可由多个字段组成(联合主键)

三.数据库文件存储结构

MySQL 数据目录: /usr/local/mysql/data
每个数据库对应一个子目录,每个表对应若干文件:
MyISAM : .frm (表结构)、 .MYD (数据)、 MYI (索引)
InnoDB
独享表空间: .ibd 文件(每表一个文件)
共享表空间: ibdata 文件(多个表共用)

四.SQL****语句分类

五.DDL****操作(数据库和表管理)

1.创建数据库

CREATE DATABASE 数据库名 ;

2.创建数据表

CREATE TABLE 表名 (
字段 1 数据类型 约束条件 ,
字段 2 数据类型 约束条件 ,
...
PRIMARY KEY ( 主键字段 )
);
create table zcx
示例:
CREATE DATABASE szsx_school;
USE szsx_school;
CREATE TABLE yjs0805 (
id INT NOT NULL ,
name CHAR ( 10 ) NOT NULL ,
score DECIMAL ( 5 , 2 ),
passwd CHAR ( 48 ) DEFAULT '' ,
PRIMARY KEY (id)
);
DESC yjs0805;
NOT NULL :不能为空
DEFAULT :默认值
PRIMARY KEY :主键
UNIQUE KEY :唯一键
AUTO_INCREMENT :自增长字段

3.删除表

DROP TABLE 表名 ;
DROP TABLE 数据库名 . 表名 ; -- 不切换数据库时使用

4.删除数据库

DROP DATABASE 数据库名 ;

5.修改表结构(ALTER

-- 修改表名
ALTER TABLE 旧表名 RENAME 新表名 ;
-- 增加字段
ALTER TABLE 表名 ADD 字段名 数据类型 约束 ;
-- 修改字段
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 约束 ;
ALTER TABLE 表名 MODIFY COLUMN 字段名 数据类型 ;
-- 删除字段
ALTER TABLE 表名 DROP 字段名 ;

六.DML****操作(表数据管理)

1.插入数据

INSERT INTO 表名 ( 字段 1, 字段 2,...) VALUES ( 值 1, 值 2, ...);

2.更新数据

UPDATE 表名 SET 字段 1= 值 1, 字段 2= 值 2 WHERE 条件 ;

3.删除数据

DELETE FROM 表名 WHERE 条件 ;

4.清空表

-- 方法 1: DELETE
DELETE FROM 表名 ;
-- 方法 2: TRUNCATE
TRUNCATE TABLE 表名 ;
DELETE 可带 WHERE 条件,可回滚,速度慢
TRUNCATE 不可回滚,速度快, ID 自增重置

七.DQL****操作(数据查询)

1.查询数据

SELECT 字段 1, 字段 2 FROM 表名 WHERE 条件 ;
SELECT * FROM 表名 ; -- 查询所有字段

2.限制查询结果

SELECT * FROM 表名 LIMIT 起始行 , 查询条数 ;
SELECT * FROM 表名 LIMIT 2 ; -- 显示前 2 行
SELECT * FROM 表名 LIMIT 2 , 3 ; -- 从第 2 行开始显示 3 行

**3.**竖向显示结果

SELECT * FROM 表名 \G

八.表高级操作

1.临时表

CREATE TEMPORARY TABLE 表名 (...);
临时表只存在于当前连接,会在连接关闭时自动销毁
可进行增删改查操作

2.克隆表

-- 仅复制表结构
CREATE TABLE 新表 LIKE 旧表 ;
-- 复制表结构和数据
CREATE TABLE 新表 AS SELECT * FROM 旧表 ;

九.用户管理

1.创建用户

CREATE USER ' 用户名 ' @ ' 来源地址 ' IDENTIFIED BY ' 密码 ' ;
localhost :本地登录
% :允许任意 IP 登录
密码可使用明文或加密方式

2.查看用户

USE mysql;
SELECT User, Host, authentication_string FROM user;

3.删除用户

DROP USER ' 用户名 ' @ ' 来源地址 ' ;

4.修改密码

SET PASSWORD = PASSWORD( ' 新密码 ' ); -- 当前用户
SET PASSWORD FOR ' 用户 ' @ ' 来源地址 ' = PASSWORD( ' 新密码 ' ); -- 其他用户

5.忘记root密码处理

修改 /etc/my.cnf 添加:

mysqld

skip-grant-tables
重启 MySQL 服务并直接登录
修改密码:
UPDATE mysql .user SET AUTHENTICATION_STRING=PASSWORD( ' 新密码 ' ) WHERE user= 'root' ;
FLUSH PRIVILEGES;
删除 skip - grant - tables 并重启 MySQL

十.用户授权管理

1.授权用户

GRANT 权限列表 ON 数据库 . 表 TO ' 用户名 ' @ ' 来源地址 ' IDENTIFIED BY ' 密码 ' ;
权限示例: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX, EXECUTE,
ALL
*.* 表示所有数据库和表
示例
GRANT SELECT ON school.* TO 'zhangsan' @ 'localhost' IDENTIFIED BY 'abc123' ;
GRANT ALL PRIVILEGES ON *.* TO 'lisi' @ '%' IDENTIFIED BY '123456' ;
FLUSH PRIVILEGES # 刷新权限

2.查看授权

SHOW GRANTS FOR ' 用户名 ' @ ' 来源地址 ' ;

3.撤销权限

REVOKE 权限列表 ON 数据库 . 表 FROM ' 用户名 ' @ ' 来源地址 ' ;
REVOKE ALL ON *.* FROM 'lisi' @ '%' ;

十一.权限说明


总结:

今天我主要分享了一些数据库的管理操作,主要包含数据库/表增删查改,用户创建,授权等相关操作的相关语句,希望对读者们有所帮助!

相关推荐
GuWenyue2 小时前
Cursor黑盒拆解!1套LangChain.js手写Mini编程Agent,自动生成React项目,效率提升60%
前端·数据库·人工智能
Miao121314 小时前
某海外住宿平台如何在大规模场景下实现指标一致性:Minerva 指标平台实践
大数据·数据库·人工智能
CodexDave4 小时前
MySQL事务隔离级别与MVCC机制解析
前端·数据库·mysql·nginx·性能优化·负载均衡
碎光拾影4 小时前
ARM交叉工具链各工具作用及IMX6ULL平台LED+蜂鸣器裸机程序实现
java·开发语言·数据库
曾阿伦4 小时前
MongoDB 查询语句备忘手册
数据库·mongodb
一叶龙洲4 小时前
wslg打开Ubuntu24.04默认打开图形界面
linux·服务器·数据库·ubuntu
CCPC不拿奖不改名4 小时前
大模型推理架构与开源生态知识整理
数据库·windows·python·架构·langchain·开源·github
爬也要爬着前进6 小时前
redis主从搭建
数据库·redis·缓存
@Mike@6 小时前
02-数据库学习笔记(SQL引擎)
数据库·笔记·学习
王琦03186 小时前
生产环境中使用通用二进制包安装
mysql