第6章 PHP的数据库编程_第1页
第6章 PHP的数据库编程_第2页
第6章 PHP的数据库编程_第3页
第6章 PHP的数据库编程_第4页
第6章 PHP的数据库编程_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章PHP的数据库编程在PHP中提供了大量用于数据库处理的函数,可通过这些函数方便地对数据库进行操作。本章将学习通过PHP操作MYSQL数据库。6.1MYSQL数据库基础权限应用范围说明select表、列允许从表中选择记录Insert表、列允许向表中插入记录update表、列允许用户修改表中的记录delete表允许删除表中记录index表允许用户删除或创建表索引alter表允许用户改变表结构create数据库、表允许创建新数据库或表drop数据库、表允许删除数据库或表Mysql命令行操作一、连接数据库:1、MySQL连接本地数据库,用户名为“root”,密码“123”(注意:“-p”和“123456”之间不能有空格)C:\>mysql-hlocalhost-uroot-p1232、MySQL连接远程数据库(192.168.0.201),端口“3306”,用户名为“root”,密码“123456”C:\>mysql-h192.168.0.201-P3306-uroot-p1234563、MySQL连接本地数据库,用户名为“root”,隐藏密码C:\>mysql-hlocalhost-uroot-pEnterpassword:二、MySQL中建立数据库和数据表mysql>showdatabases;+--------------------+|Database|+--------------------+|information_schema||center||mysql||office||test|+--------------------+5rowsinset(0.00sec)创建一个数据库phpdbmysql>CREATEDATABASEphpdb;注意不同操作系统对大小写的敏感。mysql>createdatabasephpdb;QueryOK,1rowaffected(0.02sec)

3、选择你所创建的数据库mysql>usephpdb;Databasechanged此时你已经进入你刚才所建立的数据库phpdb.4、创建一个数据库表首先看现在你的数据库中存在什么表:mysql>SHOWTABLES;Emptyset(0.00sec)说明刚才建立的数据库中还没有数据库表。下面来创建一个数据库表mytable:我们要建立一个公司员工的生日表,表的内容包含员工姓名、性别、出生日期、出生城市。mysql>CREATETABLEmytable(nameVARCHAR(20),sexCHAR(1),birthDATE,birthaddrVARCHAR(20));QueryOK,0rowsaffected(0.03sec)创建了一个表后,我们可以看看刚才做的结果,用SHOWTABLES显示数据库中有哪些表:mysql>showtables;+-----------------+|Tables_in_phpdb|+-----------------+|mytable|+-----------------+1rowinset(0.00sec)5、显示表的结构:mysql>describemytable;+-----------+-------------+------+-----+---------+-------+|Field|Type|Null|Key|Default|Extra|+-----------+-------------+------+-----+---------+-------+|name|varchar(20)|YES||NULL|||sex|char(1)|YES||NULL|||birth|date|YES||NULL|||birthaddr|varchar(20)|YES||NULL||+-----------+-------------+------+-----+---------+-------+4rowsinset(0.00sec)6、往表中加入记录我们先用SELECT命令来查看表中的数据:mysql>select*frommytable;Emptyset(0.00sec)这说明刚才创建的表还没有记录。加入一条新记录:mysql>insertintomytablevalues(‘zhanglan’,’f’,’1977-07-07’,’china’);QueryOK,1rowaffected(0.05sec)7、用文本方式将数据装入一个数据库表创建一个文本文件“mysql.txt”,每行包含一个记录,用定位符(tab)把值分开,并且以在CREATETABLE语句中列出的列次序给出,例如:wanghong f 1981-06-23 tianjinmysql>loaddatalocalinfile"d:\mysql.txt"intotablemytable;QueryOK,1rowaffected(0.02sec)Records:1Deleted:0Skipped:0Warnings:0

三、mysql修改表结构altertable<表名>[addcolumn<列名><数据类型>[完整性约束]][dropcolumn<列名>][modifycolumn<列名><数据类型>[完整性约束]][addconstraint<表级完整性约束>][dropconstraint<表级完整性约束>];例如:mysql>ALTERTABLEt1MODIFYbBIGINTNOTNULL;修改列的类型mysql>ALTERTABLEt1RENAMEt2;重名名表mysql>ALTERTABLEt1CHANGEabBIGINTNOTNULL;修改列名mysql>ALTERTABLEt2ADDdTIMESTAMP;增加一个新列dmysql>ALTERTABLEt2DROPCOLUMNc;删除一个列c创建数据库命令:createdatabasedb_name;例:createdatabaseweb;删除数据库命令:dropdatabase[ifexists]db_name;例:dropdatabaseifexistsweb;创建表

