首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
1.1 数据库系统概述
1.1.1 数据库技术的发展
1.1.2 数据库系统的组成
1.2 数据模型
1.2.1 数据模型的概念
1.2.2 常见的数据模型
1.2.3 关系数据库的规范化
1.2.4 关系数据库的设计原则
1.2.5 实体与关系
1.3 数据库的体系结构
1.3.1 数据库三级模式结构
1.3.2 三级模式之间的映射
2.1 了解MySQL
2.1.1 MySQL数据库的概念
2.1.2 MySQL的优势
2.1.3 MySQL的发展史
2.2 MySQL 8.0的新特性
2.3 MySQL的应用环境
2.4 MySQL服务器的安装和配置
2.4.1 MySQL服务器安装包的下载
2.4.2 MySQL服务器的安装
2.4.3 启动、连接、断开和停止MySQL服务器
2.4.4 打开MySQL 8.0 Command Line Client
2.5 如何学好MySQL
第3章 使用MySQL图形化管理工具
3.1 安装phpMyAdmin图形化管理工具
3.1.1 phpMyAdmin图形化管理工具简介
3.1.2 下载phpstudy集成开发环境
3.1.3 下载phpMyAdmin
3.1.4 打开phpMyAdmin
3.2 数据库操作管理
3.2.1 创建数据库
3.2.2 修改和删除数据库
3.3 管理数据表
3.3.1 创建数据表
3.3.2 修改数据表
3.3.3 删除数据表
3.4 管理数据记录
3.4.1 使用SQL语句插入数据
3.4.2 使用SQL语句修改数据
3.4.3 使用SQL语句查询数据
3.4.4 使用SQL语句删除数据
3.4.5 通过form表单插入数据
3.4.6 浏览数据
3.4.7 搜索数据
3.5 导入/导出数据
3.5.1 导出MySQL数据库脚本
3.5.2 导入MySQL数据库脚本
3.6 设置编码格式
3.7 添加服务器新用户
3.8 重置MySQL服务器登录密码
4.1 认识数据库
4.1.1 数据库基本概念
4.1.2 数据库常用对象
4.1.3 系统数据库
4.2 创建数据库
4.2.1 使用CREATE DATABASE语句创建数据库
4.2.2 使用CREATE SCHEMA语句创建数据库
4.2.3 创建指定字符集的数据库
4.2.4 创建数据库前判断是否存在同名数据库
4.3 查看数据库(SHOW命令)
4.4 选择数据库(USE命令)
4.5 修改数据库(ALTER命令)
4.6 删除数据库(DROP命令)
当前位置:
首页>>
技术小册>>
MySQL从入门到精通(一)
小册名称:MySQL从入门到精通(一)
### 4.1.2 数据库常用对象 在MySQL数据库中,数据库对象(Database Objects)是构成数据库结构的基石,它们共同支持着数据的存储、访问、修改和管理。了解并掌握这些常用对象对于从MySQL入门到精通的旅程至关重要。本章节将深入解析MySQL中的几种核心数据库对象:表(Tables)、视图(Views)、索引(Indexes)、存储过程(Stored Procedures)、函数(Functions)、触发器(Triggers)以及事件(Events)。 #### 4.1.2.1 表(Tables) 表是数据库中最基本、最核心的对象,用于存储数据。一个表由行(Row)和列(Column)组成,每一列定义了数据的一个字段(Field),而每一行则代表了一条具体的数据记录。 - **创建表**:使用`CREATE TABLE`语句来定义新表的结构,包括列名、数据类型、是否允许为空(NULL)、默认值等。 ```sql CREATE TABLE employees ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, position VARCHAR(100), salary DECIMAL(10, 2), hire_date DATE ); ``` - **修改表**:随着业务需求的变更,可能需要修改表的结构,如添加、删除或修改列。这可以通过`ALTER TABLE`语句实现。 ```sql ALTER TABLE employees ADD COLUMN email VARCHAR(100); ALTER TABLE employees DROP COLUMN position; ALTER TABLE employees MODIFY COLUMN salary DECIMAL(15, 2); ``` - **删除表**:当表不再需要时,可以使用`DROP TABLE`语句将其从数据库中删除。 ```sql DROP TABLE employees; ``` #### 4.1.2.2 视图(Views) 视图是基于SQL语句的结果集的可视化表示,它本身不存储数据,而是动态地从基本表中检索数据。视图可以用于简化复杂的查询、实现数据的安全隔离等。 - **创建视图**:使用`CREATE VIEW`语句基于一个或多个表创建视图。 ```sql CREATE VIEW view_employee_details AS SELECT id, name, salary, hire_date FROM employees WHERE salary > 50000; ``` - **使用视图**:视图一旦创建,就可以像使用表一样进行查询操作。 ```sql SELECT * FROM view_employee_details; ``` - **修改和删除视图**:可以使用`CREATE OR REPLACE VIEW`来修改视图定义,或使用`DROP VIEW`来删除视图。 #### 4.1.2.3 索引(Indexes) 索引是帮助MySQL高效获取数据的数据结构,可以显著提高查询性能。通过索引,数据库系统可以快速定位到表中的特定记录,而无需扫描整个表。 - **创建索引**:使用`CREATE INDEX`语句在表的列上创建索引。 ```sql CREATE INDEX idx_name ON employees(name); ``` - **唯一索引**:确保表中每一行在该列上的值都是唯一的。 ```sql CREATE UNIQUE INDEX idx_email ON employees(email); ``` - **索引的使用与优化**:虽然索引可以提高查询速度,但它们也会占用额外的磁盘空间,并在插入、删除和更新操作时降低性能。因此,需要合理设计索引策略。 #### 4.1.2.4 存储过程(Stored Procedures) 存储过程是一组为了完成特定功能的SQL语句集,它经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程需要参数)来执行它。 - **创建存储过程**:使用`CREATE PROCEDURE`语句定义存储过程。 ```sql DELIMITER // CREATE PROCEDURE GetEmployeeNameByID(IN emp_id INT, OUT emp_name VARCHAR(100)) BEGIN SELECT name INTO emp_name FROM employees WHERE id = emp_id; END // DELIMITER ; ``` - **调用存储过程**:使用`CALL`语句执行存储过程。 ```sql CALL GetEmployeeNameByID(1, @empName); SELECT @empName; ``` #### 4.1.2.5 函数(Functions) MySQL中的函数包括内置函数和用户自定义函数(UDF)。UDF是用户根据需要创建的,用于执行特定计算或操作的函数。 - **用户自定义函数**:使用`CREATE FUNCTION`语句创建。 ```sql CREATE FUNCTION AddNumbers(num1 INT, num2 INT) RETURNS INT BEGIN RETURN num1 + num2; END; ``` - **使用函数**:在SQL查询中直接调用函数。 ```sql SELECT AddNumbers(5, 3) AS result; ``` #### 4.1.2.6 触发器(Triggers) 触发器是一种特殊类型的存储过程,它会在指定表上的数据发生特定事件(如INSERT、UPDATE、DELETE)时自动执行。 - **创建触发器**:使用`CREATE TRIGGER`语句定义触发器。 ```sql CREATE TRIGGER trg_after_employee_insert AFTER INSERT ON employees FOR EACH ROW BEGIN INSERT INTO employee_audit(employee_id, action, audit_date) VALUES (NEW.id, 'Insert', NOW()); END; ``` - **触发器的作用**:触发器常用于维护数据的完整性、自动更新统计信息、实现复杂的业务规则等。 #### 4.1.2.7 事件(Events) MySQL的事件调度器允许用户创建周期性执行的任务,这些任务称为事件。 - **创建事件**:使用`CREATE EVENT`语句定义事件。 ```sql CREATE EVENT IF NOT EXISTS evt_cleanup_audit ON SCHEDULE EVERY 1 DAY STARTS (TIMESTAMP(CURRENT_DATE) + INTERVAL 1 DAY) DO DELETE FROM employee_audit WHERE audit_date < NOW() - INTERVAL 30 DAY; ``` - **事件的作用**:事件常用于定期执行清理任务、生成报表、备份数据等。 ### 总结 数据库常用对象是构建高效、可扩展和可维护数据库系统的基石。通过深入了解并掌握表、视图、索引、存储过程、函数、触发器和事件等对象,可以有效地优化数据库性能、提高数据处理的效率和准确性。在实际的项目开发中,合理设计和使用这些对象,能够显著提升应用程序的性能和用户体验。希望本章节的内容能为你的MySQL学习之旅提供坚实的基础。
上一篇:
4.1.1 数据库基本概念
下一篇:
4.1.3 系统数据库
该分类下的相关小册推荐:
MySQL 实战 45 讲
MySQL8.0入门与实践
细说MySQL(零基础到高级应用)
MySQL从入门到精通(四)
MySQL从入门到精通(三)
MySQL必会核心问题
MySQL从入门到精通(五)
MySQL从入门到精通(二)
SQL零基础到熟练应用(增删改查)