一、认识数据库
MySQL是一个流行的开源关系型数据库管理系统(RDBMS),广泛应用于各种规模的网站和应用中,包括一些大型网站如Facebook、Twitter、YouTube等。MySQL使用结构化查询语言(SQL)来管理数据库中的数据。
MySQL的主要特点:
-
开源和免费:MySQL是一个开源项目,可以免费使用和修改。它有一个活跃的开发者社区,不断贡献代码、解决问题和添加新功能。
-
跨平台:MySQL可以在多种操作系统上运行,包括Linux、Windows、Mac OS等,这使得它非常适合跨平台的应用开发。
-
高性能:MySQL优化了查询算法和存储引擎,提供了高性能的数据处理能力,适合处理大量数据和高并发访问的场景。
-
可扩展性:MySQL支持各种存储引擎,如InnoDB、MyISAM等,这些存储引擎提供了不同的数据处理方式和特性,可以根据应用需求进行选择。
-
安全性:MySQL提供了多层次的安全特性,包括SSL加密、访问控制和数据加密等,保护数据不被未授权访问。
-
易于使用:MySQL提供了丰富的管理工具,如MySQL Workbench、phpMyAdmin等,方便数据库的管理、设计和优化。
使用场景:
- Web应用:MySQL是构建动态网站和Web应用的流行选择,与PHP、Python、Java等后端语言配合使用。
- 数据仓库:MySQL可以用于存储和分析大量数据,支持数据仓库的构建和管理。
- 电子商务:MySQL可以处理在线交易、库存管理、用户数据等,是电子商务平台常用的数据库系统。
二、数据定义
DML用于对数据库中的数据进行操作,主要包括以下几个指令:
- INSERT INTO:用于向表中插入新数据。
- 插入完整行:
INSERT INTO table_name VALUES (value1, value2, ...);
- 插入指定列:
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
- 插入完整行:
- UPDATE:用于修改表中的数据。
- 修改数据:
UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;
- 修改数据:
- DELETE:用于删除表中的数据。
- 删除数据:
DELETE FROM table_name WHERE condition;
- 删除数据:
- TRUNCATE TABLE:用于删除表中的所有数据,但不删除表本身。
- 清空表:
TRUNCATE TABLE table_name;
- 清空表:
三、数据查询语言(DQL)
DQL主要用于查询数据库中的数据,最核心的指令是SELECT。
- SELECT:用于从数据库中检索数据。
- 查询所有列:
SELECT * FROM table_name;
- 查询指定列:
SELECT column1, column2 FROM table_name;
- 使用条件查询:
SELECT column1, column2 FROM table_name WHERE condition;
- 排序查询结果:
SELECT column1, column2 FROM table_name ORDER BY column1 ASC, column2 DESC;
- 使用DISTINCT去重:
SELECT DISTINCT column_name FROM table_name;
- 查询所有列:
四. 数据控制语言(DCL)
DCL用于定义数据库的访问权限和安全级别,主要包括GRANT和REVOKE两个指令。
- GRANT:用于授予用户访问数据库的权限。
- 授予权限:
GRANT SELECT, INSERT ON database_name.table_name TO 'username'@'host';
- 授予权限:
- REVOKE:用于收回已授予的权限。
- 收回权限:
REVOKE SELECT, INSERT ON database_name.table_name FROM 'username'@'host';
- 收回权限:
五. 其他常用语法
- JOIN:用于结合两个或多个表中的行。
- INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN等。
- UNION:用于合并两个或多个SELECT语句的结果集,并删除重复行。
- 合并查询结果:
SELECT column_name(s) FROM table1 UNION SELECT column_name(s) FROM table2;
- 合并查询结果:
- LIKE 和 NOT LIKE:用于在WHERE子句中搜索列中的指定模式。
- 模糊查询:
SELECT column_name FROM table_name WHERE column_name LIKE pattern;
- 模糊查询:
- GROUP BY 和 HAVING:用于对结果集进行分组和过滤分组后的结果。
- 分组和过滤:
SELECT column_name, AGGREGATE_FUNCTION(column_name) FROM table_name GROUP BY column_name HAVING condition;
- 分组和过滤: