zoukankan      html  css  js  c++  java
  • 2016-08-10 多表联接、ER模型等

    $query = mysql_query($sql);
    mysql_fetch_array($query, mysql_both【既有数字下标,也有字段名下标】)
                                               mysql_assoc【只有字段名下标】 


    多表联接:
    1. 内联接
                      左外联接
    2.外联接: 右外联接
                      全联接
    例:学生表 student(表名)      no  name  age  sex
           成绩表 chengji(表名)     sno  kno  score
           SELECT  s.*, c.*  FROM  student  AS  s, chengji  AS  c  WHERE  s.no = c.sno  AND  s.name = '张三'; 

    主键:能唯一区分某个记录的键
    外键:在本表中不是主键,在另外一个表中是主键的键 

    ER模型图

    表与表之间的几种关系:
    一对一
    一对多
    多对多 


    mysql_affected_rows()    取得 insert  update  delete 之后,影响的行数
                                               不能得到select 查询的记录数
    mysql_insert_id()    取得 inert 刚刚插入的记录的id值
    mysql_num_rows()    返回结果集中行的数目。此命令仅对 SELECT 语句有效。要取得被 INSERT,UPDATE 或者 DELETE 查询所影                                        响到的行的数目,用 mysql_affected_rows()
    例:
    <?php
    $db = mysql_connect("localhost", "user", "password");
    mysql_select_db("database", $db);
    $result = mysql_query("SELECT * FROM table1", $db);
    $num_rows = mysql_num_rows($result);
    echo "$num_rows Rows ";
    ?> 
    注意: 如果使用 mysql_unbuffered_query(),则直到结果集中的所有行都被提取后 mysql_num_rows() 才能返回正确的值

    数据库操作步骤:
    // 连接数据库
    $db = mysql_connect("localhost", "root", "密码", "端口",...) or die("连接失败");
    // 选择数据库
    mysql_select_db("数据库名");
    // 设置数据库编码
    mysql_query("set names utf8");


    // 插入
    $sql = "insert into user(name,sex,age) values('张三','女',22)";
    $query=mysql_query($sql);
    $id = mysql_insert_id($db);
    $num = mysql_affected_rows($db);
    if($query){
      echo "<script>alert('插入成功');location.href='index.php';</script>";
    }else{
      echo "<script>alert('插入失败');location.href='add.php';</script>";
    }
     
    // 查询一条数据
    $sql="select * from user where id=5";
    $query=mysql_query($sql);
    $row = mysql_fetch_array($query);
    print_r($row);
     
    // 查询多条数据
    $sql="select * from user order by id asc limit 0,3";
    $query=mysql_query($sql);
    $num = mysql_num_rows();
    while($row = mysql_fetch_array($query){
      $rs[] = $row;
    }
    print_r($rs);
     
    // 修改
    $sql="update user set sex='男' where id=5";
    $query=mysql_query($sql);
    $num = mysql_affected_rows($db);
    if($query){
      echo "<script>alert('修改成功');location.href='index.php';</script>";
    }else{
      echo "<script>alert('修改失败');location.href='update.php'";
    }
     
    // 删除
    $sql="delete from user where id=5";
    $query=mysql_query($sql);
    $num = mysql_affected_rows($db);
    if($query){
      echo "<script>alert('删除成功');location.href='index.php';</script>";
    }else{
      echo "<script>alert('删除失败');location.href='list.php'";
    }
  • 相关阅读:
    MySQL复制中slave延迟监控
    便于理解mysql内幕的各种逻辑图组
    MYSQL INNODB PAGE一督
    MySQL的show语句大全
    semi-consistent简介
    MYSQL常见的可优化点
    [MySQL 5.6] MySQL 5.6 group commit 性能测试及内部实现流程
    [MySQL5.6] 最近对group commit的小优化
    基于HTML5技术的电力3D监控应用(二)
    基于HTML5技术的电力3D监控应用(一)
  • 原文地址:https://www.cnblogs.com/shuguoqing/p/5796986.html
Copyright © 2011-2022 走看看