第十五章 MySQL 数据库

学习要点:

+

1.Web 数据库概述

+

2.MySQL 的操作

+

3.MySQL 常用函数

+

4.SQL 语句详解

+

5.phpMyadmin

+

一.Web数据库概述

+

现在,我们已经熟悉了PHP 的基础知识,这是我们想暂时离开PHP 一章,来重点介绍

+

一下关系型数据库,让大家了解数据库比文件储存的有点。这些优点包括:

+

1.关系型数据库比普通文件的数据访问速度更快。

+

2.关系型数据库更容易查阅并提取满足特定条件的数据。

+

3.关系型数据库更具有专门的内置机制处理并发访问,作为程序员,不需要为此担心。

+

4.关系型数据库可以提供对数据的随即访问。

+

5.关系型数据库具有内置的权限系统。

+

关系数据库的概念

+

至今为止,关系数据库是最常用的数据库类型。在关系代数方面,它们具有很好的理论

+

基础。当使用关系数据库的时候,并不需要了解关系理论(这是一件好事),但是还是需要

+

理解一些关于数据库的基本概念。

+

1)表格

关系数据库由关系组成,这些关系通常称为表格。顾名思义,一个关系就是一个数据的

+

表格。电子数据表就是一种表格。

+

第十五章 MySQL 数据库 - 图1

2)列

表中的每一列都有惟一的名称,包含不同的数据。此外,每一列都有一个相关的数据类

+

型。

3)行

表中的每一行代表一个客户。每一行具有相同的格式,因而也具有相同的属性。行也成

+

为记录。

4)值

每一行由对应每一列的单个值组成。每个值必须与该列定义的数据类型相同。

+

5)键

每一条数据所对应的唯一的标识。

+

6)模式

数据库整套表格的完整设计成为数据库的模式。

+

7)关系

外键标识两个表格数据的关系。

+

如何设计Web 数据库

+

1)考虑要建模的实际对象。

+

2)避免保存冗余数据。

+

3)使用原子列值(对每一行的每个属性只存储一个数据。)

+

4)选择有意义的键。

+

5)考虑需要询问数据库的问题。

+

6)避免多个空属性的设计

+

Web 数据库架构

+

浏览器和Web 服务器之间的通信:

+

第十五章 MySQL 数据库 - 图2

浏览器和PHP&MySQL 服务器之间的通信

+

第十五章 MySQL 数据库 - 图3

1)用户的Web 浏览器发出HTTP 请求,请求特定Web 页面。

+

2)Web 服务器收到.php 的请求获取该文件,并将它传到PHP 引擎,要求它处理。

+

3)PHP 引擎开始解析脚本。脚本中有一条连接数据库的命令,还有执行一个查询的命令。

+

PHP 打开通向MYSQL 数据库的连接,发送适当的查询。

+

4)MYSQL 服务器接收数据库查询并处理。将结果返回到PHP 引擎。

+

5)PHP 以你去哪干完成脚本运行,通常,这包括将查询结果格式化成HTML 格式。然

+

后再输出HTML 返回到Web 服务器。

+

6)Web 服务器将HTML 发送到浏览器。

+

二.MySQL操作

+

登录到MySQL

+

1)打开MySQL Command Line Client

+

2)输入root 的设置密码

+

MySQL 常规命令

+

1)显示当前数据库的版本号和日期。

+

SELECT VERSION(),CURRENT_DATE();

+

2)通过AS 关键字设置字段名。

+

SELECT VERSION() AS version; //可设置中文,通过单引号

+

3)通过SELECT 执行返回计算结果

+

SELECT (20+5)*4;

+

4)通过多行实现数据库的使用者和日期

+

>SELECT

+

>USER()

+

>,

>NOW()

+

>;

5)通过一行显示数据库使用者和日期

+

>SELECT USER();SELECT NOW();

+

6)命令的取消

+

>\c

7)MySQL 窗口的退出

+

>exit;

+

MySQL 常用数据类型

+

整数型:TINYINT,SMALLINT,INT,BIGINT

+

浮点型:FLOAT,DOUBLE,DECIMAL(M,D)

+

字符型:CHAR,VARCHAR

+

日期型:DATETIME,DATE,TIMESTAMP

+

备注型:TINYTEXT,TEXT,LONGTEXT

+

第十五章 MySQL 数据库 - 图4

第十五章 MySQL 数据库 - 图5

第十五章 MySQL 数据库 - 图6

第十五章 MySQL 数据库 - 图7

第十五章 MySQL 数据库 - 图8

MySQL 数据库操作

+

1)显示当前存在的数据库

+

>SHOW DATABASES;

+

2)选择你所需要的数据库

+

>USE guest;

+

3)查看当前所选择的数据库

+

>SELECT DATABASE();

+

4)查看一张表的所有内容

+

>SELECT * FROM guest; //可以先通过SHOW TABLES;来查看有多少张表

+

5)根据数据库设置中文编码

+

>SET NAMES gbk; //set names utf8;

+

6)创建一个数据库

+

>CREATE DATABASE book;

+

7)在数据库里创建一张表

+

>CREATE TABLE users (

+

>username VARCHAR(20), //NOT NULL 设置不允许为空

+

>sex CHAR(1),

+

>birth DATETIME);

+

8)显示表的结构

+

>DESCIRBE users;

+

9)给表插入一条数据

+

