基础 - 数据库

phpMyAdmin
操作本地数据库

登录
新建  输入数据库名称 排序规则 utf8-bin 创建
导入  选择SQL文件 打开 执行

  

 

Navicat

MySQL的图形化管理工具

 

Navicat中文版的安装

http://pan.baidu.com/s/1Eta1K

附带破解机

 注意,要使用Navicat必须先给MySQL设置密码

小编采用的是WAMP环境,建议读者朋友使用

 

设置MySQL的密码

WAMP上打开phpMyAdmin

用户 root  密码  不写  回车

用户账户  

修改权限

修改密码  123456

打开  C:\wamp64\apps\phpmyadmin4.5.5.1\config.inc.php

修改  $cfg['Servers'][$i]['password'] = '123456';

重启服务

 

如需要,重置MySQL密码:
在文件【my.ini】的【mysqlId】字段最下面加入【skip-grant-tables】,重启mysql服务

再进入mysql控制台按照上面第二种改密码的方式重新修改密码。

改完密码后将【my.ini】中添加的【skip-grant-tables】删掉。

重新启动服务

 

数据库Database

按照数据结构来组织、存储、管理数据的仓库

 

MySQL

关系型数据库管理系统RDBMS(Relational Database Management System )之一

参考教程  http://www.runoob.com/mysql/mysql-tutorial.html

 

关系型数据库特点

数据以表格的形式出现

每行为各种记录名称

每列为记录名称所对应的数据域

许多的行和列组成一张表单

若干的表单组成database

 

Mysql的特点

开源的,不需要支付额外的费用

支持大型的数据库。支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB

使用标准的SQL数据语言形式

允许运行于多种系统上,并且支持多种语言,对PHP有很好的支持

可以定制Mysql,采用了GPL协议

 

WAMP登录mySQL终端

输入密码  进入mysql

exit      退出mysql

SHOW DATABASES;        显示所有的数据库

USE  数据库名;            针对某数据库   

SHOW TABLES;           显示所有的表

SHOW COLUMNS FROM 数据表名;  显示属性、属性类型、是否NULL、是否主键、默认值

SHOW INDEX FROM 数据表名;     显示数据表的详细索引信息

SHOW TABLE STATUS FROM 数据表名 LIKE '开头文字%'\G;

按列打印表名开头是某的所有表的信息

 

字段的数据类型 

三大类:数值类 时间类  字符串类

严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC)

近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)

 

数值类数据 

日期类数据

字符串类数据

 

PHP来操作Mysql

做为一名伟大的前端开发人员,我们通常使用php来操作数据库

<html>
<head>
<meta charset="utf-8">
<title>Mysql数据库</title>
</head>
<body>
<?php
    /*mysql服务器主机地址*/
    $host = 'localhost:3306';
    /*mysql用户名*/
    $user = 'root';
    /*mysql用户名密码*/
    $password = '123456';

    /*连接数据库并返回结果*/
    $connectResult = @mysql_connect($host, $user, $password, "特殊标记", MYSQL_CLIENT_COMPRESS);
    if(! $connectResult ) {
        die('数据库连接失败:' . mysql_error());
    }
    echo '数据库连接成功~';

    /*删除数据库*/
    $deleatDBSQL = 'DROP DATABASE WeWeZhang';
    mysql_query( $deleatDBSQL, $connectResult );

    /*创建数据库并返回结果*/
    $newDBSQL = 'CREATE DATABASE WeWeZhang';
    $newDBResult = mysql_query( $newDBSQL, $connectResult );
    if(! $newDBResult ) {
        die('创建数据库失败: ' . mysql_error());
    }
    echo '数据库创建成功~';

    /*选择要操作的数据库*/
    $selectDBResult = mysql_select_db( 'WeWeZhang',$connectResult);
    if(! $selectDBResult) {
        die('选择数据库失败: ' . mysql_error());
    }
    echo '数据库选择成功~';

    /*建表*/
    $newTBClassSQL =
        "CREATE TABLE IF NOT EXISTS t_class( ".
        "class_id INT NOT NULL AUTO_INCREMENT, ".
        "class_title VARCHAR(100) NOT NULL, ".
        "class_author VARCHAR(40) NOT NULL, ".
        "class_date DATE, ".
        "PRIMARY KEY ( class_id ) ".
        ")";
    $newTBClassResult = mysql_query( $newTBClassSQL, $connectResult );
    if(! $newTBClassResult )
    {
     die('数据表创建失败: ' . mysql_error());
    }
    echo "数据表创建成功~";

    /*插入数据*/
    $insertSQL =
    "INSERT INTO t_class ".
    "(class_title,class_author,class_date) ".
    "VALUES".
    "('小六','喝酒',NOW())";
    $insertResult = mysql_query( $insertSQL, $connectResult );
    if(! $insertResult ) {
        die('数据插入失败 ' . mysql_error());
    }
    echo "数据插入成功~";

