1.1回顾
1.1.1几个概念
行:也叫记录,实体
列:也叫字段、属性
关系:两个表的公共字段
1.1.2数据库的模型
1、层次模型
2、网状模型
3、关系模型:每个表都是独立的。
1.1.3连接数据库
1、进入MySQL命令的文件夹用cd命令
2、Mysql [-h 数据库地址]–u用户名–p 密码[-P端口]
1.1.4对库进行操作
1、创建数据库
a)Createdatabase 数据库名[选项charset=字符编码]
b)Createdatabase if not exists 数据库名
c)Showcreate database 数据库名
d)Show databases 显示数据库
e)Drop database 数据库名
f)Alterdatabase 数据库名选项
1.1.5对表进行操作
1、创建表的语法
Createtable 表名(
字段名数据类型 [null|not null][default] [auto_increment] [primary key],
字段名数据类型
)charset =字符编码
2、数据类型
a)bigint
b)Int
c)smllint
d)tinyint
e)char 定长
f)varchar可变长度
g)text 大段文本
3、显示创建表的语法
a)Showcreate table 表名[\G]
4、显示所有表
a)Showtables
5、删除表
a)Droptable 表名
b)Drop table 表1,表2,表3
1.1.6对数据进行操作
1、增
a)Insertinto 表(字段名)values (值)
b)值的个数、顺序和字段的个数、顺序必须一致
c)插入字段名的顺序可以和表中的字段顺序不一致。
d)如果插入的值和数据表的字段的个数和顺序是一致的,字段名就可以省略.
e)通过插入null执行插入自动增长
f)通过default来插入默认值
2、删
a)语法:delete from表where条件
b)Deletefrom 表表示删除表中所有数据
3、改
a)语法:update 表set字段=值,字段=值where条件
4、查
a)语法:select 列名from 表where条件order by 排序limit限制
b)可以通过*号代替所有字段
c)Asc表示升序,desc表示降序,默认是升序
d)Limit后面有两个参数,第一个是起始位置,第二个查询个数,起始位置从0开始。
1.2作业
1.2.1复习CSS
CSS是一个样式,作用:控制网页样式,并且将样式和内容分离的一种标记性语言
1.2.2自动分行
将100个图片,每行放10个
思路:
首先开启一个表格,然后开启一行,然后循环100次,到10的整数倍的时候关闭行,并且开启新行,最后关闭行,并且关闭表格。
完整代码:
table{
width:980px;
border:#000 solid 1px;
margin:auto;
border-collapse:collapse; /*collapse:塌陷; 作用:制作细线表格*/
}
td{
border:#000 solid 1px;
text-align:center;
}
for($i=1;$i<=100;$i++)
{
echo '
';if($i%10==0)
{
echo '
';}
}
?>
1.2.3求数组的最大值
思路:
假设第0个值是最大,循环比较,如果数组中有一个值比最大值要大,那就把这个值付给最大值。
代码如下:
优化上面的代码:
Count()用来计算数组的长度,count()函数放在条件中,如果循环N次,count()执行了N+1次,其实count()只要执行一次即可。
再优化一下,将初始化数组数量放在for循环的初始化中。
完整代码如下:
//求数组中的最大值
$num=array(10,20,35,50,45,32,18);
$max=$num[0];//假设第0个值是最大的。
//循环比较,如果数组中有一个值比最大值要大,那就把这个值付给最大值。
for($i=1,$n=count($num);$i
if($num[$i]>$max){
$max=$num[$i];
}
}
echo '最大值是'.$max;
1.2.4求数组的和
1.2.5求阶乘
1、设计界面
2、求阶乘的业务逻辑
if(isset($_POST['button']))
{
$num=$_POST['num']; //字符串类型
if($num=='' || !is_numeric($num) || $num<0)
{
echo '请输入大于等于0的数字';
}
else
{
//将字符串数字转成数字类型
$num+=0;
if(is_int($num))
{
if($num==0)
{
echo '0!是1';
}
else
{
$result=1;
for($i=1;$i<=$num;$i++)
{
$result*=$i;
}
echo "{$num}!是{$result}";
}
}
else
{
echo '您收入的不是整数';
}
}
}
?>
求阶乘 | |
---|---|
请输入一个数: | |
1.2.6打印水仙花数
水仙花数的特点:三位的数字,满足的条件是abc=a3+b3+c3
第一种方法
第二种方法stringsubstr(string$string,int$start[,int$length] )用来截取子字符串。
1.2.7九九乘法表
规则:
1、第i行有i列
2、每个乘法都是当前列*当前行
核心代码:
美化例题,添加上表格
代码如下:
table{
width:980px;
margin:auto;
border-collapse:collapse;
}
tr{
height:35px;
}
td{
padding-left:10px;
border:#000 solid 1px;
}
for($i=1;$i<=9;$i++)
{
echo '
';for($j=1;$j<=$i;$j++)
{
echo "
{$j}*{$i}=".($j*$i).'';}
echo '
';}
?>
1.3MySQL客户端介绍
1、命令行:这种方法不友好
2、Web形式的可视化界面(phpMyAdmin)
优点:只要有浏览器就可以操作数据库
缺点:
a)创建数据库
b)创建表
创建完毕后表结构如下:
c)插入数据
d)修改、删除数据
3、Windows形式的客户端(MySQL-Front和Navicat)
1.4数据的导入和导出
1.4.1数据导出
选择数据库——导出
点击执行后,就把表和数据生成SQL语句并保存下来。
1.4.2数据导入
1、创建一个数据库。
2、选择数据库,点击导入
1.5综合项目
在项目中,PHP充当MySQL数据库的客户端,通过PHP连接数据库并且操作数据库的。
1.5.1PHP开启MySQLI扩展
PHP本身是一个框架,它的功能是由PHP扩展而来的,要通过PHP连接数据库,必须开启php连接MySQLI的功能,也就是php的mysql扩展。PHP的开发离不开数据库,而在PHP中可以通过MySQLi连接数据库的。但是MySQLi只能连接mysql数据库。同时mysqli是一种面向对象的技术
在php.ini中,将extension=php_mysql.dll前面的分号去掉,重启服务器。
1.5.2创建数据库
通过phpMyAdmin新建一个data数据库,并将准备好的SQL文件导入到数据库中。
1.5.3连接数据库
使用面向对象进行数据库的连接,在创建对象的时候就自动的连接数据
1.5.4终止执行
exit([参数])和die([参数]),终止执行后,body、head闭合标签都不见了
1.1.1设置字符编码
1.5.5查询数据库
通过$mysqli->query()执行SQL语句,返回一个对象型的数据。
1.5.6取出结果集中数据(fetch_row)
开始匹配,指针指向第一个记录,取出资源中的当前记录,匹配成索引数组,指针下移一条。
字段的索引从0开始依次往后递增
全部取出,用while循环
缺点:数据库字段的个数发生了变化,会影响程序中数组的索引编号
1.5.7取出结果集中数据(etch_assoc)
开始匹配时候指针指向第一个记录,取出资源中的当前记录,匹配成关联数组,指针下移一条。
数组的键和数据表的字段名相关联
1.5.8取出结果集中数据(etch_array)
开始匹配时候指针指向第一个记录,取出资源中的当前记录,匹配成的数组既支持关联数组,又支持索引数组指针下移一条。
1.5.9取出结果集中数据(fetch_object)
从记录集中取出一条数据,匹配成对象,指针下移一条,一条记录是一个对象,一个字段就是一个属性。
在PHP中通过->符号调用对象的属性
1.6释放资源
用$res->free()释放资源;
1.7关闭连接
页面执行完毕后,所有的变量全部销毁,所以可以不用手动释放资源。