Mysql

数据库介绍、分类、安装配置、登录连接等

1. 数据库介绍

(1)概念

数据库(Database)是一种用于存储、管理和检索数据的系统。它通过特定的结构和规则组织数据,使得数据的存储更加高效、安全和易于访问。

(2)主要功能

  • 数据存储:提供高效的数据存储机制。

  • 数据检索:支持快速查询和检索数据。

  • 数据更新:允许对数据进行插入、更新和删除操作。

  • 数据安全:提供数据加密、备份和恢复功能。

  • 数据完整性:确保数据的准确性和一致性。

(3)应用场景

  • 企业信息系统:如ERP、CRM等。

  • 电子商务:如订单管理、用户信息存储等。

  • 社交媒体:如用户数据、帖子、评论等。

  • 物联网:存储设备数据和传感器数据。

2. 数据库分类

(1)关系型数据库(RDBMS)

  • 特点

    • 数据以表格形式存储,表格之间通过关系连接。

    • 支持SQL(Structured Query Language)语言进行数据操作。

    • 遵循ACID(Atomicity, Consistency, Isolation, Durability)原则,确保数据的完整性和一致性。

  • 常见系统

    • MySQL:开源关系型数据库,广泛用于Web应用。

    • PostgreSQL:开源关系型数据库,功能强大,支持复杂查询。

    • Oracle Database:商业关系型数据库,广泛用于企业级应用。

    • Microsoft SQL Server:商业关系型数据库,广泛用于Windows环境。

(2)非关系型数据库(NoSQL)

  • 特点

    • 不依赖传统的表格结构,支持灵活的数据模型。

    • 适合处理大规模数据和高并发场景。

    • 不完全遵循ACID原则,但支持CAP(Consistency, Availability, Partition Tolerance)原则。

  • 常见系统

    • MongoDB:文档型数据库,存储JSON格式的数据。

    • Redis:键值存储数据库,支持高速缓存和消息队列。

    • Cassandra:列族数据库,适合大规模分布式系统。

    • Neo4j:图数据库,用于存储和查询复杂的关系数据。

3. 数据库安装配置

以下是MySQL和MongoDB的安装配置示例。

(1)MySQL 安装配置

Windows 环境

  1. 下载安装包

  2. 运行安装程序

    • 双击下载的安装包,运行MySQL Installer。

    • 选择“自定义安装”或“典型安装”。

  3. 配置MySQL

    • 设置root用户的密码。

    • 选择安装路径。

    • 配置MySQL服务(如端口号,默认为3306)。

  4. 完成安装

    • 点击“执行”按钮,完成安装。

Linux 环境

  1. 安装MySQL

    bash复制

    sudo apt update
    sudo apt install mysql-server
  2. 配置MySQL

    • 运行安全脚本,设置root密码,删除匿名用户等。

    bash复制

    sudo mysql_secure_installation
  3. 启动MySQL服务

    bash复制

    sudo systemctl start mysql
  4. 设置开机自启

    bash复制

    sudo systemctl enable mysql

(2)MongoDB 安装配置

Windows 环境

  1. 下载安装包

  2. 运行安装程序

    • 双击下载的安装包,运行MongoDB安装程序。

    • 选择安装路径。

  3. 配置MongoDB

    • 创建数据目录(默认为C:\data\db)。

    • 配置MongoDB服务(如端口号,默认为27017)。

  4. 启动MongoDB服务

    • 打开命令提示符,运行以下命令:

    bash复制

    mongod

Linux 环境

  1. 安装MongoDB

    bash复制

    sudo apt update
    sudo apt install mongodb
  2. 启动MongoDB服务

    bash复制

    sudo systemctl start mongodb
  3. 设置开机自启

    bash复制

    sudo systemctl enable mongodb
4. 数据库登录连接

以下是MySQL和MongoDB的登录连接方法。

(1)MySQL 登录连接

