数据库的3层结构,
1.数据库操作界面(或者php数据库扩展函数)
2.mysql,数据库管理系统,可以进行数据库编译,数据库接收到命令,进行二次编译,比如select * from maps,会把这个编译成数据识别的语言。
3.mysql中管理的若干数据对象(即数据库database,包含表、存储过程、函数)
CRUD指的是数据库的增删改查,c是增create,r是查询,u是更新update,d是删除del
数据库定义时,char和varchar区别,
char是定长,在定义时就定义了char的长度
varchar是不定长,是可变,根据数据自动修改长度
unsigned,无符号,比如int,范围应该是-2147483648--2147483647,如果是无符号的,因为没有负值,最大值范围可以扩大1倍
php数据库中,涉及到密码的话,可以使用md5加密,md5(str),这样生成的字符是不可逆向破解的,每次使用时,用户输入密码后,通过md5后和数据库中对比,一致即可,也就是管理员不用知道密码。
在命令行下 ,在mysql中输入中文,会因为编码格式无法完成数据录入,查看数据的编码设置使用命令 show variables like ‘’%char%‘’; 设置gbk码的方式:
set character_set_client-gbk; 数据库中接收使用的编码格式
set character_set_results-gbk; 数据库操作界面显示的编码
如果是使用php,则sql命令是set names utf8 因为php和html一般都是用utf8,所以需要统一编码
数据库操作指令有4类
1.ddl:数据库定义语言,data define language,比如创建表
2.dml:数据操作语言,data manipulation language,比如增加insert、删除delete、修改update
3.dql:数据查询指令 ,data query language,比如查询
4.dcl:数据事务控制指令,data control language ,比如rollback commit
虽然我们通常都说增删改查,但是其实查询和增删改不是同一类命令,建议在编写类或者函数时,分开进行处理,因为增删改返回的是布尔值(即成功或失败),而查询返回的是结果集。
数据库操作原则:越晚连接越好,越早断开越好。节省资源。
mysql扩展库数据操作mysql的步骤
1.获取链接
2.选择数据库
3.设置操作编码(可选,建议有)
4.发送指令sql(ddl\dml\dql\dcl)
5.接收返回的结果,进入php的处理逻辑
6.释放资源,关闭链接
如果是查询命令,返回的是一个资源(结果集、也是个表)。这个表是按行排列的,每行是一个元素。而取出一行来,是一个数组,每个列(字段)是数组中的一个元素。
fetch 可以理解成指针,查询返回的结果集,指针是指向表头的,fetch时,是抓取的下一行,也就是数据行的第一行。
关闭链接 mysql_close(); mysql有自己的链接控制机制,不是命令后就马上关闭,而是在脚本执行完毕后,自动进行关闭。
