MySQL之数据库相关操作学习笔记(一)

数据库相关操作

数据库表创建

定义逻辑库、数据表
  1. DML
    1. 添加
    2. 修改
    3. 删除
    4. 查询
  2. DCL
    1. 用户
    2. 权限
    3. 事务
  3. DDL
    1. 逻辑库
    2. 数据表
    3. 视图
    4. 索引

DCL (Data Control Language) 示例

DCL(数据控制语言)主要用于控制数据库用户的访问权限和管理事务。DCL 主要包含两类语句:用户和权限管理语句,以及事务管理语句。


1. 用户管理

创建用户

创建一个新的数据库用户:

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
删除用户

删除一个数据库用户:

DROP USER 'newuser'@'localhost';
修改用户密码

修改用户的密码:

ALTER USER 'newuser'@'localhost' IDENTIFIED BY 'newpassword';

2. 权限管理

授予权限

授予用户对某个数据库的所有权限:

GRANT ALL PRIVILEGES ON mydatabase.* TO 'newuser'@'localhost';

授予用户对某个表的特定权限:

GRANT SELECT, INSERT, UPDATE ON mydatabase.mytable TO 'newuser'@'localhost';
撤销权限

撤销用户对某个数据库的所有权限:

REVOKE ALL PRIVILEGES ON mydatabase.* FROM 'newuser'@'localhost';

撤销用户对某个表的特定权限:

REVOKE SELECT, INSERT, UPDATE ON mydatabase.mytable FROM 'newuser'@'localhost';
刷新权限

刷新权限表,使权限变更生效:

FLUSH PRIVILEGES;
查看权限

查看用户的权限:

SHOW GRANTS FOR 'newuser'@'localhost';

3. 事务管理

事务管理用于确保数据库操作的原子性、一致性、隔离性和持久性(ACID)。

开始事务

开始一个事务:

START TRANSACTION;
提交事务

提交当前事务,使所有更改永久生效:

COMMIT;
回滚事务

回滚当前事务,撤销所有未提交的更改:

ROLLBACK;
设置保存点

设置一个事务的保存点,可以部分回滚到该保存点:

SAVEPOINT savepoint_name;
回滚到保存点

回滚到指定的保存点:

ROLLBACK TO SAVEPOINT savepoint_name;
释放保存点

释放指定的保存点,使其无法再回滚:

RELEASE SAVEPOINT savepoint_name;

示例操作

示例 1:创建用户并授予权限
-- 创建用户
CREATE USER 'alice'@'localhost' IDENTIFIED BY 'alice123';

-- 授予对整个数据库的所有权限
GRANT ALL PRIVILEGES ON mydatabase.* TO 'alice'@'localhost';

-- 刷新权限
FLUSH PRIVILEGES;

-- 查看权限
SHOW GRANTS FOR 'alice'@'localhost';
示例 2:管理事务
-- 开始事务
START TRANSACTION;

-- 插入数据
INSERT INTO users (username, email) VALUES ('bob', 'bob@example.com');

-- 更新数据
UPDATE users SET email = 'bob@newdomain.com' WHERE username = 'bob';

-- 设置保存点
SAVEPOINT before_delete;

-- 删除数据
DELETE FROM users WHERE username = 'bob';

-- 回滚到保存点
ROLLBACK TO SAVEPOINT before_delete;

-- 提交事务
COMMIT;

这些示例展示了如何使用 DCL 语句来管理 MySQL 数据库中的用户、权限和事务。通过掌握这些操作,可以有效地控制数据库的访问权限和确保数据的一致性和完整性。

DDL (Data Definition Language) 示例

DDL(数据定义语言)用于创建、修改和删除数据库对象,包括逻辑库、数据表、视图和索引等。以下是针对逻辑库、数据表、视图和索引的常见 DDL 操作示例。


1. 逻辑库

创建逻辑库
CREATE DATABASE mydatabase;
删除逻辑库
DROP DATABASE mydatabase;

