一、什么是数据库
1.什么是数据库
数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
2、数据库的分类及区别
关系型数据库:MySQL、MariaDB(MySQL的代替品)、Microsoft Access等等非关系型数据库(NoSQL):Redis、MongoDB、等等
区别:
关系型数据库
优点: 易于维护:都是使用表结构,格式一致 使用方便:SQL语言通用,可用于复杂查询 复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询
缺点: 读写性能比较差,尤其是海量数据的高效率读写 固定的表结构,灵活度稍欠 高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈
非关系型数据库
优点: 格式灵活:存储数据的格式可以是Key,Value形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型 速度快: NoSQL可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘 高扩展性 成本低:NoSQL数据库部署简单,基本都是开源软件
缺点: 不提供SQL支持,学习和使用成本较高 数据结构相对复杂,复杂查询方面稍欠
二、数据库基本操作
知道自己现在的数据库有什么结构:
show databases 查看有什么数据库
show tables 查看有什么表
use [ 库名] 进入数据库
desc [ 表名] 查看表结构
改变自己的数据库结构:
create database [ 库名] 新建数据库
drop database [ 库名] 删除数据库
create table 表名(字段名 字段类型, 字段名2 字段类型) 新建数据表
什么是字段类型?
字段的格式,比如说 int 数字 (只能存储数字类型的数据)
varchar 字符串 (存储字符串类型的数据) varchar(255) (能存储255个字符)
Drop table 表名 (删除数据表)
Alter table 表名
add 字段名 字段类型 (添加表中的字段)
Alter table drop 字段名 (删除表中的字段)
Alter table 表名 change 旧字段名 新字段名 新类型 (修改表内字段名)
三、记录的增删改查
插入数据:
insert into 表名 values (值1,值2)
insert into 表名 (列名1,列名2) values (值1,值2)
查询语句:
select * from 表名 where 条件
select 字段名 from 表名 where
条件修改数据:
update 表名 set 列名 = 新列值 where 列名 = 旧列值
update 表名 set 列名 = 新列值 ,列名2 = 新列值 where 列名 = 旧列值
删除数据: delete from 表 where 列名 = 列值
四、MYSQL高级查询
1、运算符和结果处理
结果排序:
order by 1 排序第一个字段
order by 字段名 排序写了字段名的这个字段
[ 默认排序] [asc]
[ 降序] [desc]
分页:
limit n,m limit 从哪里开始,取多少数据 group_concat() 多行数据一起输出
模糊查询:
like '%a%' 查询包含a的所有值
like 'a%' 查询a开头的所有值
like '%a' 查询a结尾的所有值
2、运算符和结果处理
休眠函数:
Sleep (2) 数据库睡多久
查询所在库:
select database();
数字运算符号:
+ - * / 跟PHP中没有什么区别
逻辑运算符:
and [满足两个条件才可以] or [满足一个条件就可以]
3、联合查询和子查询
联合查询:
union 将两个查询语句的结果一起输出 【重复的不输出】
union all 将两个查询语句的结果一起输出 【重复的也输出】
需要满足条件,相同列数子查询:
在原本的SQL语句中写小括号,优先执行一个查询语句
select * from admin where password = (select user from ys where id = 10)
-> -> -> select * from admin where password = yy;
五、PHP与数据库的交互
1、PHP与数据库的交互
静态网页:
纯文本,没有任何与后端交互的地方
动态网页:
可以与后端交互,比如留言板,搜索 等
比如搜索:
传参 -> PHP处理 -> 到数据库获取 -> 显示数据
很核心的一点就是PHP控制MYSQL的操作其实是要使用到MySqli扩展的,是PHP自带的一个,当看到一个函数有Mysqli_ 前缀的时候,一般都属于是mysqli的扩展
2、实例代码
3、实例项目