MySQL-基础语句
内容提要
本文记录了MySQL基本语句的学习笔记,包括数据库连接、SQL语句规范、数据库和数据表的创建与管理、查询语句、事务特性、索引与视图的创建方法,以及数据的导入导出,旨在帮助理解和掌握MySQL的基本操作。
延伸解读
SQL书写规范的实际意义
文章强调SQL语句以分号结尾、不区分大小写,但建议关键字大写、表名字段名小写,且所有符号使用半角。这些规范虽非强制,但能提升代码可读性和维护性。例如,统一大小写风格便于团队协作,半角符号避免语法错误。此外,表名以t_或tbl_开头,可快速区分表与其他数据库对象,尤其在多表环境中减少混淆。
字段类型选择与存储效率
文章对比了CHAR和VARCHAR:CHAR固定长度,效率高,适合性别等固定数据;VARCHAR动态调整,适合姓名等非固定数据。但需注意,CHAR每个英文字符占1字节,中文字符占2字节,而VARCHAR每个字符占2字节。因此,对于中文字符串,VARCHAR可能更节省空间。此外,BLOB和CLOB用于大对象,但INSERT无法直接插入,需程序流处理,这限制了它们的易用性。
查询执行顺序与性能优化
文章给出了SELECT语句的执行顺序:FROM → JOIN → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT。理解此顺序有助于编写高效SQL。例如,WHERE在GROUP BY前执行,应尽量在WHERE中过滤数据,减少分组开销;HAVING在分组后执行,且可使用分组函数,但效率较低。此外,LIMIT用于分页,公式为(页码-1)*每页条数,起始位置从0开始,这对实现分页功能很实用。
事务隔离级别与数据一致性
文章介绍了事务的ACID特性,并列出四种隔离级别:读未提交、读已提交、可重复读、可串行化。每个级别解决不同问题,但可能引入脏读、不可重复读或幻读。例如,读未提交可能导致脏读,而可串行化虽解决所有问题但效率低。实际开发中需根据业务权衡。文章还提到事务默认自动提交,可用START TRANSACTION手动控制,COMMIT提交,ROLLBACK回滚,确保数据一致性。
Q&A
如何连接MySQL数据库?
使用命令 `mysql -u root -p` 连接 MySQL 数据库,之后输入密码。
MySQL中如何创建数据库?
使用命令 `CREATE DATABASE [数据库名];` 创建一个数据库。
什么是MySQL中的事务特性?
事务具有原子性、一致性、隔离性和持久性四个特性。
如何在MySQL中创建索引?
使用命令 `CREATE INDEX [索引名] ON [数据表名]([字段名]);` 创建索引。
MySQL中如何执行查询语句?
查询语句的基本格式为 `SELECT [字段名] FROM [数据表名] WHERE [查询条件];`。
如何导入和导出MySQL数据库?
导入使用 `SOURCE [.sql文件的路径]`,导出使用 `MYSQIDUMP -u [用户名] -p [数据库名] > [导出的文件名]`。