MySQL

目录

1、MySQL的定义

2、数据库的操作

[2.1 创建数据库](#2.1 创建数据库)

[2.2 查看数据库](#2.2 查看数据库)

[2.3 选中数据库](#2.3 选中数据库)

[2.4 删除数据库](#2.4 删除数据库)

3、数据表的操作

[3.1 创建表](#3.1 创建表)

[3.2 查看所有的表](#3.2 查看所有的表)

[3.3 查看表结构](#3.3 查看表结构)

[3.4 删除表](#3.4 删除表)

4、MySQL的增删查改

[4.1 增加数据](#4.1 增加数据)

[4.2 查询数据](#4.2 查询数据)

[4.2.1 全列查询](#4.2.1 全列查询)

[4.2.2 指定列查询](#4.2.2 指定列查询)

[4.2.3 表达式查询](#4.2.3 表达式查询)

[4.2.4 别名查询](#4.2.4 别名查询)

[4.2.5 去重查询](#4.2.5 去重查询)

[4.2.6 排序查询](#4.2.6 排序查询)

[4.2.7 条件查询](#4.2.7 条件查询)

[4.2.8 分页查询](#4.2.8 分页查询)

[4.3 修改数据](#4.3 修改数据)

[4.4 删除数据](#4.4 删除数据)


1、MySQL的定义

数据库是一种管理数据的软件,主要是对存储到其中的数据进行增删查改,数据库中具体的软件有 Oracle、MySQL、SQLserver、SQLite、Redis等数据库,其中Oracle、MySQL、SQLserver、SQLite都是**"关系型数据库",使用表** 来组织数据的,Redis属于**"非关系型数据库",更加灵活,使用key-value这种键值对组织数据的。
MySQL是一种
"客户端-服务器"**结构的软件

客户端(client):主动发起请求的一方

服务器(server):被动接收请求的一方

客户端和服务器之间通过网络进行通信的

客户端给服务器发起的数据称为**"请求"**(request)

服务器给客户端返回的数据称为**"响应"**(response)
MySQL的本质是服务器,在服务器中负责存储和管理数据(存储在硬盘中)。

内存和硬盘存储数据的区别:

1、内存存储速度快,硬盘存储速度慢

2、内存空间小,硬盘空间大

3、内存的价格贵,硬盘的价格便宜

4、内存中存储的数据是易失的,硬盘中存储的数据是持久的

2、数据库的操作

对数据库操作主要是两种方式

1、命令行客户端

2、图形化客户端

此处使用命令行客户端来操作MySQL数据库,操作数据库的命令,也称为"SQL"语句,也可以理解成一种编程语言。

2.1 创建数据库

输入密码登录数据库


创建数据库

**create database + 数据库的名称;**就可以创建一个数据库

注意事项:

1、像create、database这样的的单词,在SQL语句中有特定的含义,称为"关键词"

数据库名、表名、列名都不能和关键字重复

2、SQL语句中的关键字不区分大小写

3、不能创建重复的数据库,创建重复的数据库会发生报错

为了避免报错可以指定一下

create database if not exists + 数据库的名称;

4、创建数据库时可以手动指定字符集

character set +字符集名字 / charset + 字符集名字


这样就成功创建出一个数据库

2.2 查看数据库

列出当前MySQL服务器上一共有哪些数据库

show databases;


2.3 选中数据库

数据库中最关键的操作就是对表里的数据进行增删查改,表是从属于数据库的,先选中数据库,才能操作数据库中的表。

use + 数据库名称;


2.4 删除数据库

drop database + 数据库名称;

删除操作,删除的不仅仅是这个数据库,也删除了这个数据库中所有的表和表中所有的数据。


3、数据表的操作

针对数据表的操作,前提是选中数据库。一个表中包含多个行,每一行也称为一条记录。一个行里可以有很多列,每一列称为一个字段,每一列都是有类型的。

此处指出常用的类型

|-------|--------------------|-------------------------------------|
| 整数类型 | INT、INTEGER | 占用4个字节 |
| 浮点数类型 | FLOAT、DOUBLE | 分别为4个字节和8个字节 |
| 定位数类型 | DECIMAL(M,D) | 占用M+2个字节 最大取值范围与DOUBLE相同,有效范围由M,D决定 |
| 字符串类型 | VARCHAR(M) | M为0-65535之间的整数 表示该类型最多存储几个字符 |
| 时间类型 | TIMESTAMP,DATETIME | 分别为4个字节和8个字节 |

3.1 创建表

create table + 表名(列名 类型,列名 类型...);

列如:创建一个school数据库,在这个数据库中创建一个学生表


3.2 查看所有的表

查看当前数据库所有的表

show tables;


3.3 查看表结构

desc + 表名;

其中Field为列(类型)


3.4 删除表

drop table + 表名;


4、MySQL的增删查改

MySQL的增删查改,实际上就是对表中的数据进行增删查改。

4.1 增加数据

普通插入

insert into + 表名 values(值,值);

此处的值要和列相匹配

例如:

create table student (id int,name varchar(20));

insert into student values (1,'zhangsan');


指定列插入

insert into + 表名(列名,列名...) values(值,值...);


一次插入多行记录

insert into + 表名 values (值,值...),(值,值...);


查询插入结果

select * from + 表名;


4.2 查询数据

4.2.1 全列查询

select * from +表名;

把表中所有的行和列都查询出来

4.2.2 指定列查询

select 列名 列名...from +表名;


4.2.3 表达式查询

在查询的时候,写成由列名构成的表达式,把这一列的所有行都带入到表达式中,参与运算。

先创建一个表,表示学生成绩

使用表达式查询查询到每个学生的总成绩

select name,language+math+english from STUresult;


4.2.4 别名查询

查询的时候可以给列、表达式、表指定一个别名

select 表达式 as 别名 from+表名;


4.2.5 去重查询

使用distinct 修饰某一个列/多个列,使用相同的行,只会保留一个。

select distinct 列名 from 表名;

先创建一个表,都放入数字1

普通查询

进行去重查询


4.2.6 排序查询

查询的时候进行排序

select 列名(要展示的列) from 表名 order by 列名(排序的列)asc(升序)/desc(降序);

普通查询

排序查询


4.2.7 条件查询

会按照具体的条件,对数据进行查询。

select 列名 from 表名 where 条件;

例如:查询数学成绩为96的学生


4.2.8 分页查询

使用limit可以限制这次查询最多能查出来多少结果

只查询前两条记录

select * from STUresult limit 2;

偏移量

在限制查到多少条记录后,可以在这些记录后偏移查询。

select * from STUresult limit 3 offset 1;


4.3 修改数据

update 表名 set 列名=值(要执行的操作)where 条件;

比如:修改zhangsan的数学为99;


4.4 删除数据

delete from 表名 where 条件/ order by / limit;

不指定任何条件就是删除整个表


相关推荐
梦想平凡7 分钟前
百游棋牌源代码开发搭建教程(十):隔离部署、备份恢复与双端验收
java·前端·javascript·数据库·源代码管理
xcLeigh23 分钟前
让大模型长出手脚,自己写SQL查数据库(Function Calling初探)
数据库·人工智能·sql·时序数据库·timechoai
yume_sibai1 小时前
06-Rust Web 开发实战(Axum 框架 + 数据库 + JWT 认证 + 中间件 + 部署)
前端·数据库·rust
AugustRed2 小时前
Neo4j 图数据库原理 + 应用场景简单介绍
数据库·neo4j
Gl�ria2 小时前
Redis 高可用架构对比
数据库·redis
IpdataCloud3 小时前
高可用的IP数据接口平台有哪些?从可用性、P99延迟到离线部署的评估框架(含代码)
数据库·tcp/ip·ip
呆萌很3 小时前
MySQL 数据库和表的管理操作(命令行)
数据库·mysql
毕业设计7034 小时前
(免费领源码)基于Python的博物馆研学活动管理系统的设计与实现22724- java、PHP、python、C#、小程序、大数据、单片机、网络工程等)
python·mysql·随机森林·pycharm·django·flask·推荐算法
IvorySQL4 小时前
当PostgreSQL“听懂”MySQL——协议兼容层的设计与实战
数据库·人工智能·postgresql
这个DBA有点耶5 小时前
银行核心系统数据库迁移怎么选?6 步法+5 个避坑指南
数据库·安全·架构