005——MySQL

基础

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编程

...
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容