命令行工具

  1. 登录MySQL

    bash复制

    mysql -u root -p
    • 输入密码后,即可登录MySQL。

  2. 创建数据库

    sql复制

    CREATE DATABASE mydatabase;
  3. 创建用户

    sql复制

    CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
    GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';
    FLUSH PRIVILEGES;

使用Python连接MySQL

  1. 安装MySQL驱动

    bash复制

    pip install mysql-connector-python
  2. 连接数据库

    Python复制

    import mysql.connector
    
    conn = mysql.connector.connect(
        host="localhost",
        user="myuser",
        password="mypassword",
        database="mydatabase"
    )
    cursor = conn.cursor()
    cursor.execute("SELECT * FROM mytable")
    results = cursor.fetchall()
    for row in results:
        print(row)
    conn.close()

(2)MongoDB 登录连接

命令行工具

  1. 登录MongoDB

    bash复制

    mongo
  2. 创建数据库

    JavaScript复制

    use mydatabase
  3. 创建用户

    JavaScript复制

    db.createUser({
        user: "myuser",
        pwd: "mypassword",
        roles: [{ role: "readWrite", db: "mydatabase" }]
    })

使用Python连接MongoDB

  1. 安装MongoDB驱动

    bash复制

    pip install pymongo
  2. 连接数据库

    Python复制

    from pymongo import MongoClient
    
    client = MongoClient("mongodb://localhost:27017/")
    db = client["mydatabase"]
    collection = db["mycollection"]
    result = collection.find()
    for doc in result:
        print(doc)

总结

  • 数据库是用于存储和管理数据的系统,分为关系型数据库和非关系型数据库。

  • MySQL是广泛使用的关系型数据库,支持SQL语言,适合事务性应用。

  • MongoDB是非关系型数据库,支持灵活的数据模型,适合处理大规模数据和高并发场景。

  • 数据库的安装配置包括下载安装包、运行安装程序、配置服务和启动服务。

  • 数据库的登录连接可以通过命令行工具或编程语言的驱动库实现。

 数据库基本操作(创建、查看、选中、查库据表等相关命令行操作)

1. MySQL 基本操作

MySQL 是一种关系型数据库管理系统,使用 SQL(Structured Query Language)进行操作。

(1)登录 MySQL

bash复制

mysql -u username -p
  • username 替换为你的用户名。

  • 输入密码后即可登录。

(2)查看所有数据库

sql复制

SHOW DATABASES;

(3)创建数据库

sql复制

CREATE DATABASE database_name;
  • database_name 替换为你想要创建的数据库名称。

(4)选中数据库

sql复制

USE database_name;
  • database_name 替换为你想要使用的数据库名称。

(5)查看当前选中的数据库

sql复制

SELECT DATABASE();

(6)查看数据库中的表

sql复制

SHOW TABLES;

(7)创建表

sql复制

CREATE TABLE table_name (
    column1_name column1_type,
    column2_name column2_type,
    ...
);
  • 示例:

sql复制

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    age INT,
    email VARCHAR(100)
);

(8)查看表结构

sql复制

DESCRIBE table_name;

sql复制

SHOW COLUMNS FROM table_name;
  • table_name 替换为你想要查看的表名称。

(9)插入数据

sql复制

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
  • 示例:

sql复制

INSERT INTO users (name, age, email)
VALUES ('John Doe', 30, 'john@example.com');

(10)查询数据

sql复制

SELECT column1, column2, ...
FROM table_name
WHERE condition;
  • 示例:

sql复制

SELECT * FROM users WHERE age > 25;

(11)更新数据

sql复制

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
  • 示例:

sql复制

UPDATE users SET age = 31 WHERE name = 'John Doe';

(12)删除数据

sql复制

DELETE FROM table_name
WHERE condition;
  • 示例:

sql复制

DELETE FROM users WHERE name = 'John Doe';

(13)删除表

sql复制

DROP TABLE table_name;

(14)删除数据库

sql复制