createtabletbl_name(

字段1类型1[NULL|NOTNULL],

字段2类型2(长度)….)createtabletbl(Idintprimarykeyauto_increment,UserNamevarchar(100),Paswdvarchar(100));一个表创建后自动生成3个文件:tbl.frmtbl.MYDtbl.MYItblName.frm文件是表的定义,它保存了表中包含的数据列的内容和类型。tblName.MYD文件包含了表中的数据。tblName.MYI文件含了表的索引删除表

droptable[ifexists]table_name;例:droptableifexiststbl;数值型TINYINT[(M)]:一个很小的整数。有符号的范围是-128到127,无符号的范围是0到255。SMALLINT[(M)]一个小整数。有符号的范围是-32768到32767,无符号的范围是0到65535。MEDIUMINT[(M)]一个中等大小整数。有符号的范围是-8388608到8388607,无符号的范围是0到16777215。INT[(M)]一个正常大小整数。有符号的范围是-2147483648到2147483647,无符号的范围是0到4294967295。INTEGER[(M)]这是INT的一个同义词。BIGINT[(M)]一个大整数。有符号的范围是-9223372036854775808到9223372036854775807,无符号的范围是0到18446744073709551615。FLOAT[(M,D)]一个小(单精密)浮点数字。不能无符号。允许的值是-3.402823466E+38到-1.175494351E-38,0和1.175494351E-38到3.402823466E+38。M是显示宽度而D是小数的位数。没有参数的FLOAT或有<24的一个参数表示一个单精密浮点数字。DOUBLE[(M,D)]一个正常大小(双精密)浮点数字。不能无符号。允许的值是1.7976931348623157E+308到-2.2250738585072014E-308、0和2.2250738585072014E-308到1.7976931348623157E+308。M是显示宽度而D是小数位数。没有一个参数的DOUBLE或FLOAT(X)(25<=X<=53)代表一个双精密浮点数字。日期和时间类型DATE一个日期。支持的范围是'1000-01-01'到'9999-12-31'。MySQL以'YYYY-MM-DD'格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列。DATETIME一个日期和时间组合。支持的范围是'1000-01-0100:00:00'到'9999-12-3123:59:59'。MySQL以‘YYYY-MM-DDHH:MM:SS’格式来显示DATETIME值,但是允许你使用字符串或数字把值赋给DATETIME的列。TIMESTAMP[(M)]一个时间戳。范围是‘1970-01-0100:00:00’到2037年的某时。MySQL以YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD或YYMMDD格式来显示TIMESTAMP值,取决于是否M是14(或省略)、12、8或6,但是允许你使用字符串或数字把值赋TIMESTAMP列。CHAR(M)[BINARY]

一个定长字符串,当存储时,总是是用空格填满右边到指定的长度。M的范围是1~255个字符。当值被检索时,空格尾部被删除。VARCHAR(M)[BINARY]

一个变长字符串。注意:当值被存储时,尾部的空格被删除(这不同于ANSISQL规范)。M的范围是1~255个字符。TEXT和BLOB类型Text适合存储长文本,BLOB适合存储二进制数据TINYBLOB、TINYTEXT一个BLOB或TEXT列,最大长度为255(2^8-1)个字符。BLOB、TEXT

一个BLOB或TEXT列,最大长度为65535(2^16-1)个字符。MEDIUMBLOB、MEDIUMTEXT

一个BLOB或TEXT列,最大长度为16777215(2^24-1)个字符。LONGBLOB、LONGTEXT一个BLOB或TEXT列,最大长度4294967295(2^32-1)个字符。查看数据库1、show命令:显示数据库内容

showdatabases列出所有可供使用的数据库名

showtables列出当前数据库中所有的表信息

showcolumnsfromtable列出表中所有字段信息

2、describe命令查看指定表的详细设计信息

describetbl;使用数据库1、插入数据

insertintotbl(字段集)values(值集)

例:insertintotbl(username,password,lastlogin)values(‘ahut’,’123456’,now())

调用一个写好的sql语句

sourced:\mysql.sql;2、查询数据

select字段fromtblwhere条件[limitstart,rows]例:select*fromtbllimit0,3(1)基本查询select*[字段]fromtbl(2)条件查询select*fromtblwhere字段条件值select*fromtblwhereusernamelike‘a%’select*fromtblwhere(age>20andscrore>80)orage<20(3)多表查询select*fromtbl1,tbl2(4)排序查询select*fromtblorderbyiddesc[asc]//按大小排序select*fromtblgroupbypassword//按类排序selectcount(*)ascntgroupbypassword//按类统计select*fromtblgroupbypasswordhavingusername=‘ahut’//根据条件按类统计(5)查询非字段select6*5;//查询计算结果selectnow();//查询系统时间更新内容命令:updatetblset字段=值where条件删除记录deletefromtblwhere条件truncatetbl//删除表中所有记录6.2.1PHP连接MYSQL连接到服务器resourcemysql_connect([stringserver[,stringusername[,stringpassword[,boolnew_link[,intclient_flags]]]]])server:MYSQL服务器,可以包括端

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论