数据库运维常识
DQL、DML、DCL 和 DDL 是 SQL(结构化查询语言)中的四个重要类别,它们分别用于不同类型的数据库操作,下面为你简单明了地解释这四类语句:
1. DQL(数据查询语言,Data Query Language)
- 定义:主要用于从数据库中查询数据,不涉及对数据的修改、插入或删除操作。
- 常用命令:
SELECT
是 DQL 中最核心的命令,用于指定查询的字段、表以及查询条件等。 - 示例:从
employees
表中查询所有员工的姓名和薪水:
SELECT name, salary FROM employees;
1.创建数据库支持中文编码 大小写不敏感(完美且严谨)
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.查询我当前在那个数据库中:
select databases();
3.查看数据表结构:
desc + 数据表名;
4.查看表中所有信息:
select * from + 表名;
指定查询 (比如查询: user host password)
2. DML(数据操作语言,Data Manipulation Language)
- 定义:用于对数据库中的数据进行增、删、改操作。
- 常用命令
INSERT
:用于向数据库表中插入新的数据记录。UPDATE
:用于修改数据库表中已有的数据记录。DELETE
:用于从数据库表中删除指定的数据记录。\
1.删除一些无用的用户数据
语法: delelte from 数据库.数据表 where 条件;
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
:用于回滚事务,撤销事务中所做的所有修改。
- 示例
- 授予权限:授予用户
user1
对employees
表的查询权限。
- 授予权限:授予用户
GRANT SELECT ON employees TO user1;
- 撤销权限:撤销用户
user1
对employees
表的查询权限。
REVOKE SELECT ON employees FROM user1;
1.案例:给开发创建一个账号 用来连接数据库 和查看数据库信息:
create user test1@'%' identified by '2004129'; //发现可以远程登录但是 无法进行任何操作----
2.接着我们给test1用户赋予查看mysql数据库下的user表权限:
grant select on mysql.user to test1@'%';
2.查询用户权限
备注:默认创建的用户 只有一个USAGE权限(只能登陆)
reate user test1@'%' identified by '2004129';
flush privileges; //刷新数据库
4. DDL(数据定义语言,Data Definition Language)
- 定义:用于定义数据库的结构,包括创建、修改和删除数据库对象(如表、视图、索引等)。
- 常用命令
CREATE
:用于创建数据库对象,如创建数据库、表、视图等。ALTER
:用于修改已存在的数据库对象的结构,如添加列、修改列的数据类型等。DROP
:用于删除数据库对象,如删除数据库、表、视图等。
- 示例
- 创建表:创建一个名为
employees
的表。
- 创建表:创建一个名为
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(50),
salary DECIMAL(10, 2)
);
- 修改表:向
employees
表中添加一个新的列department
。
ALTER TABLE employees ADD COLUMN department VARCHAR(50);
- 删除表:删除
employees
表。
DROP TABLE employees;
副本:
1.查看数据库编码类型:
show variables like 'char%';
2.查找匹配关键字 like
show databases like 'u%'; //只查找以u开头的数据库
3.创建数据表(数据表严格区分大小写)
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
/// 查看创建表信息 show create table + 表名
// 查看表结构 desc +表名
MariaDB [kings]> desc tanke;
4.删除数据库
drop database if exists +数据库名;
5.删除数据表
drop table if exists + 表名
用户管理
1.创建用户:
create user test@'%' identified by '密码';
2.授权:
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