DROP DATABASE database_name;
2. MongoDB 基本操作

MongoDB 是一种非关系型数据库,使用 BSON(类似 JSON)格式存储数据,通过 MongoDB Shell 进行操作。

(1)登录 MongoDB

bash复制

mongo

(2)查看所有数据库

JavaScript复制

show dbs;

(3)创建数据库

MongoDB 在插入数据时自动创建数据库,因此无需显式创建数据库。

(4)选中数据库

JavaScript复制

use database_name;
  • database_name 替换为你想要使用的数据库名称。

(5)查看当前选中的数据库

JavaScript复制

db;

(6)查看数据库中的集合(类似于表)

JavaScript复制

show collections;

(7)创建集合

MongoDB 在插入文档时自动创建集合,因此无需显式创建集合。

(8)插入数据

JavaScript复制

db.collection_name.insertOne({ key: value });

JavaScript复制

db.collection_name.insertMany([{ key: value }, { key: value }]);
  • 示例:

JavaScript复制

db.users.insertOne({ name: "John Doe", age: 30, email: "john@example.com" });

(9)查询数据

JavaScript复制

db.collection_name.find();

JavaScript复制

db.collection_name.find({ key: value });
  • 示例:

JavaScript复制

db.users.find({ age: { $gt: 25 } });

(10)更新数据

JavaScript复制

db.collection_name.updateOne({ key: value }, { $set: { key: value } });

JavaScript复制

db.collection_name.updateMany({ key: value }, { $set: { key: value } });
  • 示例:

JavaScript复制

db.users.updateOne({ name: "John Doe" }, { $set: { age: 31 } });

(11)删除数据

JavaScript复制

db.collection_name.deleteOne({ key: value });

JavaScript复制

db.collection_name.deleteMany({ key: value });
  • 示例:

JavaScript复制

db.users.deleteOne({ name: "John Doe" });

(12)删除集合

JavaScript复制

db.collection_name.drop();

(13)删除数据库

JavaScript复制

use database_name;
db.dropDatabase();

 数据字段操作(创建、修改、增加、调整字型、复合型等)

1. MySQL 字段操作

MySQL 是一种关系型数据库,表中的字段有明确的数据类型和约束。以下是在 MySQL 中进行字段操作的常用命令。

(1)创建表时定义字段

sql复制

CREATE TABLE table_name (
    column1_name column1_type,
    column2_name column2_type,
    ...
);
  • 示例:

sql复制

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    age INT,
    email VARCHAR(100) UNIQUE
);

(2)添加字段

sql复制

ALTER TABLE table_name
ADD COLUMN column_name column_type;
  • 示例:

sql复制

ALTER TABLE users
ADD COLUMN address VARCHAR(255);

(3)修改字段类型

sql复制

ALTER TABLE table_name
MODIFY COLUMN column_name new_column_type;
  • 示例:

sql复制

ALTER TABLE users
MODIFY COLUMN age DECIMAL(5, 2);

(4)修改字段名称

sql复制

ALTER TABLE table_name
CHANGE COLUMN old_column_name new_column_name new_column_type;
  • 示例:

sql复制

ALTER TABLE users
CHANGE COLUMN address user_address VARCHAR(255);

(5)删除字段

sql复制

ALTER TABLE table_name
DROP COLUMN column_name;
  • 示例:

sql复制

ALTER TABLE users
DROP COLUMN user_address;

(6)设置默认值

sql复制

ALTER TABLE table_name
ALTER COLUMN column_name SET DEFAULT default_value;
  • 示例:

sql复制

ALTER TABLE users
ALTER COLUMN age SET DEFAULT 18;

(7)复合字段(联合字段)

在 MySQL 中,可以通过创建联合索引来模拟复合字段的概念,但没有直接的“复合字段”概念。

sql复制

CREATE INDEX idx_name_age ON users (name, age);
2. MongoDB 字段操作

