数据库介绍、分类、安装配置、登录连接等
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 环境
-
下载安装包:
-
访问 MySQL 官方网站,下载适合Windows的安装包。
-
-
运行安装程序:
-
双击下载的安装包,运行MySQL Installer。
-
选择“自定义安装”或“典型安装”。
-
-
配置MySQL:
-
设置root用户的密码。
-
选择安装路径。
-
配置MySQL服务(如端口号,默认为3306)。
-
-
完成安装:
-
点击“执行”按钮,完成安装。
-
Linux 环境
-
安装MySQL:
bash复制
sudo apt update sudo apt install mysql-server
-
配置MySQL:
-
运行安全脚本,设置root密码,删除匿名用户等。
bash复制
sudo mysql_secure_installation
-
-
启动MySQL服务:
bash复制
sudo systemctl start mysql
-
设置开机自启:
bash复制
sudo systemctl enable mysql
(2)MongoDB 安装配置
Windows 环境
-
下载安装包:
-
访问 MongoDB 官方网站,下载适合Windows的安装包。
-
-
运行安装程序:
-
双击下载的安装包,运行MongoDB安装程序。
-
选择安装路径。
-
-
配置MongoDB:
-
创建数据目录(默认为
C:\data\db
)。 -
配置MongoDB服务(如端口号,默认为27017)。
-
-
启动MongoDB服务:
-
打开命令提示符,运行以下命令:
bash复制
mongod
-
Linux 环境
-
安装MongoDB:
bash复制
sudo apt update sudo apt install mongodb
-
启动MongoDB服务:
bash复制
sudo systemctl start mongodb
-
设置开机自启:
bash复制
sudo systemctl enable mongodb
4. 数据库登录连接
以下是MySQL和MongoDB的登录连接方法。
(1)MySQL 登录连接
命令行工具
-
登录MySQL:
bash复制
mysql -u root -p
-
输入密码后,即可登录MySQL。
-
-
创建数据库:
sql复制
CREATE DATABASE mydatabase;
-
创建用户:
sql复制
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword'; GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost'; FLUSH PRIVILEGES;
使用Python连接MySQL
-
安装MySQL驱动:
bash复制
pip install mysql-connector-python
-
连接数据库:
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 登录连接
命令行工具
-
登录MongoDB:
bash复制
mongo
-
创建数据库:
JavaScript复制
use mydatabase
-
创建用户:
JavaScript复制
db.createUser({ user: "myuser", pwd: "mypassword", roles: [{ role: "readWrite", db: "mydatabase" }] })
使用Python连接MongoDB
-
安装MongoDB驱动:
bash复制
pip install pymongo
-
连接数据库:
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:01
到2038-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
:要授予的权限,如SELECT
、INSERT
、UPDATE
、DELETE
、ALL 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
删除用户。
-