MySQL数据库管理

使用 MySQL 数据库

查看数据库结构

Mysql是一套数据库管理系统,在每一台Mysql服务器中,均支持运行多个数据库,每个数据库相当于一个容器,其中存放着许多表。

1.查看当前服务器中的数据库

show databases语句:用于査看当前 MySQL服务器中包含的数据库,MySQL 的每一条操作语句都是以分号(;)结束的。

经初始化后的 MySQL服务器,默认建立了四个数据库:test、mysql、information schema和 performance schema(其中 mysql是MySQL服务正常运行所需的数据库,其中包含了用户认证相关的表),执行以下操作可以进行查看。

SHOW DATABASES;

2.查看当前数据库中有哪些表

SHOW TABLES 语句:用于査看当前所在的数据库中包含的表。在操作之前,需要先使用 USE 语句切换到所使用的数据库。

USE mysql;
SHOW TABLES;

3.查看表的结构

DESCRIBE语句:用于显示表的结构,即组成表的各字段(列)的信息。需要指定"数据库名.表名"作为参数;若只指定表名参数,则需先通过 USE 语句切换到目标数据库。

USE mysql;
DESCRIBE user;

数据库目前标准的指令集是 SQL。SQL 是 Structured Query Language 的缩写,即结构化査询语言。

SQL语言主要由以下几部分组成。

DDL(Data Definition Language,数据定义语言):用来建立数据库、数据库对象和定义字段,如 CREATE、ALTER、DROP。

DML(Data Manipulation Language,数据操纵语言):用来插入、删除和修改数据库中的数据,如INSERT、UPDATE、DELETE。

DQL(Data Query Language,数据查询语言):用来查询数据库中的数据,如 SELECT。

DCL(Data Control Language,数据控制语言):用来控制数据库组件的存取许可、存取权限等,如COMMIT、ROLLBACK、GRANT、REVOKE

创建及删除数据库和表

1.创建新的数据库

CREATE DATABASE auth;

2.创建新的表

CREATE TABLE 语句: 用于在当前数据库中创建新的表,需指定数据表名称作为参数,并定义该表格所使用的各字段,基本格式如下所示。

CREATE TABLE 表名(字段1名称类型,字段2名称类型,..., PRIMARY KEY (主键名))