MongoDB 是一种非关系型数据库,字段是文档(类似于 JSON 对象)的键值对。MongoDB 的字段操作更加灵活,因为文档的结构可以动态变化。

(1)插入文档时定义字段

JavaScript复制

db.collection_name.insertOne({
    field1: value1,
    field2: value2,
    ...
});
  • 示例:

JavaScript复制

db.users.insertOne({
    name: "John Doe",
    age: 30,
    email: "john@example.com"
});

(2)添加字段

在 MongoDB 中,直接更新文档即可添加新字段。

JavaScript复制

db.collection_name.updateOne(
    { _id: document_id },
    { $set: { new_field: new_value } }
);
  • 示例:

JavaScript复制

db.users.updateOne(
    { _id: ObjectId("...") },
    { $set: { address: "123 Main St" } }
);

(3)修改字段值

JavaScript复制

db.collection_name.updateOne(
    { _id: document_id },
    { $set: { field_name: new_value } }
);
  • 示例:

JavaScript复制

db.users.updateOne(
    { _id: ObjectId("...") },
    { $set: { age: 31 } }
);

(4)修改字段名称

MongoDB 没有直接的命令来重命名字段,但可以通过 $rename 操作符来实现。

JavaScript复制

db.collection_name.updateOne(
    { _id: document_id },
    { $rename: { "old_field": "new_field" } }
);
  • 示例:

JavaScript复制

db.users.updateOne(
    { _id: ObjectId("...") },
    { $rename: { "address": "user_address" } }
);

(5)删除字段

JavaScript复制

db.collection_name.updateOne(
    { _id: document_id },
    { $unset: { field_name: "" } }
);
  • 示例:

JavaScript复制

db.users.updateOne(
    { _id: ObjectId("...") },
    { $unset: { user_address: "" } }
);

(6)复合字段(嵌套字段)

MongoDB 支持嵌套字段,即字段值可以是另一个文档。

JavaScript复制

db.collection_name.insertOne({
    field1: value1,
    nested_field: {
        sub_field1: sub_value1,
        sub_field2: sub_value2
    }
});
  • 示例:

JavaScript复制

db.users.insertOne({
    name: "John Doe",
    age: 30,
    contact: {
        email: "john@example.com",
        phone: "123-456-7890"
    }
});

(7)更新嵌套字段

JavaScript复制

db.collection_name.updateOne(
    { _id: document_id },
    { $set: { "nested_field.sub_field": new_value } }
);
  • 示例:

JavaScript复制

db.users.updateOne(
    { _id: ObjectId("...") },
    { $set: { "contact.email": "john.new@example.com" } }
);

数据库表操作(创建、查看、选中、删除数据表、删除数据库等相关命令操作) 

1. MySQL 表操作

MySQL 是一种关系型数据库,表是数据存储的基本结构。以下是在 MySQL 中进行表操作的常用命令。

(1)登录 MySQL

bash复制

mysql -u username -p
  • username 替换为你的用户名。

  • 输入密码后即可登录。

(2)查看所有数据库

sql复制

SHOW DATABASES;

(3)创建数据库

sql复制

CREATE DATABASE database_name;
  • database_name 替换为你想要创建的数据库名称。

(4)选中数据库

sql复制

USE database_name;
  • database_name 替换为你想要使用的数据库名称。

(5)查看当前选中的数据库

sql复制

SELECT DATABASE();

(6)查看数据库中的表

sql复制

SHOW TABLES;

(7)创建表

sql复制

CREATE TABLE table_name (
    column1_name column1_type,
    column2_name column2_type,
    ...
);
  • 示例:

sql复制

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    age INT,
    email VARCHAR(100) UNIQUE
);

(8)查看表结构

sql复制

DESCRIBE table_name;

sql复制

SHOW COLUMNS FROM table_name;
  • table_name 替换为你想要查看的表名称。

(9)删除表

sql复制

DROP TABLE table_name;
  • 示例:

sql复制

DROP TABLE users;

