Linux--MySQL数据库管理

文章目录

一、 数据库基本操作

1、用于显示当前MYSQL服务器上所有数据库列表。

bash 复制代码
SHOW DATABASES;

2、 切换当前操作的数据库

bash 复制代码
USE 数据库名;

3、 查看数据库中的表

bash 复制代码
SHOW TABLES;
SHOW TABLES IN 数据库名;

4、查看表结构

bash 复制代码
DESCRIBE 表名;

二、DDL 操作(数据库和表管理)

2.1创建数据库

create database 数据库名;

2.2 创建数据表

  • 字段约束:
    not null:非空
    default:默认值
    primary key:主键
    unique key:唯一键
    auto_increment:自增长字段
bash 复制代码
CREATE TABLE 表名 (
字段1 数据类型 [约束条件],
字段2 数据类型 [约束条件],
...
PRIMARY KEY (主键字段)
);

例如1

查看用desc yjs12;

2.2 删除表

bash 复制代码
DROP TABLE 表名;
DROP TABLE 数据库名.表名; -- 不切换数据库时使用

2.3 删除数据库

bash 复制代码
DROP DATABASE 数据库名;

2.4修改表结构(ALTER)

bash 复制代码
--修改表名
ALTER TABLE 旧表名 RENAME 新表名;
--增加字段
ALTER TABLE 表名 ADD 字段名 数据类型 [约束];
--修改字段
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [约束];
ALTER TABLE 表名 MODIFY COLUMN 字段名 数据类型;
--删除字段
ALTER TABLE 表名 DROP 字段名;

案例1:修改表名称

案例2:添加字段

案例3:删除表中字段

案例4:修改字段名称,并修改它的数据类型

(一种modify修改字段数据类型,一种change更改字段名和字段数据类型 )

bash 复制代码
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [约束];
bash 复制代码
ALTER TABLE 表名 MODIFY COLUMN 字段名 数据类型;

二、DML 操作(表数据管理)

2.1插入数据

bash 复制代码
INSERT INTO 表名(字段1,字段2,...) VALUES (值1, 值2, ...);

2.2更新数据

bash 复制代码
UPDATE 表名 SET 字段1=值1[,字段2=值2] WHERE 条件;

2.3删除数据

bash 复制代码
DELETE FROM 表名 WHERE 条件;

2.4 清空表

DELETE 可带 WHERE 条件,可回滚,速度慢

TRUNCATE 不可回滚,速度快,ID 自增重置

bash 复制代码
-- 方法1: DELETE
DELETE FROM 表名;
-- 方法2: TRUNCATE
TRUNCATE TABLE 表名;

三、DQL 操作(数据查询)

3.1查询数据

1、 查询数据

bash 复制代码
SELECT 字段1,字段2 FROM 表名 WHERE 条件;
SELECT * FROM 表名; -- 查询所有字段

2、限制查询结果

bash 复制代码
SELECT * FROM 表名 LIMIT 起始行, 查询条数;
SELECT * FROM 表名 LIMIT 2; -- 显示前2行
SELECT * FROM 表名 LIMIT 2,3; -- 从第2行开始显示3行

3、竖向显示结果

3.2 表的高级操作

3.2.1 临时表

  • 临时表只存在于当前连接,会在连接关闭时自动销毁
  • 可进行增删改查操作
bash 复制代码
CREATE TEMPORARY TABLE 表名 (...);

3.2.2 克隆表

  • 仅复制表结构(需要添加数据)
  • CREATE TABLE 新表 LIKE 旧表;
  • 复制表结构和数据
    复制过来的表结构缺少主键;

四、用户管理

1、创建用户

localhost :本地登录

% :允许任意 IP 登录

密码可使用明文或加密方式

bash 复制代码
CREATE USER '用户名'@'来源地址' IDENTIFIED BY '密码';

查看用户

2、删除用户

DROP USER '用户名'@'来源地址';

3、修改密码

bash 复制代码
SET PASSWORD = PASSWORD('新密码'); -- 当前用户
SET PASSWORD FOR '用户'@'来源地址' = PASSWORD('新密码'); -- 其他用户

4、忘记 root 密码处理

跳过密码直接登录mysql

修改 /etc/my.cnf 添加:

bash 复制代码
[mysqld]
skip-grant-tables
  1. 重启 MySQL 服务并直接登录
  2. 修改密码:
bash 复制代码
UPDATE mysql.user SET AUTHENTICATION_STRING=PASSWORD('新密码') WHERE user='root';
FLUSH PRIVILEGES;

3、删除 skip-grant-tables 并重启 MySQL

五、用户授权管理

5.1授权用户

bash 复制代码
GRANT 权限列表 ON 数据库.表 TO '用户名'@'来源地址' IDENTIFIED BY '密码';
  • 权限示例:SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX, EXECUTE,
    ALL
  • . 表示所有数据库和表
bash 复制代码
GRANT SELECT ON school.* TO 'zhangsan'@'localhost' IDENTIFIED BY 'abc123';
bash 复制代码
GRANT ALL PRIVILEGES ON *.* TO 'lisi'@'%' IDENTIFIED BY '123456';

如果没有生效,需要刷新权限。

FLUSH PRIVILEGES #刷新权限

5.2查看授权

bash 复制代码
show GRANTS FOR '用户名'@'来源地址';

5.3 撤销权限

bash 复制代码
REVOKE 权限列表 ON 数据库.表 FROM '用户名'@'来源地址';
REVOKE ALL ON *.* FROM 'lisi'@'%';
相关推荐
孙严Pay2 小时前
快捷支付和网关支付到底哪个更安全呢?
笔记·科技·计算机网络·其他·微信
影林握雪1 天前
M|大佛普拉斯 (2017)
经验分享·笔记·其他·生活
gavin_gxh1 天前
SAP CO CK 465 用于物料/批 工厂 不能确定价格
运维·经验分享·其他
影林握雪1 天前
M|窃听风暴 Das Leben der Anderen (2006)
经验分享·笔记·其他·生活
jyan_敬言2 天前
【Docker】Kubernetes部署容器化应用程序
c++·笔记·其他·docker·容器·kubernetes·学习方法
m0_485614672 天前
Linux--mysql数据库与编译安装
其他
m0_485614673 天前
Linux---Nginx优化与防盗链
其他
adjusttraining5 天前
毁掉孩子视力不是电视和手机,两个隐藏很深因素,很多家长并不知
深度学习·其他
小屋主人6 天前
【实用软件】UninstallTool:一个小巧、安全、快速、强大的卸载软件
经验分享·其他·软件·软件卸载