基础
D:\SOFT\amp\mysql\data// 数据库文件夹目录
mysql -hlocalhost -uroot -p
// mysql -hlocalhost -uroot -P3306 -p345149
set names gbk;
// 通常cmd客户端是固定的gbk编码,网页文件utf-8
create database tempdb1 charset utf8;
use tempdb1;
create table temptab1(id int, name varchar(20));
mysqldump -hlocalhost -uroot -p tempdb1 > D:/SOFT/amp/mysql/data/aaa.sql// 备份数据库
show databases;
use tempdb1
desc temptab1;
select * from temptab1;
set names gbk;
exit/quit
配置phpmyadmin
hosts文件中解析域名 www.phpmyadmin.com
// httpd-vhost.conf文件中设置站点
<VirtualHost *:80>
ServerName www.phpmyadmin.com
DocumentRoot "D:\SOFT\amp\phpMyAdmin"
<Directory "D:\SOFT\amp\phpMyAdmin">
Options Indexes
Order allow,deny
allow from all
</Directory>
DirectoryIndex index.php
</VirtualHost>
// 打开后报错如下
Fatal error: Call to undefined function mb_detect_encoding() in D:\SOFT\amp\phpMyAdmin\libraries\php-gettext\gettext.inc on line 177
// 打开扩展
extension=php_mbstring.dll
MySQL重启
管理员身份打开cmd
net start mysql
net stop mysql
PHP中操作MySQL的基本代码和流程
// 连接数据库
$mylink = mysql_connect('localhost', 'root', '345149');
// 设定连接编码
mysql_set_charset("utf8");// mysql_query("set names utf8");
// 选择数据库
mysql_select_db('数据库名');// mysql_query("use 数据库名");
// 执行SQL语句,返回到结果通常分两种情形进行处理
$result = mysql_query("sql语句");
// 无返回数据的语句
$result为true表示执行成功,$result为false表示执行失败
// 有返回数据的语句
$result为false表示执行失败,若成功继续从结果中取出数据并显示
测试
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
//1,连接数据库:
$mylink = mysql_connect("localhost", 'root', '345149');
//2,设定连接编码(通常是utf8)
mysql_set_charset("utf8"); //也可以使用:mysql_query("set names utf8");
//3,选择数据库(如有需要)
mysql_select_db("tempdb1"); //也可以使用:mysql_query("use 数据库名");
//4,执行sql命令。
//$result = mysql_query( "几乎任何sql语句 ");
$randName = rand(1000, 9999); //获得一个随机数
$sql = "insert into temptab1(id, name)values($randName, 'user_$randName');" ; //基本上写好这条sql语句就可以
$str = "asf'afas'fafs"; //上一行单引号在php中只是一个普通字符
$result = mysql_query( $sql ); //执行该sql语句
//返回的结果通常需要分两种情形进行处理:
//4.1:如果是无返回数据的语句:
//4.1.1 如果$result为true,表示执行成功
if($result == true){
echo "插入数据成功";
}
//4.1.2 如果$result为false,表示执行失败
else{
echo "失败,请参考失败提示信息:" . mysql_error();
}
?>
</body>
</html>
循环MySQL
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
// 连接数据库
$mylink = mysql_connect("localhost", 'root', '345149');
mysql_set_charset("utf8");
mysql_select_db("tempdb1");
$randName = rand(1000, 9999);// 获得一个随机数
// 插入
$sql = "insert into temptab1(id, name)values($randName, 'user_$randName');";// 引号是普通字符
$result = mysql_query( $sql );
if($result == true){
echo "插入数据成功";
}
else{
echo "失败,请参考失败提示信息:" . mysql_error();
}
// 读取到界面
$sql = "select * from temptab1 where id > 1";
$result = mysql_query($sql);
if($result === false) {
echo "失败,请参考失败提示信息:" . mysql_error();
}
else{
echo "<table border='1'>";
while( $record = mysql_fetch_array($result) ) {// 每次取结果集中的一行数据并装入数组$record中
echo "<tr>";
echo "<td>".$record['id']."</td>";
echo "<td>".$record['name']."</td>";
echo "</tr>";
}
echo "</table>";
}
// 特殊的SQL语句
$sql = "show databases;";// 执行非select语句但返回数据的显示结果
$result = mysql_query( $sql );
if($result === false) {
echo "失败,请参考失败提示信息:" . mysql_error();
}
else{
echo "<table border='1'>";
echo "<tr>";
echo "<td>数据库列表(Database)</td>";
echo "</tr>";
while( $record = mysql_fetch_array($result) ) {// 每次取结果集中的一行数据并装入数组$record中
echo "<tr>";
echo "<td>".$record['Database']."</td>";
echo "</tr>";
}
echo "</table>";
}
// 灵活写法...通用
$sql = "desc temptab1;";
$result = mysql_query( $sql );
if($result === false) {
echo "失败,请参考失败提示信息:" . mysql_error();
}
else{
$fieldCount = mysql_num_fields($result);// 字段个数
echo "<table border='1'>";
echo "<tr>";
for($i = 0; $i < $fieldCount; $i ++) {
$fieldName = mysql_field_name($result,$i);// 从结果集中取第i个字段的名字
echo "<td>".$fieldName."</td>";
}
echo "</tr>";
while( $record = mysql_fetch_array($result) ) {
// echo "<tr>";
// echo "<td>".$record['Field']."</td>";
// echo "<td>".$record['Type']."</td>";
// echo "</tr>";
// 如果字段名和字段个数不确定怎么办
echo "<tr>";
for($i = 0; $i < $fieldCount; $i ++) {
$fieldName = mysql_field_name($result,$i);// 从结果集中取第i个字段的名字
echo "<td>".$record[$fieldName]."</td>";
}
echo "</td>";
}
echo "</table>";
}
?>
</body>
</html>
数据库语法
// 创建
create database [if not exists] 数据库名 [charset 字符集] [collate 字符排序规则];
// 修改
alert database 数据库名 character set=新字符集 collate=新校对集;
// 删除数据库
drop database 数据库名;
// 其他
use 数据库名;// 选择、进入数据库
show databases;// 显示所有数据库
show create database 数据库名;// 显示某个数据库的“创建语句”
create database php34 charset utf8;
use php34;
show create database php34;
字段类型
数值型
字符串型
日期事件型
视图
临时存储的数据所构成的表,其本质是select语句,只是将该语句进行了包装并设定了一个名字,其后通过该名字并把其当做一个表来使用。
如果一个select语句比较复杂,又在多个页面需要使用,则可以将它做成一个视图,方便使用。
create view 视图名 as select语句
数据库设计规范
存储的数据应该具有不可再分性
事务
一条语句使用一个分号(;)来结束并得到执行,这个执行一次的过程,可以称为一个事务,简单来说,一条SQL语句就是一个事务。数据库中的事务是指可以将多条语句当做一条语句来看待的一种内部机制。即:“事务”是一种可以保证多条语句一次性执行完成或一条都不执行的机制。
// 声明事务
// 设定多条要执行的具体语句,比句insert,update,delete
// 判断是否需要执行这些语句,没错则执行,有错则不执行
MySQL编程
...