(10)删除数据库

sql复制

DROP DATABASE database_name;
  • 示例:

sql复制

DROP DATABASE mydatabase;
2. MongoDB 表操作

MongoDB 是一种非关系型数据库,集合(类似于表)是数据存储的基本结构。以下是在 MongoDB 中进行集合操作的常用命令。

(1)登录 MongoDB

bash复制

mongo

(2)查看所有数据库

JavaScript复制

show dbs;

(3)创建数据库

MongoDB 在插入数据时自动创建数据库,因此无需显式创建数据库。

(4)选中数据库

JavaScript复制

use database_name;
  • database_name 替换为你想要使用的数据库名称。

(5)查看当前选中的数据库

JavaScript复制

db;

(6)查看数据库中的集合(类似于表)

JavaScript复制

show collections;

(7)创建集合

MongoDB 在插入文档时自动创建集合,因此无需显式创建集合。

(8)插入数据(自动创建集合)

JavaScript复制

db.collection_name.insertOne({ key: value });
  • 示例:

JavaScript复制

db.users.insertOne({ name: "John Doe", age: 30, email: "john@example.com" });

(9)删除集合

JavaScript复制

db.collection_name.drop();
  • 示例:

JavaScript复制

db.users.drop();

(10)删除数据库

JavaScript复制

use database_name;
db.dropDatabase();
  • 示例:

JavaScript复制

use mydatabase;
db.dropDatabase();

 数据类型(整型、浮点型、字符型、时间段顺序、排序、删除等数据字段相关操作)

 

1. 常见数据类型

(1)整型(Integer)

  • MySQL

    • TINYINT:范围 -128 到 127(有符号),0 到 255(无符号)。

    • SMALLINT:范围 -32768 到 32767(有符号),0 到 65535(无符号)。

    • MEDIUMINT:范围 -8388608 到 8388607(有符号),0 到 16777215(无符号)。

    • INT:范围 -2147483648 到 2147483647(有符号),0 到 4294967295(无符号)。

    • BIGINT:范围 -9223372036854775808 到 9223372036854775807(有符号),0 到 18446744073709551615(无符号)。

  • MongoDB

    • NumberInt:32 位整数。

    • NumberLong:64 位整数。

(2)浮点型(Floating Point)

  • MySQL

    • FLOAT:单精度浮点数。

    • DOUBLE:双精度浮点数。

    • DECIMAL:定点数,用于存储精确的小数。

  • MongoDB

    • NumberDouble:双精度浮点数。

    • NumberDecimal:用于存储精确的小数。

(3)字符型(Character)

  • MySQL

    • CHAR:固定长度字符串,最大长度 255 字节。

    • VARCHAR:可变长度字符串,最大长度 65535 字节。

    • TEXT:用于存储大量文本数据。

  • MongoDB

    • String:用于存储文本数据。

(4)时间段(Date and Time)

  • MySQL

    • DATE:日期,格式为 YYYY-MM-DD

    • TIME:时间,格式为 HH:MM:SS

    • DATETIME:日期和时间,格式为 YYYY-MM-DD HH:MM:SS

    • TIMESTAMP:时间戳,范围从 1970-01-01 00:00:012038-01-19 03:14:07

  • MongoDB

    • Date:日期和时间,格式为 ISO 8601。

2. 字段相关操作

(1)排序数据

  • MySQL

    sql复制

    SELECT * FROM table_name ORDER BY column_name ASC; -- 升序
    SELECT * FROM table_name ORDER BY column_name DESC; -- 降序
    • 示例:

    sql复制

    SELECT * FROM users ORDER BY age ASC;
  • MongoDB

    JavaScript复制

    db.collection_name.find().sort({ field_name: 1 }); // 升序
    db.collection_name.find().sort({ field_name: -1 }); // 降序
    • 示例:

    JavaScript复制

    db.users.find().sort({ age: 1 });

