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

相关推荐
z1234567898613 分钟前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
程序猿DD15 分钟前
一个 API Key,统一调用大模型、生图和联网搜索
数据库·网关
用户71333585156241 小时前
MySQL - InnoDB 的 Buffer Pool
mysql
尽兴-1 小时前
企业业务系统架构选型与渐进式演进
运维·系统架构·devops
TlSfoward1 小时前
抓包代理链路下的 TLS 指纹变化分析 TLSFOWARD抓包工具
数据库·爬虫·网络协议·搜索引擎·php
数智化管理手记1 小时前
账龄分析手工统计易遗漏?自动账龄分析工具怎么搭建
大数据·网络·数据库·人工智能·数据挖掘
通信小小昕1 小时前
Ubuntu 26.04 中文输入法安装
linux·运维·ubuntu
LabVIEW开发2 小时前
NI Package Manager安装LabVIEW时InternalServerError错误
网络·数据库·labview·labview知识·labview功能·labview程序
SelectDB2 小时前
PostgreSQL 实时同步到 Apache Doris:一站式 CDC 解决方案
数据库
壮哥_icon2 小时前
【Android 系统开发】使用 BAT 脚本高效自动化管理 /system/priv-app/ 系统应用(安装与卸载)
android·运维·自动化