zoukankan      html  css  js  c++  java
  • MySQL笔记汇总

    一、MySQL简介
    MySQL是最流行的开源数据库服务器。MySQL是一种数据库。数据库定义了存储信息的结构。
    数据库通常包含一个或多个表。每个表都一个名称(比如 "Customers" 或 "Orders")。每个表包含带有数据的记录(行)。
    下面是一个名为 "Persons" 的表的例子:

    上面的表含有三个记录(每个记录是一个人)和四个列(LastName, FirstName, Address 以及 City)。


    查询是一种询问或请求。
    通过 MySQL,我们可以向数据库查询具体的信息,并得到返回的记录集。
    请看下面的查询:

    SELECT LastName FROM Persons

    上面的查询选取了 Persons 表中 LastName 列的所有数据,并返回类似这样的记录集:


    关于MySQL 的一点很棒的特性是,可以对它进行缩减,来支持嵌入的数据库应用程序。也许正因如此,许多人认为MySQL仅仅能处理中小型的系统。事实上,对于那些支持巨大数据和访问量的网站,MySQL 是事实上的标准数据库(比如 Friendster, Yahoo, Google)。

    二、MySQL连接数据库

    免费的MySQL数据库通常是通过PHP来使用的。
    连接到一个MySQL数据库:mysql_connect() 函数完成
    语法:mysql_connect(servername,username,password);

    注释:虽然还存在其他的参数,但上面列出了最重要的参数。请访问 W3School 提供的 PHP MySQL 参考手册,获得更多的细节信息。

    在下面的例子中,我们在一个变量中 ($con) 存放了在脚本中供稍后使用的连接。如果连接失败,将执行 "die" 部分:

    <?php
    $con = mysql_connect("localhost","peter","abc123");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
    
    // some code
    
    ?>

    关闭连接
    脚本一结束,就会关闭连接。如需提前关闭连接,请使用mysql_close()函数。

    <?php
    $con = mysql_connect("localhost","peter","abc123");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
    
    // some code
    
    mysql_close($con);
    ?>

    三、MySQL创建数据库和表
    数据库存有一个或多个表。


    创建数据库
    CREATE DATABASE语句用于在 MySQL中创建数据库。
    语法

    CREATE DATABASE database_name

    为了让PHP执行上面的语句,我们必须使用mysql_query()函数。此函数用于向 MySQL 连接发送查询或命令。
    在下面的例子中,我们创建了一个名为 "my_db" 的数据库:

    <?php
    $con = mysql_connect("localhost","peter","abc123");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
    
    if (mysql_query("CREATE DATABASE my_db",$con))
      {
      echo "Database created";
      }
    else
      {
      echo "Error creating database: " . mysql_error();
      }
    
    mysql_close($con);
    ?>


    创建表
    CREATE TABLE 用于在 MySQL 中创建数据库表。
    语法:

    CREATE TABLE table_name
    (
    column_name1 data_type,
    column_name2 data_type,
    column_name3 data_type,
    .......
    )

    为了执行此命令,我必须向 mysql_query() 函数添加 CREATE TABLE 语句。
    下面的例子展示了如何创建一个名为 "Persons" 的表,此表有三列。列名是 "FirstName", "LastName" 以及 "Age":

    <?php
    $con = mysql_connect("localhost","peter","abc123");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
    
    // Create database
    if (mysql_query("CREATE DATABASE my_db",$con))
      {
      echo "Database created";
      }
    else
      {
      echo "Error creating database: " . mysql_error();
      }
    
    // Create table in my_db database
    mysql_select_db("my_db", $con);
    $sql = "CREATE TABLE Persons
    (
    FirstName varchar(15),
    LastName varchar(15),
    Age int
    )";
    mysql_query($sql,$con);
    
    mysql_close($con);
    ?>


    重要事项:在创建表之前,必须首先选择数据库。通过mysql_select_db()函数选取数据库。
    注释:当您创建 varchar 类型的数据库字段时,必须规定该字段的最大长度,例如:varchar(15)。

    MySQL数据类型
    下面的可使用的各种 MySQL 数据类型:



    主键和自动递增字段
    每个表都应有一个主键字段。主键用于对表中的行进行唯一标识。每个主键值在表中必须是唯一的。此外,主键字段不能为空,这是由于数据库引擎需要一个值来对记录进行定位。
    主键字段永远要被编入索引。这条规则没有例外。你必须对主键字段进行索引,这样数据库引擎才能快速定位给予该键值的行。

    下面的例子把 personID 字段设置为主键字段。主键字段通常是ID号,且通常使用AUTO_INCREMENT设置。AUTO_INCREMENT 会在新记录被添加时逐一增加该字段的值。要确保主键字段不为空,我们必须向该字段添加 NOT NULL 设置。
    例子

    $sql = "CREATE TABLE Persons
    (
    personID int NOT NULL AUTO_INCREMENT,
    PRIMARY KEY(personID),
    FirstName varchar(15),
    LastName varchar(15),
    Age int
    )";
    
    mysql_query($sql,$con);

    四、Insert Into
    INSERT INTO语句用于向数据库表中插入新记录。

    向数据库表插入数据
    INSERT INTO 语句用于向数据库表添加新记录。
    语法

    INSERT INTO table_name
    VALUES (value1, value2,....)

    您还可以规定希望在其中插入数据的列:

    INSERT INTO table_name (column1, column2,...)
    VALUES (value1, value2,....)

    注释:SQL语句对大小写不敏感。INSERT INTO与insert into相同。

    为了让PHP执行该语句,我们必须使用mysql_query()函数。该函数用于向MySQL 连接发送查询或命令。

    在前面的章节,我们创建了一个名为 "Persons" 的表,有三个列:"Firstname", "Lastname" 以及 "Age"。我们将在本例中使用同样的表。下面的例子向 "Persons" 表添加了两个新记录:

    <?php
    $con = mysql_connect("localhost","peter","abc123");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
    
    mysql_select_db("my_db", $con);
    
    mysql_query("INSERT INTO Persons (FirstName, LastName, Age)
    VALUES ('Peter', 'Griffin', '35')");
    
    mysql_query("INSERT INTO Persons (FirstName, LastName, Age)
    VALUES ('Glenn', 'Quagmire', '33')");
    
    mysql_close($con);
    ?>

    把来自表单的数据插入数据库
    现在,我们创建一个 HTML 表单,这个表单可把新记录插入 "Persons" 表。
    这是这个 HTML 表单:

    <html>
    <body>
    
    <form action="insert.php" method="post">
    Firstname: <input type="text" name="firstname" />
    Lastname: <input type="text" name="lastname" />
    Age: <input type="text" name="age" />
    <input type="submit" />
    </form>
    
    </body>
    </html>

    当用户点击上例中 HTML 表单中的提交按钮时,表单数据被发送到 "insert.php"。"insert.php"文件连接数据库,并通过$_POST 变量从表单取回值。然后,mysql_query() 函数执行INSERT INTO 语句,一条新的记录会添加到数据库表中。

    下面是 "insert.php" 页面的代码:

    <?php
    $con = mysql_connect("localhost","peter","abc123");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
    
    mysql_select_db("my_db", $con);
    
    $sql="INSERT INTO Persons (FirstName, LastName, Age)
    VALUES
    ('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
    
    if (!mysql_query($sql,$con))
      {
      die('Error: ' . mysql_error());
      }
    echo "1 record added";
    
    mysql_close($con)
    ?>

    五、MySQL Select
    SELECT语句用于从数据库中选取数据。

    SELECT语句用于从数据库中选取数据。
    语法:

    SELECT column_name(s) FROM table_name

    为了让PHP执行上面的语句,我们必须使用mysql_query()函数。该函数用于向MySQL 发送查询或命令。

    下面的例子选取存储在 "Persons" 表中的所有数据(* 字符选取表中所有数据):

    <?php
    $con = mysql_connect("localhost","peter","abc123");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
    
    mysql_select_db("my_db", $con);
    
    $result = mysql_query("SELECT * FROM Persons");
    
    while($row = mysql_fetch_array($result))
      {
      echo $row['FirstName'] . " " . $row['LastName'];
      echo "<br />";
      }
    
    mysql_close($con);
    ?>

    上面这个例子在 $result 变量中存放由 mysql_query() 函数返回的数据。接下来,我们使用 mysql_fetch_array() 函数以数组的形式从记录集返回第一行。每个随后对 mysql_fetch_array() 函数的调用都会返回记录集中的下一行。 while loop 语句会循环记录集中的所有记录。为了输出每行的值,我们使用了 PHP 的 $row 变量 ($row['FirstName'] 和 $row['LastName'])。

    以上代码的输出:

    Peter Griffin
    Glenn Quagmire


    在HTML表格中显示结果
    下面的例子选取的数据与上面的例子相同,但是将把数据显示在一个 HTML 表格中:

    <?php
    $con = mysql_connect("localhost","peter","abc123");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
    
    mysql_select_db("my_db", $con);
    
    $result = mysql_query("SELECT * FROM Persons");
    
    echo "<table border='1'>
    <tr>
    <th>Firstname</th>
    <th>Lastname</th>
    </tr>";
    
    while($row = mysql_fetch_array($result))
      {
      echo "<tr>";
      echo "<td>" . $row['FirstName'] . "</td>";
      echo "<td>" . $row['LastName'] . "</td>";
      echo "</tr>";
      }
    echo "</table>";
    
    mysql_close($con);
    ?>

    以上代码的输出:

    六、MySQL Where子句
    如需选取匹配指定条件的数据,请向SELECT语句添加WHERE子句。

    语法:

    SELECT column FROM table
    WHERE column operator value


    下面的运算符可与WHERE子句一起使用:



    为了让 PHP 执行上面的语句,我们必须使用mysql_query()函数。该函数用于向 SQL 连接发送查询和命令。

    下面的例子将从 "Persons" 表中选取所有 FirstName='Peter' 的行:

    <?php
    $con = mysql_connect("localhost","peter","abc123");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
    
    mysql_select_db("my_db", $con);
    
    $result = mysql_query("SELECT * FROM Persons
    WHERE FirstName='Peter'");
    
    while($row = mysql_fetch_array($result))
      {
      echo $row['FirstName'] . " " . $row['LastName'];
      echo "<br />";
      }
    
    ?>

    以上代码的输出:

    Peter Griffin

    七、Order By关键词
    ORDER BY 关键词用于对记录集中的数据进行排序。
    语法

    SELECT column_name(s)
    FROM table_name
    ORDER BY column_name


    下面的例子选取 "Persons" 表中的存储的所有数据,并根据 "Age" 列对结果进行排序:

    <?php
    $con = mysql_connect("localhost","peter","abc123");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
    
    mysql_select_db("my_db", $con);
    
    $result = mysql_query("SELECT * FROM Persons ORDER BY age");
    
    while($row = mysql_fetch_array($result))
      {
      echo $row['FirstName'];
      echo " " . $row['LastName'];
      echo " " . $row['Age'];
      echo "<br />";
      }
    
    mysql_close($con);
    ?>

    以上代码的输出:

    Glenn Quagmire 33
    Peter Griffin 35


    升序或降序的排序
    如果您使用ORDER BY关键词,记录集的排序顺序默认是升序(1 在 9 之前,"a" 在 "p" 之前)。
    请使用DESC关键词来设定降序排序(9 在 1 之前,"p" 在 "a" 之前):

    SELECT column_name(s)
    FROM table_name
    ORDER BY column_name DESC


    根据两列进行排序
    可以根据多个列进行排序。当按照多个列进行排序时,只有第一列相同时才使用第二列:

    SELECT column_name(s)
    FROM table_name
    ORDER BY column_name1, column_name2

    八、MySQL Update
    UPDATE 语句用于中修改数据库表中的数据。
    语法:

    UPDATE table_name
    SET column_name = new_value
    WHERE column_name = some_value

    为了让 PHP 执行上面的语句,我们必须使用 mysql_query( 函数。该函数用于向 SQL 连接发送查询和命令。

    稍早时,我们在本教程中创建了一个名为 "Persons" 的表。它看起来类似这样:


    下面的例子更新 "Persons" 表的一些数据:

    <?php
    $con = mysql_connect("localhost","peter","abc123");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
    
    mysql_select_db("my_db", $con);
    
    mysql_query("UPDATE Persons SET Age = '36'
    WHERE FirstName = 'Peter' AND LastName = 'Griffin'");
    
    mysql_close($con);
    ?>

    在这次更新后,"Persons" 表格是这样的:

    九、MySQL Delete From
    DELETE FROM 语句用于从数据库表中删除行。

    语法:

    DELETE FROM table_name
    WHERE column_name = some_value

    为了让 PHP 执行上面的语句,我们必须使用 mysql_query( 函数。该函数用于向 SQL 连接发送查询和命令。

    稍早时,我们在本教程中创建了一个名为 "Persons" 的表。它看起来类似这样:


    下面的例子删除 "Persons" 表中所有 LastName='Griffin' 的记录:

    <?php
    $con = mysql_connect("localhost","peter","abc123");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
    
    mysql_select_db("my_db", $con);
    
    mysql_query("DELETE FROM Persons WHERE LastName='Griffin'");
    
    mysql_close($con);
    ?>

    在这次删除之后,表是这样的:

    十、Database ODBC
    ODBC 是一种应用程序编程接口(Application Programming Interface,API),使我们有能力连接到某个数据源(比如一个MS Access数据库)。
    通过一个 ODBC 连接,您可以连接到您的网络中的任何计算机上的任何数据库,只要 ODBC 连接是可用的。

    创建到达MS Access数据的ODBC 连接的方法:
    1.在控制面板中打开管理工具
    2.双击其中的数据源 (ODBC) 图标
    3.选择系统 DSN 选项卡
    4.点击系统 DSN 选项卡中的“添加”按钮
    5.选择 Microsoft Access Driver。点击完成
    6.在下一个界面,点击“选择”来定位数据库。
    7.为这个数据库取一个数据源名 (DSN)
    8.点击确定

    请注意,必须在您的网站所在的计算机上完成这个配置。如果您的计算机上正在运行 Internet 信息服务器 (IIS),上面的指令会生效,但是假如您的网站位于远程服务器,您必须拥有对该服务器的物理访问权限,或者请您的主机提供商为您建立 DSN。

    连接到ODBC
    odbc_connect() 函数用于连接到 ODBC 数据源。该函数有四个参数:数据源名、用户名、密码以及可选的指针类型参数。
    odbc_exec() 函数用于执行 SQL 语句。

    下面的例子创建了到达名为 northwind 的 DSN 的连接,没有用户名和密码。然后创建并执行一条 SQL 语句:

    $conn=odbc_connect('northwind','','');
    $sql="SELECT * FROM customers";
    $rs=odbc_exec($conn,$sql);

    取回记录
    odbc_fetch_row() 函数用于从结果集中返回记录。如果能够返回行,则返回 true,否则返回 false。

    该函数有两个参数:ODBC 结果标识符和可选的行号:
    odbc_fetch_row($rs)

    从记录中取回字段
    odbc_result() 函数用于从记录中读取字段。该函数有两个参数:ODBC 结果标识符和字段编号或名称。

    下面的代码行从记录中返回第一个字段的值:

    $compname=odbc_result($rs,1);
    The code line below returns the value of a field called "CompanyName":
    $compname=odbc_result($rs,"CompanyName");


    关闭ODBC连接
    odbc_close()函数用于关闭 ODBC 连接。
    odbc_close($conn);

    ODBC实例
    下面的例子展示了如何首先创建一个数据库连接,然后是结果集,然后在 HTML 表格中显示数据。

    <html>
    <body>
    
    <?php
    $conn=odbc_connect('northwind','','');
    if (!$conn)
      {exit("Connection Failed: " . $conn);}
    $sql="SELECT * FROM customers";
    $rs=odbc_exec($conn,$sql);
    if (!$rs)
      {exit("Error in SQL");}
    echo "<table><tr>";
    echo "<th>Companyname</th>";
    echo "<th>Contactname</th></tr>";
    while (odbc_fetch_row($rs))
    {
      $compname=odbc_result($rs,"CompanyName");
      $conname=odbc_result($rs,"ContactName");
      echo "<tr><td>$compname</td>";
      echo "<td>$conname</td></tr>";
    }
    odbc_close($conn);
    echo "</table>";
    ?>
    
    </body>
    </html>
  • 相关阅读:
    计算机速成课 第十一集 编程语言发展史
    计算机速成课 第十集 早期的编程方式
    Sharepoint2013操作文档库内容的相关操作
    IE6 css fixed
    Sharepoint2013站点503错误的解决方法(图解)
    发布Sharepoint2013相关的WebService服务
    Spring 读书笔记Spring容器(二)
    (转)UML类图与类的关系详解
    (转)C# 操作 Excel 颜色索引对照
    (转)Silverlight显示本地图片、Stream转Byte数组
  • 原文地址:https://www.cnblogs.com/zxx193/p/3555386.html
Copyright © 2011-2022 走看看