mysql
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql相关的知识,希望对你有一定的参考价值。
mysql在执行的过程中,一般使用静默模式,即使sql语句由语法错误,也不会主动报错!
此时,用户可以通过相关的MySQL扩展函数来把相关的错误信息提取出来!
mysql_errno():获取错误的编号
mysql_error():获取错误的信息
为了主动报错,给出用户相关的提示信息,我们应该每执行一条sql语句,
都要进行一次验证!主动的执行mysql_error()和mysql_errno()!
所以,我们有必须对上面的功能封锁,封装成一个函数.
但是,还是不够方便,因为每次执行完一条sql语句后都要调用相同的函数可以对my_query函数进行改造,可以将sql语句的执行过程也封装到my_query中:
所以,后面再执行sql语句的时候,就可以直接使用自己封装的mysql_query函数!
另外,在一个真实的项目中,需要连接数据的脚本有很多,如果每一个脚步都需要
手动连接数据库,并且手动设置数据库的字符集和选择默认的数据库(
),所以,我们有必要对数据库的连接进行封装,主要的目的是:如果一个脚本文件需要连接数据库,
我们只需要把这个数据库的连接文件加载就行了!
插入数据(增)
由于主键id一般都采用自动增长机制,所以,插入数据的时候,需要学习一个函数:
mysql_insert_id():返回当前新记录的id号!
删除和更新数据的步骤和插入数据其实是一样的,因为删除和更新后一般都要得到一个执行完毕后受影响的行数
所以,也有一个函数需要学习:
mysql_affected_rows():返回执行完sql语句后受影响的行数!不仅仅适用于删除和更新,而是适用于所有的Sql语句(增删改查)!
查询数据
提取资源结果集
利用html文件展示结果
备份:就是把已有的数据复制一份,放到其他的服务器上!
文本备份:文本备份是最简单的,就是将数据表的相关文件复制一份就行了!
注意:文本备份一般认为只适合Myisam存储引擎创建的表!
缺点:每次都需要备份整个文件,非常浪费磁盘空间!
数据备份
所谓的数据备份,就是只备份表的数据部分,不备份表结构!
也就是说,如果整张表的数据被误删了(delete语句),还是可以还原的!(因为表的结构还在),
但是,如果把整个表之间drop掉了,就无法还原了,因为表的结构已经没有了.
备份语法 select *|字段列表 into outfile 文件地址 from表名;
其中,文件地址包含文件的路径和文件名,其中,文件的路径(目录)一定是事先存在的,
而文件的名字一定是事先不存在的,也就是文件的名字只能由系统自动创建的.
还原语法
load data infile 文件地址 into table 表名[字段列表];
小技巧:
我们可以利用还原语法快速的将外面的数据导入数据表中!
但是外部数据的格式首先要整理一下:
数据项与数据项之间以制表符作为分隔符!
sql备份
就是将表的结构和数据通过sql语句的形式进行备份!
与数据备份最大的区别是:不仅仅备份数据表的数据部分,
也备份数据表的结构部分,也就说,即使数据表被drop掉了,也能还原!
注意:mysql中专门提供一个用来备份的客户端软件:mysqldump.exe
既然是客户端,跟mysql.exe一样首先也要进行连接认证!
备份语法
mysqldump -h主机号 -p端口号 -u用户名 -p密码 数据库名[数据表1 数据表2....] > 存储路径
mysqldump -hPup 数据库名[数据表1 数据表2 ...] > 存储路径
还原语法
mysql -hPup 数据库名 < 备份路径
mysql -uroot -p php2017 < "d:/backup/php_s.sql"
source 备份路径; 注意:这里的路径不能有引号
优点:更加可靠,可以备份表的结构
缺点:是对整个数据表进行备份,耗时比较长,而且比较浪费磁盘空间!
在真实项目中,对于Myisam存储引擎,一般可以采用文本备份!而使用InnoDB存储引擎,一般可以采用sql备份.
并且,都可以采用N天天轮流备份策略!比如:7天轮流备份策略!也就是永远只备份进7天的!
用户的权限
目前为止,数据库使用的都是root用户,超级管理员,拥有全部的权利!
但是,一个大的项目通常是由很多个项目小组一起实现的,也就是一个数据库服务器,
上面运行着很多个项目的数据库!
所以,我们应该根据不同的项目小组建立不同的用户,分配不同的权限来进行管理和维护数据库!
创建用户
在mysql中,所有的用户的信息都在mysql(这里的mysql是一个数据库名)数据库下user表中!
创建用户语法
create user‘用户名‘[@‘主机地址‘] identified by ‘密码‘;
其中:
用户名就是允许登录的名字
主机地址是用户允许登录的ip地址或ip地址池,省略的话就代表ip地址没有限制!
创建用户
只给本机使用的用户
create user‘test1‘@‘localhost‘identified by ‘12345‘;
只给局域网访问的用户
create user‘test2‘@‘192.168.152.%‘ identified by ‘12345‘;
给全网访问的用户
create user‘test3‘ identified by ‘12345‘;
用户创建完毕之后,默认的是基本没有什么权限!
给用户分配权限
grant 权限列表 on 库名.表名 to ‘用户名‘[@‘‘]
回收权限
revoke 权限列表 on 库名.表名 from ‘用户名‘ [@‘主机地址‘];
第二种方法:
drop user ‘用户名‘[@‘主机地址‘];
drop user ‘test1‘@‘localhost‘;
删除用户
第一种方法:
直接在mysql.user表上执行delete操作删除相应的记录就行了!
root密码找回
如果root密码忘记了?怎么办?
1.停止mysql服务
2.进入mysql的安全模式,即不用输入密码就能进入到数据库
3.重新打开一个CMD窗口
4.输入指令开始修改root用户的密码
5.刷新权限表
6.退出
7.在内存中结束mysql进程
8.重新启动mysql
web典型应用
新的知识点主要有一下几个方面:
php与web页面的交互:表单传值,文件的上传与下载等
php会话技术:cookie与session
http协议:网络协议的基本概念,请求协议和响应协议
php操作目录和文件:创建、删除、移动、遍历目录等,打开、关闭、读取和写入文件
php图像处理技术:开启GD库,验证码、水印等图像常见的操作
以上是关于mysql的主要内容,如果未能解决你的问题,请参考以下文章