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' @ '%' ;

十一.权限说明


总结:

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

相关推荐
曹牧39 分钟前
Oracle:Replace
数据库·oracle
ZeroNews内网穿透41 分钟前
公网访问本地搭建开源在线流程图工具Draw.io
服务器·数据库·网络协议·安全·http·流程图·draw.io
曹牧1 小时前
Oracle:数字转换为字符串
数据库·oracle
菜鸟小九1 小时前
mysql高级(mysql管理)
数据库·mysql
高级盘丝洞1 小时前
如何通过Powerlink协议读取PLC数据
开发语言·数据库·php
CrazyClaz1 小时前
Sharding-JDBC
数据库·分库分表·sharding-jdbc
编程修仙1 小时前
第四篇 封装SqlSessionFactory
java·数据库·mybatis
吃不胖爹1 小时前
宝塔安装-Redis
数据库·redis·bootstrap
一大树2 小时前
MySQL 报错 ERROR 1045 (28000): Access Denied 终极解决方案
mysql