(2)删除字段

  • MySQL

    sql复制

    ALTER TABLE table_name DROP COLUMN column_name;
    • 示例:

    sql复制

    ALTER TABLE users DROP COLUMN address;
  • MongoDB

    JavaScript复制

    db.collection_name.updateMany({}, { $unset: { field_name: "" } });
    • 示例:

    JavaScript复制

    db.users.updateMany({}, { $unset: { address: "" } });

(3)修改字段类型

  • MySQL

    sql复制

    ALTER TABLE table_name MODIFY COLUMN column_name new_column_type;
    • 示例:

    sql复制

    ALTER TABLE users MODIFY COLUMN age DECIMAL(5, 2);
  • MongoDB: MongoDB 中字段类型是动态的,可以通过更新操作来修改字段类型。

    JavaScript复制

    db.collection_name.updateMany({}, { $set: { field_name: new_value } });
    • 示例:

    JavaScript复制

    db.users.updateMany({}, { $set: { age: NumberDecimal("30.5") } });

(4)添加字段

  • MySQL

    sql复制

    ALTER TABLE table_name ADD COLUMN column_name column_type;
    • 示例:

    sql复制

    ALTER TABLE users ADD COLUMN address VARCHAR(255);
  • MongoDB: MongoDB 中字段是动态的,可以通过插入或更新操作来添加字段。

    JavaScript复制

    db.collection_name.updateMany({}, { $set: { new_field: new_value } });
    • 示例:

    JavaScript复制

    db.users.updateMany({}, { $set: { address: "123 Main St" } });

(5)调整字段顺序

  • MySQL: MySQL 不支持直接调整字段顺序,但可以通过创建新表并重新插入数据来实现。

    sql复制

    CREATE TABLE new_table_name AS SELECT column1, column2, ... FROM table_name;
    DROP TABLE table_name;
    RENAME TABLE new_table_name TO table_name;
    • 示例:

    sql复制

    CREATE TABLE new_users AS SELECT id, address, name, age FROM users;
    DROP TABLE users;
    RENAME TABLE new_users TO users;
  • MongoDB: MongoDB 中字段顺序通常不重要,因为文档是无序的键值对集合。

(6)时间段字段操作

  • MySQL

    • 插入日期和时间

    sql复制

    INSERT INTO table_name (date_column, datetime_column) VALUES ('2023-10-01', '2023-10-01 12:34:56');
    • 查询日期和时间

    sql复制

    SELECT * FROM table_name WHERE date_column = '2023-10-01';
    • 日期和时间函数

    sql复制

    SELECT DATE_FORMAT(datetime_column, '%Y-%m-%d') FROM table_name;
  • MongoDB

    • 插入日期和时间

    JavaScript复制

    db.collection_name.insertOne({
        date_field: new Date("2023-10-01"),
        datetime_field: new Date("2023-10-01T12:34:56Z")
    });
    • 查询日期和时间

    JavaScript复制

    db.collection_name.find({ date_field: new Date("2023-10-01") });
    • 日期和时间操作

    JavaScript复制

    db.collection_name.find().forEach(doc => {
        print(doc.datetime_field.toISOString());
    });

总结

  • 数据类型

    • 整型:用于存储整数。

    • 浮点型:用于存储小数。

    • 字符型:用于存储文本。

    • 时间段:用于存储日期和时间。

  • 字段操作

    • 排序:通过 ORDER BY(MySQL)或 sort()(MongoDB)实现。

    • 删除字段:通过 ALTER TABLE(MySQL)或 $unset(MongoDB)实现。

    • 修改字段类型:通过 MODIFY COLUMN(MySQL)或 $set(MongoDB)实现。

    • 添加字段:通过 ADD COLUMN(MySQL)或 $set(MongoDB)实现。

    • 调整字段顺序:MySQL 需要重建表,MongoDB 字段顺序通常不重要。

    • 时间段字段操作:MySQL 和 MongoDB 都支持日期和时间类型,提供了丰富的操作函数。

 增删改查之更新、数据库权限操作