//    /*删表*/
//    $deleatTBClassSQL = "DROP TABLE IF EXISTS t_class ";
//    $deleatTBClassResult = mysql_query( $deleatTBClassSQL, $connectResult );
//    if(! $deleatTBClassResult ) {
//        die('数据表删除失败: ' . mysql_error());
//    }
//    echo "数据表删除成功~";
//
//      /*删除数据库并返回结果*/
//    $deleatDBResult = mysql_query( $deleatDBSQL, $connectResult );
//    if(! $deleatDBResult ) {
//        die('删除数据库失败: ' . mysql_error());
//    }
//    echo '数据库删除成功~';

   /*关闭数据库并返回结果*/
   if(!mysql_close($connectResult)){
      die('数据库关闭失败: ' . mysql_error());
   }
   echo '数据库关闭成功~';
?>
</body>
</html>

  查

MYSQL_NUM 作为PHP mysql_fetch_array()函数的第二个参数,返回数字数组

    $selectSQL = 
    "SELECT runoob_id, runoob_title, runoob_author, submission_date ".
    "FROM runoob_tbl";
    $selectResult = mysql_query( $selectSQL, $connectResult );
    if(! $selectResult )
    {
      die('数据查询失败 ' . mysql_error());
    }
    while($row = mysql_fetch_array($selectResult, MYSQL_ASSOC))
    {
        echo "Tutorial ID :{$row['runoob_id']}  <br> ".
             "Title: {$row['runoob_title']} <br> ".
             "Author: {$row['runoob_author']} <br> ".
             "Submission Date : {$row['submission_date']} <br> ".
             "--------------------------------<br>";
    }
    echo "数据查询成功";

  

 

内存释放

在我们执行完SELECT语句后,释放游标内存是一个很好的习惯。 。可以通过PHP函数mysql_free_result()来实现内存的释放。

    sql     
    Structured Query Language     
    结构化查询语言

    表内字段的数据类型:
    blob              二进制型
    integer           整型
    real              符点型
    text              字符串
    varchar(10)       10字符

    建表语句:          create table if not exist 表名 (字段1 字段1类型,字段2 字段2类型,...);
    删表语句:          drop table if not exist  表名;

    约束直接放在字段类型后面,起修饰作用
    简单约束           
    NOT NULL             字段值不可为空
    UNIQUE               字段值唯一,不可重复
    DEFAULT 某值         字段值默认为某值
    主键约束           
    PRIMARY KEY                  主键约束
    AUTOINCREMENT                自动增长约束
    PRIMARY KEY AUTOINCREMENT    主键自动增长约束
    外键约束            
    CONSTRAINT 外键名 FOREIGN KEY (外键字段) REFERENCES 外表名(外键字段)

    插入数据语句:    INSERT INTO 表名 (字段1 ,字段2 ,...) VALUES (值1 ,值2 ,...);
    修改数据语句:   UPDATE 表名 SET 字段1 = 字段1的值, 字段2 = 字段2的值 ,...;
    删除数据语句:    DELETE From 表名;

    SELECT 字段1,字段2,... FROM 表名;
    SELECT * FROM 表名;

    内连接:
    SELECT * FROM 表名 表别名,外键表名 外键表别名 WHERE 表别名.需加外键字段 = 外键表别名.id AND  ...;
    SELECT * FROM 表名 INNER JOIN 外键表名 ON 表别名.需加外键字段 = 外键表别名.id AND ...;
    左外连接:
    SELECT * FROM 表名 表别名 LEFT OUTER JOIN 外键表名 外键表别名 ON 表别名.需加外键字段 = 外键表别名.id AND...;

    起别名:
    SELECT 字段1 别名1,字段2 别名2,... FROM 表名;
    SELECT 字段1AS别名1,字段2AS别名2,... FROM 表名AS表别名;
    SELECT 表别名.字段1,表别名.字段2,... FROM 表名 表别名;

    查询记录的个数:
    SELECT count(*) FROM 表名 WHERE 某条件;
    SELECT count(某字段) FROM 表名 WHERE 某条件;

    条件语句:
    单行数据
    WHERE 某字段 = 某值;
    WHERE 某字段 IS 某值;
    WHERE 某字段 != 某值;
    WHERE 某字段 IS NOT 某值;
    多行数据
    WHERE 某字段 > 某值;
    WHERE 某字段 >= 某值;
    WHERE 某字段1 = 某值 AND 某字段2 > 某值;
    WHERE 某字段1 = 某值 OR 某字段2 > 某值;

    排序语句:
    升序
    SELECT * FROM t_表名 ORDER BY 字段1 ASC,字段2 ASC,...;
    降序
    SELECT * FROM t_表名 ORDER BY 字段 DESC,字段2 DESC,...;

    限行语法:
        SELECT * FROM t_表名 LIMIT 跳过最前面的几行,再查寻几行;

372526196509223017

372526196603193029


数据库(Database)是按照数据结构来组织、存储和管理数据的仓库

posted @ 2016-09-09 18:58  WeWeZhang  阅读(207)  评论(0编辑  收藏  举报