MySQL简解

MySQL

  • MySQL是一个数据库的名称
  • 和PHP合作的比较好的数据库
  • 前端向后端索要数据,后端就是去数据库中查询数据,返回给前端
  • 接下来就聊聊使用PHP操作数据库
MySQL 是最流行的关系型数据库管理系统(非关系型数据库简略介绍)
关系数据库管理系统(Relational Database Management System)的特点
1.数据以表格的形式出现
2.每行为各种记录名称
3.许多的行和列组成一张表单
4.若干的表单组成database
5.主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。

数据库的数据类型

  • 数值类型
类型 大小 描述
tinyint 1字节 小整数值
smallint 2字节 大整数值
mediumint 3 字节 大整数值
int或integer 4 字节 大整数值
bigint 8 字节 极大整数值
float 4 字节 单精度 浮点数值
double 8 字节 双精度 浮点数值
decimal 小数值
  • 日期和时间类型
类型 格式 描述
DATE(date) YYYY-MM-DD 日期值
TIME(time) HH:MM:SS 时间值或持续时间
YEAR(year) YYYY 年份值
DATETIME(datetime) YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP(timestamp) YYYYMMDD HHMMSS 时间戳
  • 字符串类型
类型 大小 描述
CHAR(char) 0-255字节 定长字符串
VARCHAR(varchar) 0-65535 字节 变长字符串
TINYBLOB(tinyblob) 0-255字节 不超过 255 个字符的二进制字符串
TINYTEXT(tinytext) 0-255字节 短文本字符串
BLOB(blob) 0-65 535字节 二进制形式的长文本数据
TEXT(text) 0-65 535字节 长文本数据
MEDIUMBLOB(mediumblob) 0-16 777 215字节 二进制形式的中等长度文本数据
MEDIUMTEXT(mediumtext) 0-16 777 215字节 中等长度文本数据
LONGBLOB(longblob) 0-4 294 967 295字节 二进制形式的极大文本数据
LONGTEXT(longtext) 0-4 294 967 295字节 极大文本数据

PHP操作数据库

  • 之前都是对数据库的简单了解,不需要全都背下来,了解一下就可以了
  • 接下来我们就是使用 php 链接 mysql 数据库进行数据的增删改查
  • 想要操作数据库,除了需要 php 的语法以外,还需要一个 mysql 的 sql 语句
  • 使用 php 操作数据库的步骤
    1. 和数据库建立链接
    2. 使用 sql 语句对数据库进行操作
    3. 获取结果
    4. 和数据库的链接断开

和数据库建立链接

  • php5语法:
    • mysql_connect('ip地址','数据库用户名','数据库密码')
    • mysql_select_db('你要操作的小仓库名称')
  • php7语法:
    • mysqli_connect('ip地址','数据库用户名','数据库密码','你要操作的小仓库名称')
<?php
	$link = mysqli_connect('127.0.0.1','root','root','student');
?>
-我们有了链接信息`$link`以后就可以继续操作数据库了

执行SQL语句

  • php5语法:

    • mysql_query('你要执行的sql语法',连接信息)
  • php7语法:

    • mysqli_query(连接信息,'你要执行的sql语法')
<?php
	
	# 避免中文乱码
	mysqli_query($link,"set names utf8");
	# 下面就是使用SQL语句对数据库进行操作
	$res = mysqli_query($link,"SELECT * FROM student");
?>

解析数据

  • php5语法:
    • 解析本行数据:mysqli_fetch_assoc(要解析的数据);
    • 没有解析全部结果的方法
  • php7语法:
    • 解析本行数据:mysqli_fetch_assoc(要解析的数据);
    • 解析所有数据:mysqli_fetch_all(要解析的数据,MYSQLI_ASSOC);
<?php
	# 解析所有行的数据
	$arr = mysqli_fetch_all($res,MYSQLI_ASSOC);
	# 转json查看获取到的结果
	print_r(json_encode($arr));
?>

关闭链接

  • 全部用完以后我们最好是关闭一下数据库链接

  • php5语法:

    • mysql_close(链接信息);
  • php7语法:

    • mysqli_close(链接信息);
<?php
	mysqli_close($link);
?>

完整步骤

  • 我们完整的写一下操作的步骤
<?php
	$link = mysqli_connect('127.0.0.1','root','root','student');
	mysqli_query($link,"set names utf8");
	$res = mysqli_query($link,"SELECT * FROM student");
	$arr = mysqli_fetch_all($res,MYSQLI_ASSOC);
	print_r(json_encode($arr));
	mysqli_close($link);
?>

常用的SQL语句

  • 刚才说了怎么操作数据库
  • 现在我们学习一下,操作数据库时候常用的 sql 语句
  • 我们就是依靠这些 sql 语句来进行数据库操作的

查询语句

<?php
  # 查询 student 这个表里面的所有数据
  $sql = 'SELECT * FROM `student`';
    
  # 查询 student 表中的数据里面 gender 为 男 的数据
  $sql = 'SELECT * FROM `student` WHERE `gender`="男"';
    
  # 查询 student 表中的数据里面 age 大于 18 的数据
  $sql = 'SELECT * FROM `student` WHERE `age`>18';
    
  # 查询 student 表中的数据里面 age 大于 18 且 gender 为 男 的数据
  $sql = 'SELECT * FROM `student` WHERE `age`>18 AND `gender`="男"';

  # 查询 student 表中的数据里面 age 小于 22 或者 age 大于 28 的数据
  $sql = 'SELECT * FROM `student` WHERE `age`<22 OR `age`>28';

  # 查询 student 表中的数据里面从 第几条开始 查询多少条
  $sql = 'SELECT * FROM `student` LIMIT 0, 10';
    
  # 先按照条件筛选出数据以后再进行分页查询
  # 下面是查询表中所有 age>18 且 性别为男的所有数据,查出来以后从第 10 条开始查 10 条
  $sql = 'SELECT * FROM `student` WHERE `age`>18 AND `gender`="男" LIMIT 10, 10';

  # 查询表的模糊查询
  # 下面表示查询表中所有数据里面 name 字段中包含 "三" 字的数据
  $sql = 'SELECT * FROM `student` WHERE `name` LIKE "%三%"';

  # 查询排序,查询的时候按照某一个字段升序或降序排序
  $sql = 'SELECT * FROM `student` ORDER BY `age` ASC';
  $sql = 'SELECT * FROM `student` ORDER BY `age` DESC';
?>

增加语句

<?php
  # 向表中增加一条数据,再增加的时候主键不能由我们书写,而是 mysql 数据库自己递增
  $sql = 'INSERT INTO `student` VALUES(null, "张三", 18, "男", 1913, 100)';
    
  # 插入固定几个键的数据,其他的用默认值
  $sql = 'INSERT INTO `student` (`name`, `age`) VALUES("李四", 22)';
?>

删除语句

<?php
  # 删除表中 id 为 100 的数据
  $sql = 'DELETE FROM `student` WHERE `id`=100';

  # 删除表中 name 为 张三 的数据
  $sql = 'DELETE FROM `student` WHERE `name`="张三"'
?>

修改语句

<?php
  # 更新一条 id 为 100 的数据中的 name 字段的值和 age 字段的值
  $sql = 'UPDATE `student` SET `name`="张三", `age`=10 WHERE `id`=100'
    
  # 更新数据的时候让所有的数据增加一些内容
  $sql = 'UPDATE `student` SET `age`=age+1'
?>

猜你喜欢

转载自blog.csdn.net/qq_45677671/article/details/113757252