1. 更新操作(Update)

更新操作用于修改数据库表中的现有数据。以下是 MySQL 中进行更新操作的常用命令和示例。

(1)基本更新语法

sql复制

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
  • table_name:要更新的表名。

  • column1, column2, ...:要更新的列名。

  • value1, value2, ...:对应的更新值。

  • condition:更新条件,用于指定哪些行需要更新。

(2)更新单个字段

sql复制

UPDATE users
SET age = 31
WHERE id = 1;
  • id 为 1 的用户的 age 更新为 31。

(3)更新多个字段

sql复制

UPDATE users
SET name = 'Jane Doe', email = 'jane@example.com'
WHERE id = 1;
  • id 为 1 的用户的 name 更新为 "Jane Doe",email 更新为 "jane@example.com"。

(4)更新所有记录

sql复制

UPDATE users
SET age = age + 1;
  • 将所有用户的 age 增加 1。

(5)条件更新

sql复制

UPDATE users
SET age = 31
WHERE age > 30;
  • 将所有 age 大于 30 的用户的 age 更新为 31。

(6)更新时使用子查询

sql复制

UPDATE users
SET age = (SELECT MAX(age) FROM users)
WHERE id = 1;
  • id 为 1 的用户的 age 更新为表中最大的 age 值。

2. 数据库权限操作

数据库权限管理用于控制用户对数据库的访问和操作权限。以下是 MySQL 中进行权限管理的常用命令和操作步骤。

(1)查看用户权限

sql复制

SHOW GRANTS FOR 'username'@'host';
  • username:用户名。

  • host:用户登录的主机名或 IP 地址。

  • 示例:

sql复制

SHOW GRANTS FOR 'john'@'localhost';

(2)授予权限

sql复制

GRANT privileges ON database_name.table_name TO 'username'@'host';
  • privileges:要授予的权限,如 SELECTINSERTUPDATEDELETEALL PRIVILEGES 等。

  • database_name.table_name:指定数据库和表。如果要授予对所有数据库和表的权限,可以使用 *.*

  • username:用户名。

  • host:用户登录的主机名或 IP 地址。

  • 示例:

sql复制

GRANT SELECT, INSERT ON mydatabase.* TO 'john'@'localhost';

(3)撤销权限

sql复制

REVOKE privileges ON database_name.table_name FROM 'username'@'host';
  • privileges:要撤销的权限。

  • database_name.table_name:指定数据库和表。

  • username:用户名。

  • host:用户登录的主机名或 IP 地址。

  • 示例:

sql复制

REVOKE INSERT ON mydatabase.* FROM 'john'@'localhost';

(4)刷新权限

sql复制

FLUSH PRIVILEGES;
  • 在修改权限后,需要执行此命令以使权限更改生效。

(5)创建用户并授予权限

sql复制

CREATE USER 'username'@'host' IDENTIFIED BY 'password';
GRANT privileges ON database_name.table_name TO 'username'@'host';
FLUSH PRIVILEGES;
  • 示例:

sql复制

CREATE USER 'john'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mydatabase.* TO 'john'@'localhost';
FLUSH PRIVILEGES;

(6)删除用户

sql复制

DROP USER 'username'@'host';
  • 示例:

sql复制

DROP USER 'john'@'localhost';

总结

  • 更新操作

    • 使用 UPDATE 语句修改表中的数据。

    • 可以更新单个字段或多个字段。

    • 可以通过 WHERE 子句指定更新条件。

    • 可以使用子查询动态更新字段值。

  • 数据库权限操作

    • 使用 SHOW GRANTS 查看用户权限。

    • 使用 GRANT 授予权限。

    • 使用 REVOKE 撤销权限。

    • 使用 FLUSH PRIVILEGES 刷新权限。

    • 使用 CREATE USER 创建用户并授予权限。

    • 使用 DROP USER 删除用户。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值