数据库操作
1 | # 连接 |
表操作
1 | # 创建(列名 数据类型 约束, if not exists是不存在才创建) |
数据库的查询
1 | #查询表达式结果 (可得到2+3的计算结果5 注:select 'c'+'d';输出0) |
需要详细了解见:https://blog.csdn.net/m0_46563938/article/details/109075124
视图
1 | # 创建 |
触发器
1 | # 创建 => create trigger test.student_trigger <before|after> <insert| updata| delete> on test.student for each row <主体> (主体如果要执行多个语句,要使用begin…end复合结构) |
当触发器涉及对表自身的更新操作时,只能使用before触发器。
old表中的值全部是只读的。(new操作后的表,old操作前的表)
load data语句能激活before insert触发器。
每个表最多有六个触发器,每种各一个。每个表每个事件每次只允许一个触发器。
触发器不能建立在视图上。
事件
1 | # 创建 |
InnoDB : 事物型数据库首选引擎
- 事件需要确保MySQL中的event_scheduler已开启
1
2
3
4
5 # 查看当前事件调度器是否开启
show variables like 'event_scheduler';
select @@event_scheduler;
# 开启|关闭事件调度器
set global event_scheduler=<true|false>;
- 事件是基于特定时间周期来触发的。
- 如果不显式地指明,事件在创建后处于关闭状态
存储过程
1 | # 创建 |
过程体一般写在begin……end之间
过程参数格式: [in|out|inout] <全局参数名><类型>
IN 输入参数:表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值
OUT 输出参数:该值可在存储过程内部被改变,并可返回
INOUT 输入输出参数:调用时指定,并且可被改变和返回需要具有create routine权限。
过程体:delimiter $$ (修改命令结束符为$$)
declare <变量名> <类型> [default <默认值>] (声明局部变量,局部变量只能在存储过程体begin…end语句中声明并作用)
局部变量与用户变量的区别:局部变量的声明时没有使用@符号,并且只能在begin…end范围内使用;用户变量在声明时需要使用@符,已经声明的变量存在与整个会话中。用户变量使用SET语句定义,局部变量使用DECLARE语句定义。
变量声明后可使用set语句为局部变量赋值 (set xname=’小马’)
存储函数
1 | # 创建 |
游标
1 | # 声明 |
注意:!游标只能用于存储过程和存储函数
!游标不是一条select语句,是被select语句检索出来的结果集
用户账号管理
1 | # 创建 |
用户权限管理
1 | # 授与 |
注意:! 授权包括:创建表、索引、列、视图、存储过程、函数等权限,最小的是列。
! DELETE 不能授予到操作权限。
备份与恢复
SQL语句备份/恢复(数据备份,结构未备份)
1 | # 备份 |
mysqldump程序备份/恢复
1 | # 导出 |
PHP数据库操作
1 | # 建立连接 |
@$_POST[“b”]==添加、修改 or other
PHP 5 及以上版本建议使用mysqli代替mysql来进行数据库操作。 如:
mysql_fetch_row(data)改为mysqli_fetch_row(data)
配置允许其他电脑连接数据库
1 | # 注释掉 bind-address = 127.0.0.1 |
本文链接: http://www.ionluo.cn/blog/posts/9b2a9201.html
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!