USE auth;
CREATE TABLE users (user name CHAR(16) NOT NULL, user_passwd CHAR(48DEFAULT ", PRIMARY KEY (user name));

3.删除一个数据表

DROP TABLE 语句:用于删除数据库中的表,需要指定"数据库名.表名"作为参数;若只指定表名参数,则需先通过执行"USE"语句切换到目标数据库。例如,执行以下操作可以删除 auth 数据库中的 users 表。

DROP TABLE auth.users;

4.删除一个数据库

DROP DATABASE 语句:用于删除指定的数据库,需要指定数据库名作为参数。例如,执行以下操作可以删除名为 auth 的数据库。

DROP DATABASE auth;

表中的数据记录管理

插入数据记录

INSERT INTO 语句:用于向表中插入新的数据记录,语句格式如下所示。

INSERTINTO 表名(字段 1,字段 2....) VALUES(字段1的值,字段2的值,...)

use auth;
INSERT INTO users(user name,user passwd) VALUES('zhangsan',PASSWORD('123456'));
INSERT INTO users VALUES("lisi', PASSWORD('654321'));

查询数据记录

SELECT语句:用于从指定的表中查找符合条件的数据记录。MySQL数据库支持标准的 SQL 查询语句,语句格式如下所示。

SELECT 字段名1,字段名 2..FROM 表名 WHERE 条件表达式

select *from auth.users;

当需要根据特定的条件查找记录时,WHERE 条件子句是必不可少的。

SELECT user name,user_passwd FROM auth.users WHERE user_name='zhangsan';

数据库表高级操作

create table tmp like player;
insert into tmp select*from player; 
delete from tmp where level >= 45
delete from tmp;
insert into tmp select * from player
truncate table tmp;
select count(*) from tmp;

DELETE 在不加 WHERE 子句的时候,跟 TRUNCATE 是一样的效果,清空整个表。在清空表的时候有一点不同,看他们返回的结果,DELETE 返回的结果内有删除的记录条目,而TRUNCATE 并没有返回被删除的条目。

临时表

MySQL的临时表,顾名思义,就是临时建立的表,并不会长期存在,主要用于保存些临时数据。临时表有个特性,就是只在当前连接可见,当前连接下可执行增删改查等操作,当连接被关闭后,临时表就会被 MySQL删除,相关的资源也会被释放。

select * from mytmp;
CREATE TEMPORARY TABLE "mytmp'(->'Id Int(10) NOT NULL AUTO INCREMENT.
.>"NAME' varchar(32) CHARACTER SET Utf8 COLLATE Utf8_bin NOT NULL
-> level` int(10) NOT NULL,->PRIMARY KEY (id).>)ENGINE-InnODB DEFAULT CHARSET Ut8;
insert into mytmp(name,level) values{'aa',10);
select * from mytmp;
quit   //退出当前连接


select* from mytmp;   //重新连接 MySQL之后查看临时表状态

数据库用户授权

MYSQL 数据库的 root 用户账号拥有对所有数据库、表的全部权限,频繁使用 root 账号会给数据库服务器带来一定的安全风险。

1.授予权限

GRANT 语句:专门用来设置数据库用户的访问权限。当指定的用户名不存在时,GRANT 语句将会创建新的用户:当指定的用户名存在时,GRANT 语句用于修改用户信息。语句格式如下所示。

GRANT 权限列表 ON 数据库名.表名 TO 用户名@来源地址[IDENTIFIED BY"密码' ]

GRANT select ON auth,* To "xiaogi'@'localhost' IDENTIFIED BY '123456';
mysql .u xiaoqi -p
SELECT*FROM auth.users;
SELECT*FROM mysql.user;   //验证非授权的访问操作
CREATE DATABASE bdgn;
GRANT all ON bdqn.* To "dbuser'@"192.168.4.19' IDENTIFIED BY 'pWd@123';

查看权限

SHOW GRANTS 语句:专门用来查看数据库用户的授权信息,通过FOR 子句可指定查看的用户对象

SHOW GRANTS FOR 用户名@来源地址

SHOW GRANTS FOR "dbuser'@"192.168.4.19';

撤销权限

REVOKE 语句:用于撤销指定用户的数据库权限,撤销权限后的用户仍然可以连接到MYSQL服务器,但将被禁止执行对应的数据库操作,语句格式如下所示。

REVOKE all ON auth.* FROM 'xiaogi@"localhost';
SHOW GRANTS FOR"xiaogi'@"locahost;    //确认已撤销对 auth 库的权限
相关推荐
洛阳泰山13 分钟前
Llamaindex 使用过程中的常见问题 (FAQ)
java·服务器·数据库·python·llm·rag·llamaindex
没有名字的小羊18 分钟前
Linux基础命令——账户简单管理
linux·运维·服务器·网络·数据库
smile_life_19 分钟前
服务器非法关闭后MySQL服务启动失败
运维·服务器·mysql
单字叶31 分钟前
MySQL数据库管理
数据库·mysql
Deryck_德瑞克33 分钟前
mysql笔记—sql性能分析
笔记·sql·mysql
ID_云泽33 分钟前
MVCC机制解析:提升数据库并发性能的关键
数据库·mvcc
小灰灰是码农...34 分钟前
MySQL的数据库课程设计的基本步骤和考虑因素
数据库
行走的山峰1 小时前
etcd三节点,其中一个坏掉了的恢复办法
数据库·etcd
shelby_loo4 小时前
通过 Docker 部署 MySQL 服务器
服务器·mysql·docker