MYSQL数据库基础知识

huangxin0506 2024-7-23 333 7/23

1 数据库

数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。

2 数据库的分类及区别

2.1 分类:

关系型数据库:MySQL、MariaDB(MySQL的代替品)、Microsoft Access等等

非关系型数据库(NoSQL):Redis、MongoDB、等等

2.2 区别:

2.2.1 关系型数据库优点:

易于维护:都是使用表结构,格式一致

使用方便:SQL语言通用,可用于复杂查询

复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询

2.2.2 缺点:

读写性能比较差,尤其是海量数据的高效率读写

固定的表结构,灵活度稍欠

高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈

2.2.3 非关系型数据库优点:

格式灵活:存储数据的格式可以是Key,Value形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型

速度快: NoSQL可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘

高扩展性

成本低:NoSQL数据库部署简单,基本都是开源软件

2.2.4 缺点:

不提供SQL支持,学习和使用成本较高

数据结构相对复杂,复杂查询方面稍欠

3 MYSQL数据库基本操作

MYSQL数据库基础知识

从phpstudy本地文件中,输入cmd

MYSQL数据库基础知识

3.1 输入命令行mysql -u root -p后再输入密码即可进入(初始密码应该为root)

MYSQL数据库基础知识

3.2 show databases 查看有什么数据库

show databases;

MYSQL数据库基础知识

3.3 create database [库名] 新建数据库

create database userinfo;

MYSQL数据库基础知识

3.4 use [库名] 进入数据库

use userinfo;

3.5 create table 表名(字段名 字段类型, 字段名2 字段类型) 新建数据表

CREATE TABLE users (id INT(8) NOT NULL AUTO_INCREMENT, user VARCHAR(255) NOT NULL,pass VARCHAR(255) NOT NULL,PRIMARY KEY (id));

3.6 show tables 查看有什么表

show tables;

3.7 desc [表名] 查看表结构

desc users;

MYSQL数据库基础知识

3.8

drop database [库名] ( 删除数据库)

Drop table [表名 ]   (删除数据表)

Alter table 表名 add 字段名 字段类型 (添加表中的字段)

ALTER TABLE users ADD email VARCHAR(255);

Alter table drop 字段名 (删除表中的字段)

ALTER TABLE users DROP COLUMN pass;

Alter table 表名 change 旧字段名 新字段名 新类型 (修改表内字段名)

ALTER TABLE users CHANGE user username VARCHAR(255) NOT NULL;

4 MYSQL记录的增删改查

4.1 插入数据:

insert into 表名 values (值1,值2)

insert into 表名 (列名1,列名2) values (值1,值2)

INSERT INTO users VALUES (1, 'root', 'root123'),(2, 'admin', 'admin456'),(3, 'guest', 'guest789'),(4, 'user1', 'password1'),(5, 'user2', 'password2');

4.2 查询语句:

select * from 表名 where 条件

 select * from users;

select 字段名 from 表名 where 条件

select user from users where id>1;

MYSQL数据库基础知识

4.3 修改数据:

update 表名 set 列名 = 新列值 where 列名 = 旧列值

update 表名 set 列名 = 新列值 ,列名2 = 新列值 where 列名 = 旧列值

UPDATE user SET pass = 'newpassword' WHERE username = 'admin';

4.4 删除数据:

delete from 表 where 列名 = 列值

delete from users where id = 1;

MYSQL数据库基础知识

5 运算符和结果处理

5.1 结果排序:

order by 1 排序第一个字段

order by 字段名 排序写了字段名的这个字段

[默认排序] [asc]          [降序]  [desc]

5.1.1. 按第一个字段(id)降序排序

select * from users order by 1 desc;

MYSQL数据库基础知识

5.1.2 按字段名排序(降序)

select * from users order by user desc;

MYSQL数据库基础知识

5.2 分页:LIMIT n, m

LIMIT n, m 语句用于分页查询,其中 n 是起始行的偏移量(从0开始),m 是要取的记录数。

假设我们要从第2页开始,每页显示3条记录。起始偏移量是 1(因为页码从0开始),取 3 条记录:

select * from users order by id limit 1,3;

MYSQL数据库基础知识

5.3 使用 GROUP_CONCAT() 函数

GROUP_CONCAT() 函数用于将多行数据合并成一个以逗号分隔的字符串。假设我们要按 user 列将所有用户的 id 合并成一个字符串:

select group_concat(id,user) as all_ids from users;

MYSQL数据库基础知识

5.4 模糊查询:

like '%u%' 查询包uu的所有值

select * from users where user like '%u%';

MYSQL数据库基础知识

like 'u%' 查询u开头的所有值

select * from users where user like 'u%';

MYSQL数据库基础知识

like '%u' 查uu结尾的所有值

select * from users where user like '%u';

MYSQL数据库基础知识

5.5 休眠函数:

Sleep (2)   数据库睡多久

select user,sleep(2) from users;

MYSQL数据库基础知识

查询结果显示了 user 列中的所有值,以及 SLEEP(2) 的返回值(0)。

每一行记录都会执行一次 SLEEP(2),因此每一行记录都暂停了2秒。

结果中的 sleep(2) 列始终为0,因为 SLEEP() 函数返回0表示成功。

5.6 查询所在库:

select database();

MYSQL数据库基础知识

5.7 数字运算符号:

+ - * / %  跟PHP中没有什么区别

5.8  逻辑运算符:

and [满足两个条件才可以]   查询用户名为 'admin' 并且密码为 'admin456' 的记录:

SELECT * FROM users WHERE user = 'admin' AND pass = 'admin456';

or[满足一个条件就可以]  查询用户名为 'admin' 或者用户名为 'guest' 的记录:

SELECT * FROM users WHERE user = 'admin' OR user = 'guest';

MYSQL数据库基础知识

5.9 联合查询:

union 将两个查询语句的结果一起输出【重复的不输出】

select * from users where id=1 union  select 1,2,3 union select 1,2,3;

union all 将两个查询语句的结果一起输出【重复的也输出】

select * from users where id=1 union  select 1,2,3 union all select 1,2,3;

MYSQL数据库基础知识

需要满足条件,相同列数

select * from users where id=1 union  select 1,2,3,4;

MYSQL数据库基础知识

5.10 子查询:

是嵌套在其他查询中的查询。子查询通常包含在小括号中,并且会在主查询之前执行。子查询可以出现在 SELECT、FROM、WHERE、HAVING 等子句中。

查询 users 表中密码为 'admin456' 或 'guest789' 的用户:

SELECT user, pass FROM users WHERE pass IN (SELECT pass FROM users WHERE pass IN ('admin456', 'guest789'));

MYSQL数据库基础知识

6 PHP与数据库的交互

6.1 静态网页:

纯文本,没有任何与后端交互的地方

MYSQL数据库基础知识

6.2 动态网页:

可以与后端交互,比如留言板,搜索 等

document.lastModified 是 JavaScript 中的一个属性,用于返回当前文档的最后修改日期和时间。这个属性通常用于网页开发中,以显示或检查网页的最后修改时间。

在网页控制台中输入document.lastModified判断网页是否为动态网页。

MYSQL数据库基础知识

比如搜索:

传参 -> PHP处理 -> 到数据库获取 -> 显示数据

很核心的一点就是PHP控制MYSQL的操作其实是要使用到MySqli扩展的,是PHP自带的一个,当看到一个函数有Mysqli_ 前缀的时候,一般都属于是mysqli的扩展

 

- THE END -

huangxin0506

7月24日08:55

最后修改:2024年7月24日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论