一、常用SQL语句
1.数据定义语言(DDL)
①create
✎创建数据库:create database 数据库名
✎创建表:create table 表名(id int primary key auto_increment,name varchar(20))
②drop
✎删除数据库:drop database 数据库名
✎删除表:drop table 表名
③alter
✎修改表名:alter table 表名 rename 新表名
✎删除列:alter table 表名 drop 列名
✎增加列:alter table 表名 add 列名 int not null
✎重命名列和修改列信息:alter table 表名 change 列名 新列名 bigint not null
2.数据操作语言(DML)
①insert
✎insert into 表名 (字段1,字段2,...) values(值1,值2,...)
✎insert into 表名 values(值1,值2,...)
✎insert into 表名 set 字段1=值1,字段2=值2,...
②update
✎update 表名 set 字段1=值1,字段2=值2,... where 条件
③delete
✎删除一条或几条记录:delete from 表名 where 条件
3.数据查询语言(DQL)
①select
✎select 函数(字段) from 表名:
select sum(字段名) from 表名 计算字段名中所有数据的和
select count(字段名) from 表名 字段名中有多少条数据
select avg(字段名) from 表名 字段名的平均数
select max(字段名) from 表名
select min(字段名) from 表名
✎select * from 表名 order by asc(正序)/desc(倒序)
✎select * from 表名 where 字段名 in/not in ()
✎包含或不包含特定内容:select * from 表名 where 字段名 like/not like '%' "%"代表>=0个字符,"_"代表一个字符
✎select * from 表名 limit 起点(从0开始),条数
✎select * from 表名 group by 字段名
4.数据控制语言(DCL)
①grant
②remove
③commit
④rollback
5.数据库备份与恢复
备份方式①:复制数据库
MySQL数据库的数据都存放在MySQL安装目录下的data文件夹中,每个数据库是一个文件夹。
对应的恢复方式:复制到data文件夹中即可
备份方式②:mysqldump
首先进入MysQL的bin目录,然后执行:mysqldump -u 用户名 -p 数据库名>到处文件名,按回车,输入密码,即备份成功。
对应的回复方式:进入MySQL控制台,建立数据库,使用use进入该数据库,最后使用:source 文件路径。
二、mysql扩展库
1.连接数据库:mysql_connect()
2.选择具体的数据库:mysql_select_db()
3.设置数据库编码:
方法①mysql_query("utf8");
方法②mysql_set_charset("utf8");
4.操作mysql_query()返回的资源集
①array mysql_fetch_array()
②array mysql_fetch_row()
这两个函数的区别:mysql_fetch_array()返回的数组中的key数字和字段都有,而mysql_fetch_row()返回的数组中的key只有数字。
5.查询资源集中有多少条记录
int mysql_num_rows()
6.关闭数据库连接
mysql_close([resource])
三、mysqli扩展库
1.说明
①mysqli扩展允许使用两种方式操作MySQL数据库:面向过程模式和面向对象模式
②在面向对象模式中,mysqli被封装成一个类。因此,要使用这个类,必须先实例化。
2.实例化
$db=new mysqli()
3.连接数据库
$db->connect(主机,用户名,密码,数据库名)
4.设置数据库编码
$db->query("set names utf8")
5.操作$db->query()返回的资源集
①$result->fetch_array() $result是$db->query()返回的资源集
②$result->fetch_row()
6.查询资源集中有多少条记录
$result->num_rows;
7.释放$result对象占用的内存
$result->free() 清空查询的结果
8.关闭数据库连接
$db->close()
四、PDO抽象层
1.连接数据库
$db=new PDO("mysql:host=127.0.0.1;dbname=dbname","root","")
2.设置编码
$db->query("set names utf8")
3.执行操作
$objStatement=$db->query("")
4.操作$db->query()返回的资源集
$objStatement->fetch(PDO::FETCH_ASSOC)
5.预执行语句
预执行:$objStatement=$db->prepare("insert into 'pdo'(name,pay) values (:name,:pay)")
绑定参数:$objStatement->bindParam(":name",$name)
执行:$objStatement->execute()
6.设置/获取属性
$db->setAttribute()
$db->getAttribute()
7.事务处理
事务开始:$db->beginTransaction()
执行语句:$db->exec("sql语句")
事务提交:$db->commit()
事务回滚:$db->rollback()
五、传统模式与抽象层开发对比
1.php6默认使用PDO来处理数据,所以,你懂的
2.PDO与mysql扩展对比
①在连接选择数据库方面,mysql扩展库比PDO大约快3倍
②在查询和插入数据方面,二者相当
③PDO预处理模式的安全性较高
④PDO模式可以解决跨数据库平台操作