>INSERT INTO users (username,sex,birth) VALUES ('Lee','x',NOW());

+

10)筛选指定的数据

+

> SELECT * FROM users WHERE username = 'Lee';

+

11)修改指定的数据

+

>UPDATE users SET sex = '男' WHERE username='Lee';

+

12)删除指定的数据

+

> DELETE FROM users WHERE username='Lee';

+

13)按指定的数据排序

+

> SELECT * FROM users ORDER BY birth DESC; //正序

+

14)删除指定的表

+

>DROP TABLE users;

+

15)删除指定的数据库

+

>DROP DATABASE book;

+

三.MySQL常用函数

+

第十五章 MySQL 数据库 - 图9

第十五章 MySQL 数据库 - 图10

第十五章 MySQL 数据库 - 图11

第十五章 MySQL 数据库 - 图12

第十五章 MySQL 数据库 - 图13

四.SQL语句详解

+

1.创建一个班级数据库school,里面包含一张班级表grade,包含编号(id)、姓名(name)、

+

邮件(email)、评分(point)、注册日期(regdate)。

+

mysql>CREATE DATABASE school; //创建一个数据库

+

mysql> CREATE TABLE grade (

+

//UNSIGNED 表示无符号,TINYINT(2) 无符号整数0-99,NOT NULL 表示不能为

+

空,AUTO_INCREMENT 表示从1 开始没增加一个字段,累计一位

+

-> id TINYINT(2) UNSIGNED NOT NULL AUTO_INCREMENT,

+

-> name VARCHAR(20) NOT NULL,

+

-> email VARCHAR(40),

+

-> point TINYINT(3) UNSIGNED NOT NULL,

+

-> regdate DATETIME NOT NULL,

+

-> PRIMARY KEY (id) //表示id 为主键,让id 值唯一,不得重复。

+

-> );

+

2.给这个班级表grade 新增5-10 条学员记录

+

mysql> INSERT INTO grade (name,email,point,regdate) VALUES

+

('Lee','yc60.com@gmail.com',95,NOW());

+

3.查看班级所有字段的记录,查看班级id,name,email 的记录

+

mysql> SELECT * FROM grade;

+

mysql> SELECT id,name,email FROM grade;

+

第十五章 MySQL 数据库 - 图14

4.姓名等于'Lee'的学员,成绩大于90 分的学员,邮件不为空的成员,70-90 之间的成员

+

mysql> SELECT * FROM grade WHERE name='Lee';

+

mysql> SELECT * FROM grade WHERE point>90;

+

mysql> SELECT * FROM grade WHERE email IS NOT NULL;

+

mysql> SELECT * FROM grade WHERE point BETWEEN 70 AND 90;

+

mysql> SELECT * FROM grade WHERE point IN (95,82,78);

+

5.查找邮件使用163 的学员,不包含yc60.com 字符串的学员

+

mysql> SELECT * FROM grade WHERE email LIKE '%163.com';

+

mysql> SELECT * FROM grade WHERE email NOT LIKE '%yc60.com%';

+

6.按照学员注册日期的倒序排序,按照分数的正序排序

+

mysql> SELECT * FROM grade ORDER BY regdate DESC;

+

mysql> SELECT * FROM grade ORDER BY point ASC;

+

7.只显示前三条学员的数据,从第3 条数据开始显示2 条

+

mysql> SELECT * FROM grade LIMIT 3;

+

mysql> SELECT * FROM grade LIMIT 2,2;

+

8.修改姓名为'Lee'的电子邮件

+

mysql> UPDATE grade SET email='yc60.com@163.com' WHERE name='Lee';

+

9.删除编号为4 的学员数据

+

mysql> DELETE FROM grade WHERE id=4;

+

第十五章 MySQL 数据库 - 图15

10.过一遍以上的分组函数

+

  略。

+

11.检查这个表的信息

+

mysql> SHOW TABLE STATUS \G;

+

12.优化一张表

+

mysql> OPTIMIZE TABLE grade;

+

五.PhpMyAdmin

+

phpMyAdmin(简称PMA)是一个用PHP 编写的,可以通过互联网在线控制和操作

+

MySQL。他是众多MySQL 管理员和网站管理员的首选数据库维护工具,通过phpMyAdmin

+

可以完全对MySQL 数据库进行操作。

+

创建数据库scholl

+

创建一个数据库->选择utf8 字符集

+

导出另一个数据库SQL

+

1.选择另一个数据库->导出

+

2.选择需要导出的表->全选

+

3.选择Add DROP TABLE / DROP VIEW (基本表一旦删除,表中的数据以及相应建立

+

的索引和视图都将自动被删除)

+

4.选择另存为文件

+

5.选择执行,保存sql 文件

+

导入数据库

+

1.选择被导入的数据库

+

2.选择Import(导入),选择sql 文件

+

3.执行即可

+

第十五章 MySQL 数据库 - 图16

重建表

1.找到sql 文件中的刚才输出的建表语句.

+

2.复制建表语句

+

3.然后选择sql,选择粘贴,执行即可

+

修复数据表

+

1.选择要修复的表

+

2.在选中项中,选择修复表,即可

+

优化数据表

+

1.选择要优化的表

+

2.在选中项中,选择优化表,即可

+

修改,删除,插入表记录

+

执行SQL 语句

+

注:文章出自李炎恢PHP视频教程,本文仅限交流使用,不得用于商业用途,否则后果自负。

+