MySQL,作为最流行的开源关系型数据库管理系统之一,广泛应用于各种规模的企业和项目中
掌握MySQL脚本编写语法,不仅能够显著提升数据库管理效率,还能确保数据的一致性和安全性
本文将深入探讨MySQL脚本编写的核心语法,帮助读者成为数据库管理的专家
一、MySQL脚本基础 MySQL脚本是一系列SQL(结构化查询语言)语句的集合,用于执行数据库的创建、查询、更新和管理等操作
编写MySQL脚本时,需遵循一定的语法规则,确保语句能被数据库正确解析和执行
1.注释 - 单行注释:使用`--`(双连字符)或``(井号)开头,直到行尾
- 多行注释:使用`/开头,/`结尾,可以跨越多行
sql --这是一个单行注释 这也是一个单行注释 / 这是一个多行注释 可以包含多行文本 / 2.SQL语句分隔 - 每个SQL语句应以分号(`;`)结尾,以标识语句的结束
sql CREATE TABLE users( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL ); INSERT INTO users(username, password) VALUES(admin, password123); 二、数据库与表的创建和管理 1.创建数据库 使用`CREATE DATABASE`语句创建一个新的数据库
sql CREATE DATABASE mydatabase; 2.选择数据库 使用`USE`语句选择当前要操作的数据库
sql USE mydatabase; 3.创建表 使用`CREATE TABLE`语句创建一个新表,定义表的列和数据类型
sql CREATE TABLE employees( id INT AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(50) NOT NULL, last_name VARCHAR(50) NOT NULL, email VARCHAR(100), hire_date DATE ); 4.修改表结构 - 添加列:使用`ALTER TABLE ... ADD COLUMN`语句
sql ALTER TABLE employees ADD COLUMN department VARCHAR(50); - 删除列:使用`ALTER TABLE ... DROP COLUMN`语句
sql ALTER TABLE employees DROP COLUMN email; - 修改列数据类型:使用`ALTER TABLE ... MODIFY COLUMN`语句
sql ALTER TABLE employees MODIFY COLUMN last_name VARCHAR(100); 5.删除表 使用`DROP TABLE`语句删除一个表
sql DROP TABLE employees; 6.删除数据库 使用`DROP DATABASE`语句删除一个数据库
sql DROP DATABASE mydatabase; 三、数据操作 1.插入数据 使用`INSERT INTO`语句向表中插入数据
sql INSERT INTO employees(first_name, last_name, department, hire_date) VALUES(John, Doe, HR, 2023-01-15); 2.查询数据 使用`SELECT`语句从表中检索数据
sql SELECT first_name, last_name, department FROM employees WHERE department = HR; 3.更新数据 使用`UPDATE`语句修改表中现有数据
sql UPDATE employees SET department = Finance WHERE last_name = Doe; 4.删除数据 使用`DELETE FROM`语句删除表中数据
sql DELETE FROM employees WHERE first_name = John; 四、高级查询与优化 1.联接查询 使用`JOIN`语句结合多个表的数据进行查询
sql SELECT e.first_name, e.last_name, d.department_name FROM employees e JOIN departments d ON e.department = d.department_id; 2.子查询 在`SELECT`、`INSERT`、`UPDATE`或`DELETE`语句中使用子查询
sql SELECT first_name, last_name FROM employees WHERE department =(SELECT department_id FROM departments WHERE department_name = IT); 3.索引优化 - 创建索引:使用`CREATE INDEX`语句,提高查询性能
sql CREATE INDEX idx_last_name ON employees(last_name); - 删除索引:使用`DROP INDEX`语句
sql DROP INDEX idx_last_name ON employees; 4.事务管理 - 开始事务:使用`START TRANSACTION`或`BEGIN`语句
-提交事务:使用`COMMIT`语句
- 回滚事务:使用`ROLLBACK`语句
sql START TRANSACTION; INSERT INTO employees(first_name, last_name, department, hire_date) VALUES(Jane, Smith, Finance, 2023-02-01); UPDATE departments SET department_name = Accounting WHERE department_id =3; COMMIT; 五、存储过程与函数 1.创建存储过程 使用`CREATE PROCEDURE`语句创建存储过程,封装一系列SQL操作
sql DELIMITER // CREATE PROCEDURE GetEmployeeDetails(IN emp_id INT) BEGIN SELECT first_name, last_name, department FROM employees WHERE id = emp_id; E