技术文摘
MySQL 面试知识汇总及示例
MySQL 面试知识汇总及示例
在数据库领域,MySQL 是应用极为广泛的关系型数据库管理系统,掌握 MySQL 相关知识是很多技术岗位面试的关键。下面将汇总一些常见的面试知识并给出示例。
首先是基础的 SQL 语句。SELECT 语句用于从数据库中检索数据,例如“SELECT column1, column2 FROM table_name;”可以选择指定表中的特定列。INSERT INTO 语句用于向表中插入新记录,“INSERT INTO employees (name, age) VALUES ('John', 30);”就能在 employees 表中插入一条新员工记录。UPDATE 语句用于修改现有记录,如“UPDATE employees SET age = 31 WHERE name = 'John';”将 John 的年龄更新为 31。DELETE 语句则用于删除记录,“DELETE FROM employees WHERE name = 'John';”会删除名为 John 的员工记录。
索引是提升查询性能的重要手段。索引分为多种类型,如普通索引、唯一索引、主键索引等。创建普通索引可以使用“CREATE INDEX index_name ON table_name (column_name);”例如“CREATE INDEX idx_name ON employees (name);”能加快对员工姓名的查询。唯一索引确保列中的值唯一,“CREATE UNIQUE INDEX unique_idx ON table_name (column_name);”主键索引则是一种特殊的唯一索引,创建表时可直接定义主键“CREATE TABLE students (id INT PRIMARY KEY, name VARCHAR(50));”
事务是确保数据一致性的重要概念。事务具有原子性、一致性、隔离性和持久性(ACID)特性。在 MySQL 中,使用 START TRANSACTION 开始一个事务,COMMIT 提交事务,ROLLBACK 回滚事务。例如:
START TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE account_id = 1;
UPDATE accounts SET balance = balance + 100 WHERE account_id = 2;
COMMIT;
这条语句模拟了从账户 1 向账户 2 转账 100 的操作,若其中某一步失败,可通过 ROLLBACK 回滚到事务开始前的状态。
存储过程是一组预编译的 SQL 语句集合。创建存储过程可以使用“DELIMITER // CREATE PROCEDURE procedure_name(IN param1 INT, OUT param2 VARCHAR(50)) BEGIN -- SQL 语句 END // DELIMITER ;”例如创建一个根据员工 ID 获取姓名的存储过程:
DELIMITER //
CREATE PROCEDURE get_employee_name(IN emp_id INT, OUT emp_name VARCHAR(50))
BEGIN
SELECT name INTO emp_name FROM employees WHERE id = emp_id;
END //
DELIMITER ;
这些 MySQL 知识在面试中常常出现,熟练掌握它们并能结合示例理解,能在面试中更有优势。