### 经典MySQL语句详解 #### 数据表的修改与管理 **1. 修改表结构** - **添加新列**: 使用 `ALTER TABLE` 语句可以向已存在的表中添加新的列。例如,`ALTER table customer add Gender char(1);` 这条语句就是在 `customer` 表中新增了一个名为 `Gender` 的字符型列,其最大长度为1个字符。 - **更改列名和类型**: 如果需要更改现有列的名称或类型,可以使用 `ALTER TABLE` 的 `CHANGE` 或 `MODIFY` 子句。如 `ALTER table customer change Address Addr char(50)` 是将 `Address` 列重命名为 `Addr` 并调整其类型为长度为50的字符型;而 `ALTER table customer modify Addr char(30)` 则是在不改变列名的情况下,将 `Addr` 列的类型改为长度为30的字符型。 - **删除列**: 当不再需要某列时,可以通过 `DROP` 子句从表中移除该列,例如 `ALTER table customer drop Gender` 就是从 `customer` 表中删除了 `Gender` 列。 **2. 创建临时表** - **创建并填充临时表**: 通过 `CREATE TEMPORARY TABLE` 可以快速创建一个临时表,并立即用现有数据填充它。例如,`createtemporary table a as select * from user;` 这条语句就是创建了一个名为 `a` 的临时表,并将其内容设置为 `user` 表的所有数据。 #### 事务处理 **1. 控制自动提交** - **禁用自动提交**: 执行 `set autocommit=0` 可以关闭事务的自动提交功能,这样所有的数据库操作都会在一个事务内,直到手动提交或回滚。 - **启用自动提交**: 相反地,`set autocommit=1` 则会重新启用自动提交功能,每条SQL语句执行完毕后都会自动提交。 **2. 查看和更改存储引擎** - **检查存储引擎支持**: 通过 `mysql->show engines;` 或者 `mysql->show variables like 'have_%';` 可以查看当前MySQL实例支持哪些存储引擎,确认是否支持 `InnoDB`。 - **更改表的存储引擎**: 要更改某个表的存储引擎,可以使用 `ALTER TABLE table_name ENGINE = InnoDB;`,这会将表 `table_name` 的存储引擎更改为 `InnoDB`。 **3. 事务的开启** - **启动事务**: `mysql_query("BEGIN");` 或者 `mysql_query("START TRANSACTION");` 可以用于开启一个新的事务。 #### 存储过程与循环控制 **1. 条件语句** - **IF-THEN-ELSE**: 存储过程中可以使用 `IF` 语句来根据不同的条件执行不同的代码块。例如,在 `p12` 存储过程中,根据 `var` 的值插入或更新数据。 - **CASE 语句**: `CASE` 语句提供了多条件分支的处理能力,可以更灵活地根据不同的条件执行相应的代码。`p13` 存储过程展示了如何根据 `var` 的不同值插入不同的数据。 **2. 循环语句** - **WHILE 循环**: `WHILE` 循环会在满足特定条件时持续执行循环体内的语句。例如,`p14` 存储过程利用 `WHILE` 循环向表中插入一系列数据。 - **REPEAT 循环**: `REPEAT` 循环与 `WHILE` 类似,但其条件判断发生在循环体执行之后,确保循环体至少执行一次。 - **LOOP 循环**: `LOOP` 循环提供了一种更通用的循环机制,通常与 `LEAVE` 语句结合使用来提前终止循环。 - **LABELS 标号**: 标号可用于标记循环或其他复合语句,以便于使用 `LEAVE` 或 `ITERATE` 控制循环的流程。 #### 总结 以上介绍的MySQL语句涵盖了数据表的修改、事务处理、存储过程以及循环控制等关键领域,对于日常的数据库管理和开发工作具有极高的实用价值。掌握这些经典语句,能够显著提升在MySQL环境下的工作效率和数据库操作的安全性。
剩余42页未读,继续阅读
- 粉丝: 62
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助