2. 数据表

创建数据表
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
修改数据表

添加新的列:

ALTER TABLE users ADD COLUMN age INT;

修改列的数据类型:

ALTER TABLE users MODIFY COLUMN email VARCHAR(255);

删除列:

ALTER TABLE users DROP COLUMN age;
删除数据表
DROP TABLE users;

3. 视图

创建视图
CREATE VIEW user_emails AS
SELECT username, email FROM users;
删除视图
DROP VIEW user_emails;

4. 索引

创建索引

在单个列上创建索引:

CREATE INDEX idx_username ON users (username);

在多个列上创建复合索引:

CREATE INDEX idx_username_email ON users (username, email);
删除索引
DROP INDEX idx_username ON users;

示例操作

示例 1:创建逻辑库和数据表
-- 创建逻辑库
CREATE DATABASE mydatabase;

-- 使用逻辑库
USE mydatabase;

-- 创建数据表
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
示例 2:创建视图和索引
-- 创建视图
CREATE VIEW user_emails AS
SELECT username, email FROM users;

-- 创建索引
CREATE INDEX idx_username ON users (username);

通过这些示例,你可以学习如何使用 DDL 操作来管理数据库的逻辑库、数据表、视图和索引。掌握这些基本操作能够有效地设计和维护数据库结构,以满足应用程序的需求。

DML (Data Manipulation Language) 示例

DML(数据操纵语言)用于对数据库中的数据进行增、删、改、查操作。以下是关于添加、修改、删除和查询数据的 DML 操作示例。


1. 添加数据

单行添加数据
INSERT INTO users (username, email) VALUES ('john', 'john@example.com');
批量添加数据
INSERT INTO users (username, email)
VALUES ('alice', 'alice@example.com'),
       ('bob', 'bob@example.com'),
       ('charlie', 'charlie@example.com');

2. 修改数据

更新单行数据
UPDATE users SET email = 'new_email@example.com' WHERE username = 'john';
批量更新数据
UPDATE users SET email = 'new_email@example.com' WHERE id > 10;

3. 删除数据

删除单行数据
DELETE FROM users WHERE username = 'john';
删除多行数据
DELETE FROM users WHERE id > 10;

4. 查询数据

查询所有数据
SELECT * FROM users;
查询特定数据
SELECT * FROM users WHERE username = 'alice';
查询特定列
SELECT username, email FROM users;
查询排序结果
SELECT * FROM users ORDER BY created_at DESC;
查询分页结果
SELECT * FROM users LIMIT 10 OFFSET 20;

示例操作

示例 1:添加数据
-- 单行添加数据
INSERT INTO users (username, email) VALUES ('john', 'john@example.com');

-- 批量添加数据
INSERT INTO users (username, email)
VALUES ('alice', 'alice@example.com'),
       ('bob', 'bob@example.com'),
       ('charlie', 'charlie@example.com');
示例 2:修改数据
-- 更新单行数据
UPDATE users SET email = 'new_email@example.com' WHERE username = 'john';

-- 批量更新数据
UPDATE users SET email = 'new_email@example.com' WHERE id > 10;
示例 3:删除数据
-- 删除单行数据
DELETE FROM users WHERE username = 'john';

-- 删除多行数据
DELETE FROM users WHERE id > 10;
示例 4:查询数据
-- 查询所有数据
SELECT * FROM users;

-- 查询特定数据
SELECT * FROM users WHERE username = 'alice';

-- 查询特定列
SELECT username, email FROM users;

-- 查询排序结果
SELECT * FROM users ORDER BY created_at DESC;

-- 查询分页结果
SELECT * FROM users LIMIT 10 OFFSET 20;

通过这些示例,你可以学习如何使用 DML 操作对数据库中的数据进行添加、修改、删除和查询操作。这些基本操作是数据库应用开发中的常见需求,掌握它们能够有效地管理和操作数据库中的数据。

  • 13
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值