文章目录
前言
提示:学会在LNMP平台中编写自己的表记录管理平台,熟悉编程软件notepad++使用
phpMyAdmin要求工作环境是什么?
如何在上述环境中建立和维护库、表?
如何完成对所有库的备份?如何进行恢复?
MySQL的基本概念
MySQL是一种关系型数据库管理系统,常用于存储和管理大量的结构化数据。以下是MySQL的基本概念:
-
数据库:MySQL中的数据库是一个集合,包含了多个表格以及其他相关的对象。每个数据库都有一个唯一的名称,用于在MySQL中进行访问和管理。
-
表格:MySQL中的表格是用来存储数据的结构化对象。每个表格都包含了若干个列和行,其中列指定了表格中存储的数据类型,行则是具体的数据记录。
-
列:在MySQL中,列定义了表格中需要存储的数据类型。每个列都有一个名称,用于标识和访问该列中的数据。
-
行:在MySQL中,行指的是表格中的一个数据记录,记录了该行中每个列所对应的具体数据。
-
主键:主键是用来标识表格中每个数据记录的唯一标识符。主键通常由一个或多个列组成,并且必须在表格中唯一。
-
外键:外键是用来建立表格之间关系的一种机制。外键是一个列,它引用了另一个表格的主键,用来建立两个表格之间的关联关系。
-
索引:索引是一种用来加速数据查询的机制。索引通常是建立在表格的一个或多个列上,并且可以在查询时快速定位到对应的数据记录。
-
视图:视图是一种虚拟的表格,它是通过对一个或多个表格进行查询得到的。视图通常用于简化复杂查询或隐藏敏感数据。
-
存储过程:存储过程是一种存储在数据库中的可执行程序。它可以接受输入参数并返回结果,通常用于实现复杂的业务逻辑。
-
触发器:触发器是一种特殊类型的存储过程,它会在表格中发生指定事件时自动触发。触发器通常用于实现数据约束或自动化数据处理。
MySQL的优势
MySQL作为一种开源的关系型数据库管理系统,具有以下优势:
-
高可靠性:MySQL在设计和实现上非常注重数据的可靠性和稳定性,使用者可以放心地使用它来存储和管理重要的数据。
-
高性能:MySQL具有高效的储存引擎和查询优化技术,能够快速地读写数据和执行复杂的查询操作,可以处理高并发和大规模的数据访问。
-
可扩展性:MySQL支持多种储存引擎,并且可以通过分布式储存和集群等技术来扩展数据容量和吞吐量。
-
易用性:MySQL具有易于学习和使用的特点,具有完善的文档和社区支持,让开发者能够快速地上手和开发出高效的应用。
-
开源性:MySQL是一种开源软件,许多开发者和组织都参与到了他的开发和维护工作中,使得它充满了活力和创新。
-
兼容性:MySQL支持多种操作系统和编程语言,并且可以与许多其他软件和工具集成,为开发者提供了更多的选择和灵活性。
MySQL的发展历史
MySQL的发展历史可以追溯到1995年,这一年,Michael Widenius和David Axmark创建了一种名为MySQL的轻量级关系型数据库管理系统。最初,MySQL是为Linux和UNIX系统开发的,目标是为网站和应用程序提供一个快速、可靠和易于使用的数据库解决方案。
在MySQL的早期阶段,它主要被广泛应用于Web应用程序和互联网领域。由于其高性能、易用性和开源性质,MySQL很快就成为了开发者和企业的首选数据库之一。在1999年,MySQL AB成立,开始专注于MySQL的商业化和发展工作。
在2000年代初期,MySQL经历了快速的成长和发展。它迅速扩展了其功能和特性,包括支持多种储存引擎、事务处理和复制等功能。此外,MySQL也得到了越来越多的开发者和组织的支持,成为了开源软件领域的热门项目之一。
在2008年,Sun Microsystems收购了MySQL AB,随后,这个公司被Oracle Corporation收购。MySQL继续保持其开源性质,并通过不断的改进和创新,为开发者和企业提供了更好的数据库解决方案。目前,MySQL已经成为世界上最流行和广泛使用的关系型数据库管理系统之一,被广泛应用于Web应用程序、企业应用和云计算平台等领域。
本章结构
安装notepad++
执行安装程序npp.7.5.9.Installer.x64.exe
将在桌面生成如下快捷方式
notepad++使用
1.打开notepad++
2.选择程序编码UTF-8编码
3.选择编程语言为PHP![在这里插入图片描述](https://img-blog.csdnimg.cn/7b22b37b4fe746da86efe3efe9288a43.png)
4.编写后运行预览(若是php,最好是挂到服务器网站根目录测试)
php访问数据库命令1
1.建立连接(PHP5.4以下)
$db=mysql_connect('localhost','root','123456') or die("error connecting") ;
若连接不上则显示die中的内容
2.打开数据库
mysql_select_db(mydb);
3.设定操作结果显示字符集(没这句后果是汉字显示不了)
mysql_query("set names 'utf8'");
4.设计操作命令,并将它赋给变量,方便使用
$sql ="select * from Info";
5.执行操作并将结果返回到变量(是一个集合)中
$r = mysql_query($sql,$db);
6.逐个读取变量中记录的名字段值,并在网页中显示结果(因记录较多,要做个循环)
while($att = mysql_fetch_array($r))
{
echo "{$att['Code']} {$att['Name']}<br>";
}
7.关闭连接
mysql_close($db);
8.将上述1-7命令集中起来,加上显示网页标题代码和PHP标识,就构成一个完整的PHP程序。(假定名为my1.php)
php访问数据库命令2
1.建立连接(PHP5.5以上方可使用)
$db=new mysqli('localhost','root','123456','mydb') or die("eror connectiong");
参数多了个数据库名字
2.打开数据库?(不用,已包括在连接库命令中)
...
3.设定操作结果显示字符集(没这句后果是汉字显示乱码)
$db->query("set character set 'utf8'");
4.设计操作命令,并将它赋给变量,方便使用
$sql ="select * from Info";
5.执行操作并将结果返回到变量(是一个集合)中
$r = $db->query($sql);
6.逐个读取变量中记录的各字段值,并在网页中显示结果(因记录较多,要做个循环,注意读取函数不是以前的了)
while($att = mysqli_fetch_assoc($r))
{
echo "{$att['Code']} {$att['Name']}<br>";
}
7.停止查询操作
$r->close();
8.将上述1-7命令集中起来,加上显示网页标题代码和PHP标识,就构成一个完整的PHP程序。(假定名为my2.php)
数据记录维护html网页特效
一、表格(table)
<table> 标签定义 HTML 表格
一个 HTML 表格包括 <table> 元素,一个或多个 <tr>、<th> 以及 <td> 元素。
<tr> 元素定义表格行,
<th> 元素定义表头,
<td> 元素定义表格单元。
更复杂的 HTML 表格也可能包括 <caption>、<col>、<colgroup>、<thead>、<tfoot> 以及 <tbody> 元素。
<table width="100%" border="1" cellpadding="0" cellspacing="0">
…
…
</table>
二、区块(div)
作用是设定字、画、表格等的摆放位置。
<div>
<a href="Add.php" rel="external nofollow" >添加数据</a>
</div>
三、超链接
<a> 标签定义超链接,用于从一张页面链接到另一张页面。
<a> 元素最重要的属性是 href 属性,它指示链接的目标。
<td>
<a href='DeleteChuLi.php?code={$v[0]}'>删除</a>
<a href='Update.php?code={$v[0]}'>修改</a>
</td>
四、表单(form)
表单能够包含 input 元素,比如文本字段、复选框、单选框、提交按钮等等。
表单还可以包含 menus、textarea、fieldset和 label 元素 等。如下面添加记录程序Add.php
<form action="AddChuLi.php" method="post">
…
</form>
1.文本输入框
<div>代号:<input type="text" name="code" /></div>
<div>姓名:<input type="text" name="name" /></div>
2.单选框
<div>性别:
<input type="radio" value="男" name="sex" />男
<input type="radio" value="女" name="sex" />女
</div>
3.下拉选择菜单
echo "<option value={$att['Code']}> {$att['Name']}</option>";
4.提交按钮
<div><input type="submit" value="添加数据" /></div>
5.接受表单提交的数据的程序名
<form action="AddChuLi.php" method="post">
…
</form>
6.接收程序所用的参数(在接收程序AddChuLi.PHP中)
$code = $_POST["code"];
$name = $_POST["name"];
$sex = $_POST["sex"];
7.返回主程序(在接收程序AddChuLi.php中)
header("location:main.php");
主程序main.php
主程序main.php代码如下:
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>代号</td>
<td>姓名</td>
<td>性别</td>
<td>民族</td>
<td>生日</td>
<td>操作</td>
</tr>
<?php
$db=new mysqli('localhost','root','123456','mydb') or die("eror connecting");
$sql ="select * from Info";
$db->query("set character set 'utf8'");
$res = $db->query($sql);
$posts = array();
while($row = mysqli_fetch_array($res)) {
$posts[] = $row;
}
foreach($posts as $v)
{
$sex = $v[2]? '男':'女';
$sql2 = "select Name from Nation where Code = {$v[3]}";
$result2 = $db->query($sql2);
$attr = mysqli_fetch_array($result2);
echo "<tr>
<td>{$v[0]}</td>
<td>{$v[1]}</td>
<td>{$sex}</td>
<td>{$attr['Name']}</td>
<td>{$v[4]}</td>
<td>
<a href='DeleteChuLi.php?code={$v[0]}'>删除</a>
<a href='Update.php?code={$v[0]}'>修改</a>
</td>
</tr>";
}
?>
</table>
<div>
<a href="Add.php" rel="external nofollow" >添加数据</a>
</div>
删除记录程序DeleteChuLi.php
删除记录程序DeleteChuLi.php代码如下:
<?php
$code = $_GET['code'];
$db = mysql_connect("localhost","root","123456") or die("error conneting!");
mysql_select_db(mydb);
$sql = "delete from Info where Code = {$code}";
$r = mysql_query($sql, $db);
if ($r)
{
header("location:main.php");
}
else
{
echo "删除失败";
}
?>
添加程序Add.php
添加程序Add.php代码如下:
<h1>添加数据</h1>
<form action="AddChLi.php" method="post">
<div>代号:<input type="text" name="code" /></div>
<div>姓名:<input type="text" name="name" /></div>
<div>性别:
<input type="radio" value="男" name="sex" />男
<input type="radio" value="女" name="sex" />女
</div>
<div>民族:
<select name="nation">
<?php
$db=mysql_connect('localhost','root','123456') or die("error connecting");
mysql_select_db(mydb);
$sql = "select * from Nation";
mysql_query("set names 'utf8'");
$r = mysql_query($sql, $db);
while ($att = mysql_fetch_array($r))
{
echo "<option value={$att['Code']}>{$att['Name']}</option>";
}
?>
</select>
</div>
<div>生日:<input type="text" name="birthday" /></div>
<div><input type="submit" value="添加数据" /></div>
</form>
添加处理程序Add.php
添加处理程序Add.php代码如下:
<?php
$code = $_POST["code"];
$name = $_POST["name"];
$sex = $_POST["sex"];
$s = 1;
if($sex == "女")
{
$s =0;
}
$nation = $_POST["nation"];
$birthday = $_POST["birthday"];
$db = mysql_connect("localhost","root","123456") or die("error connecting");
mysql_query("set names 'utf8'");
mysql_select_db(mydb);
$sql = "insert into Info values('{$code}','{$name}','{$s}','{$nation}','{$birthday}')";
$result = mysql_query($sql,$db);
if($result)
{
header("location:main.php");
}
else
{
echo "添加失败";
}
?>
更新程序Update.php
更新程序Update.php代码如下:
<h1>修改数据</h1>
<?php
$code = $_GET["code"];
$db = new mysqli("localhost","root","123456","mydb");
if(mysqli_connect_error()){
die("连接失败");
}
$sql1 = "select * from Info where Code={$code}";
$db->query("set character set 'utf8'");
$r1 = $db->query($sql1);
$att1 = $r1->fetch_row();
?>
<form action="UpdateChuLi.php" method="post">
<div>代号:<input type="char" name="code" value="<?php echo $att1[0] ?>" /></div>
<div>姓名:<input type="text" name="name" value="<?php echo $att1[1] ?>" /></div>
<div>性别:
<input type="radio" value="男" name="sex" <?php echo $att1[2] ? "checked='checked'" : ""; ?> />男
<input type="radio" value="女" name="sex" <?php echo $att1[2] ? "" : "checked='checked'"; ?> />女
</div>
<div>民族:
<select name="nation">
<?php
$db2 = new mysqli("localhost", "root", "123456", "mydb");
if(mysqli_connect_error()){
die("连接失败");}
$db2->query("set character set 'utf8'");
$sql2 = "select * from Nation";
$r2 = $db2->query($sql2);
$att = array();
while ($row2 = mysqli_fetch_array($r2)) {
$att[] = $row2;
}
foreach ($att as $v)
{
if ($att1[3]==$v[0])
{
echo "<option value={$v[0]} selected='selected' >{$v[1]}</option>";
}
else
{
echo "<option value={$v[0]}>{$v[1]}</option>";
}
}
?>
</select>
</div>
<div>生日:<input type="text" name="birthday" value="<?php echo $att1[4] ?>" /></div>
<div><input type="submit" value="修改数据" /></div>
</form>
更新处理程序Update.php
更新处理程序Update.php代码如下:
<?php
$code = $_POST["code"];
$name = $_POST["name"];
$sex = $_POST["sex"];
$s = 1;
if($sex =="女")
{
$s=0;
}
$nation = $_POST["nation"];
$birthday = $_POST["birthday"]
$db = new mysqli("localhost","root","123456","mydb");
if(mysqli_connect_error()){
die("连接失败");
}
$db->query("set character set 'utf8'");
echo "$code $name $sex $s $nation $birthday";
$sql = "update Info set Name='$name',Set='$s',Birhday='$birthday' where Code='$code'";
$r = $db->query($sql);
echo "update ok";
if($r)
{
header("location:main.php");
}
else
{
echo "修改失败!";
}
?>
总结
在做完MYSQL数据库记录管理实验后,我对数据库管理和操作有了更深入的理解和认识。
首先,在实验中我了解了数据库的设计和结构,以及各种表格之间的关系。在设计数据库表格时,需要考虑到不同表格之间的关系,以及表格之间的数据如何进行关联。同时,在实验中也学会了如何进行数据库的备份和恢复,以及如何进行数据库的优化和维护。
其次,在实验过程中我也学会了如何进行数据库的增删改查等操作。通过对不同表格的操作,我了解了如何添加、删除、修改和查询数据,以及如何对数据进行排序和筛选。同时,在实验中我也了解了如何使用SQL语句进行高级查询和数据分析,以及如何进行多表联合查询和数据统计。
在实验过程中,我也遇到了一些问题,例如在进行数据库备份时,备份的数据文件大小超过了设定的限制,需要对备份数据进行分割。在解决问题时,我通过查询资料和咨询老师的帮助,最终成功解决了问题。
总的来说,通过这次实验,我对数据库管理和操作有了更深入的理解和认识,也掌握了一些实用的技能和工具。在以后的学习和工作中,我将继续深入探究数据库的应用和优化,为数据处理和分析提供更好的支持和帮助。