MySql数据库运维学习笔记

数据库运维常识

DQL、DML、DCL 和 DDL 是 SQL(结构化查询语言)中的四个重要类别,它们分别用于不同类型的数据库操作,下面为你简单明了地解释这四类语句:

1. DQL(数据查询语言,Data Query Language)

  • 定义:主要用于从数据库中查询数据,不涉及对数据的修改、插入或删除操作。
  • 常用命令SELECT 是 DQL 中最核心的命令,用于指定查询的字段、表以及查询条件等。
  • 示例 :从 employees 表中查询所有员工的姓名和薪水:
sql 复制代码
SELECT name, salary FROM employees;

1.创建数据库支持中文编码 大小写不敏感(完美且严谨)

sql 复制代码
CREATE DATABASE IF NOT EXISTS users2 DEFAULT CHARSET UTF8  COLLATE utf8_general_ci;

案例:

MariaDB (none)> SHOW CREATE DATABASE users2;

±---------±----------------------------------------------------------------------------------------+

| Database | Create Database |

±---------±----------------------------------------------------------------------------------------+

| users2 | CREATE DATABASE users2 /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci */ |

±---------±----------------------------------------------------------------------------------------+

1 row in set (0.000 sec)

MariaDB (none)> show create database users;

±---------±-------------------------------------------------------------------------------------------+

| Database | Create Database |

±---------±-------------------------------------------------------------------------------------------+

| users | CREATE DATABASE users /*!40100 DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci */ |

±---------±-------------------------------------------------------------------------------------------+

2.查询我当前在那个数据库中:

sql 复制代码
select databases();

3.查看数据表结构:

sql 复制代码
desc + 数据表名;

4.查看表中所有信息:

sql 复制代码
select  * from + 表名;

指定查询 (比如查询: user  host password)

2. DML(数据操作语言,Data Manipulation Language)

  • 定义:用于对数据库中的数据进行增、删、改操作。
  • 常用命令
    • INSERT:用于向数据库表中插入新的数据记录。
    • UPDATE:用于修改数据库表中已有的数据记录。
    • DELETE:用于从数据库表中删除指定的数据记录。\

1.删除一些无用的用户数据

sql 复制代码
语法:  delelte  from  数据库.数据表 where  条件;
sql 复制代码
delete from mysql.user where user='xxw' and host='192.168.153.*';    //删除mysql数据库下user表   user等于xxw  并且 host=192.168.153.*的用户数据

3. DCL(数据控制语言,Data Control Language)

  • 定义:用于控制数据库的访问权限和事务处理,确保数据库的安全性和数据完整性。
  • 常用命令
    • GRANT:用于授予用户或角色对数据库对象(如表、视图等)的特定权限。
    • REVOKE:用于撤销用户或角色已经被授予的权限。
    • COMMIT:用于提交事务,将事务中所做的所有修改永久保存到数据库中。
    • ROLLBACK:用于回滚事务,撤销事务中所做的所有修改。
  • 示例
    • 授予权限:授予用户 user1employees 表的查询权限。
sql 复制代码
GRANT SELECT ON employees TO user1;
  • 撤销权限:撤销用户 user1employees 表的查询权限。
sql 复制代码
REVOKE SELECT ON employees FROM user1;

1.案例:给开发创建一个账号 用来连接数据库 和查看数据库信息:

sql 复制代码
create user test1@'%' identified by '2004129';    //发现可以远程登录但是 无法进行任何操作----

2.接着我们给test1用户赋予查看mysql数据库下的user表权限:

sql 复制代码
grant select on mysql.user to test1@'%';

2.查询用户权限

sql 复制代码
备注:默认创建的用户 只有一个USAGE权限(只能登陆)

reate user test1@'%' identified by '2004129';
sql 复制代码
flush privileges;   //刷新数据库

4. DDL(数据定义语言,Data Definition Language)

  • 定义:用于定义数据库的结构,包括创建、修改和删除数据库对象(如表、视图、索引等)。
  • 常用命令
    • CREATE:用于创建数据库对象,如创建数据库、表、视图等。
    • ALTER:用于修改已存在的数据库对象的结构,如添加列、修改列的数据类型等。
    • DROP:用于删除数据库对象,如删除数据库、表、视图等。
  • 示例
    • 创建表:创建一个名为 employees 的表。
sql 复制代码
CREATE TABLE employees (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    salary DECIMAL(10, 2)
);
  • 修改表:向 employees 表中添加一个新的列 department
sql 复制代码
ALTER TABLE employees ADD COLUMN department VARCHAR(50);
  • 删除表:删除 employees 表。
sql 复制代码
DROP TABLE employees;

副本:

1.查看数据库编码类型:

sql 复制代码
show variables like 'char%';

2.查找匹配关键字 like

sql 复制代码
show databases like 'u%';      //只查找以u开头的数据库

3.创建数据表(数据表严格区分大小写)

sql 复制代码
CREATE TABLE IF NOT EXISTS `tanke` (   

 id INT,    name VARCHAR(100) NOT NULL,  

  jneng VARCHAR(100) NOT NULL,    

jiage INT NOT NULL,    

PRIMARY KEY (id) ) ENGINE=innodb DEFAULT CHARSET=utf8;   //  PRIMARY KEY (id)  设置key为id

​                                                        //  ENGINE=innoDB  设置引擎为Innodb
sql 复制代码
///  查看创建表信息     show create table + 表名
sql 复制代码
// 查看表结构     desc +表名

MariaDB [kings]> desc tanke;

4.删除数据库

sql 复制代码
 drop database if exists +数据库名;

5.删除数据表

sql 复制代码
  drop table if exists + 表名

用户管理

1.创建用户:

sql 复制代码
 create user test@'%' identified by '密码';

2.授权:

sql 复制代码
grant all select,input,update,create on 数据库.数据表 to test@'%' identified by '密码';

危险:给予最大权限:grant all privileges on 数据库.数据表 to test@'%' identified by '密码';

删除用户: drop user 用户名+'ip' // 加不加ip都可以 加了更精准

-----------------------------------------------------------------------------------------------------------------------------2025年2/22 23:51

相关推荐
数智工坊5 小时前
Zotero自建Ubuntu WebDAV附件同步方案(完美解决存储空间不足)
linux·运维·ubuntu
独隅6 小时前
GitHub Actions 自动化运维实战:CI/CD 流水线一体化效果展示
运维·自动化·github
IvorySQL7 小时前
PostgreSQL 日报 | JOIN 与外键优化(8 月 9 日)
数据库·postgresql
饺子大魔王的男人7 小时前
CentOS部署Cockpit:图形化查看系统、日志与服务状态
linux·运维·centos
ltl7 小时前
自治数据库十年回顾:Peloton、NoisePage、OtterTune 到云原生 auto-tuning
数据库
不会就选b7 小时前
Linux之信号(二)
linux·运维·服务器
qq_267612898 小时前
Gitee项目管理推荐:从工具链割裂到DevOps全链路贯通的企业级协作实践
运维·gitee·devops
灯澜忆梦8 小时前
【MySQL10】进阶篇 | 索引_#2性能优化
数据库·sql·mysql·性能优化
寺中人9 小时前
Linux 基础命令入门实战教程:从零掌握常用操作,新手快速上手
linux·运维·服务器·shell·linux 命令·linux 基础教程·linux 入门
V哥AI增长9 小时前
Schema.org 结构化数据与GEO技术落地:AI引擎引用机制与JSON-LD部署实证研究
大数据·运维·人工智能