前言
本篇博客将复习MySQL的基础知识,及着重复习CRUD(增删查改)操作。

目录
[1.2 创建数据库](#1.2 创建数据库)
[1.3 使用数据库](#1.3 使用数据库)
[1.4 删除数据库](#1.4 删除数据库)
[2.6排序查询:ORDER BY](#2.6排序查询:ORDER BY)
四.删除(Delete)
一.MySQL数据库基础知识
1.数据库操作
1.1显示当前的数据库
sql
SHOW DATABASES;

1.2 创建数据库
语法:
sql
CREATE DATABASE 数据库名;
示例,创建一个名为test的数据库
sql
create database test;

此时,显示数据库,我们将看到刚才所创建的数据库

1.3 使用数据库
sql
USE 数据库名
1.4 删除数据库
注:删除数据库是个高危操作
语法:
sql
DROP DATABASE 数据库名;
数据库删除以后,内部看不到对应的数据库,里边的表和数据全部被删除
2.数据类型
2.1.数字类型
分为整型和浮点型:

2.2字符串类型

上述字符串类型中,我们最常用的为VARCHAR()类型,也是最推荐使用的类型。
VARCHAR()与存储的都是文本数据类型
BLOB存储的为二进制类型,若要存储图片,视频,音频等,可用BLOB
2.3日期类型

上述数据类型看似多,但有些已经被淘汰,我们只需重点掌握以下几个数据类型即可:
1)int
2)bigint
3)double
4)decimal
5)varchar
6)datetime
3.数据库表操作
在进行数据库表操作前,我们应进入已有的数据库中,例如:
3.1查看表
查看当前数据库下,有多少个表
sql
show tables;

由于此数据库为刚创建的,未创建任何的表,所以返回Empty set。
3.2创建表
sql
CREATE TABLE 表名(列名 类型,列名 类型, 列名 类型,.....);
例如:创建一个简易学生表

3.3查看表结构
sql
desc 表名;

可以查看到有哪些列,每个列是什么样的,不能看到表里的内容。
3.4删除表
sql
DROP TABLE 表名;

注:删表操作与删库操作一样都是高危操作,且删表操作比删库操作隐蔽性更强,造成的损失可能会更大。
二.CRUD(重点)
CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写
1.新增(Create)
语法:
sql
insert into 表名 values(值,值,值.....) 这里的个数和表结构要匹配

增加可一次增加一行数据,也可以一次性增加多行数据。
语法:
sql
insert into 表名 values(值,值,值.....) ,(值,值,值.....),(值,值,值.....);

我们也可以指定一个要插入的值,其他未指定的则会设为空(NULL)
sql
insert into 表名(列名) values(值);
例如:

2.查询(Retrieve)
2.1全列查询
查询出这个表中的所有的行和所有的列
sql
select * from 表名;
*称为通配符,指代所有的列

2.2指定列查询
查询的时候手动指定列名,得到结果就是与列名相关联的。
sql
select 列名,列名......from 表名;
2.3查询字段为表达式

新建一个表,方便观察。
表达式可以对表中数据进行处理后查询
例如:查询每个人english成绩+10后的结果

注:这样的结果只是数据库生成的临时表,数据库中的数据并没有改变
2.4别名
如果查询的表达式简单,我们可以一眼看明白。
如果表达式比较复杂,就无法直观的观察了。
此时就可以给表达式起别名,别名就是查询结构的列名。
sql
select 列名 as 别名 from 表名;
例如:

注:as可以省略
2.5去重查询:DISTINCT
多行的数据可能会出现有重复的,去重后只会保留一份
语法:
sql
select distinct 列名 from 表名;
2.6排序查询:ORDER BY
ORDER BY默认为升序排列
语法:
sql
select ....from 表名 order by 列名;
例如:以语文成绩为准进行排序

若需要降序排序,在order by后面的列中加入desc关键字,即可降序排序

order by也可以指定多个列来进行排序,多个列间先按照第一列来排序,若第一列相同则根据第二列进行排序

2.7条件查询(重要)
查询过程中指定筛选条件,满足条件的记录保留,不满足的排除。
语法:
sql
select 列名 from 表名 where 条件;


例1:查询英语不及格的同学及英语成绩 ( < 60 )

例2:查询语文成绩好于英语成绩的同学

例3:查询总分在 200 分以下的同学

模糊查询:LIKE
不要求完全相等,只要满足一定条件即可查询,需搭配通配符来描述条件
% 匹配任意多个(包括 0 个)字符
_ 匹配严格的一个任意字符
例如:查询以孙为开头的同学信息

2.8分页查询:LIMIT
limit可以用来限制查询的个数,防止因查询的数据过于庞大导致机器挂掉
语法:
sql
从 0 开始,筛选 n 条结果
select *from 表名 limit n;
sql
从 s 开始,筛选 n 条结果
select * from 表名 limit s,n;
sql
从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用
select * from 表名 limit n offset s;
例如:

三.修改(Update)
语法:
sql
update 表名 set 列名=值,列名=值,......;
例如:将孙悟空同学的数学成绩变更为 80 分

四.删除(Delete)
sql
DELETE FROM 表名 [WHERE ...] [ORDER BY ...] [LIMIT ...]
注:删除操作是一个危险操作,如果不加限制,会直接将表的全部数据删除。
例:删除孙悟空同学的数据

以上便是全部内容,如有不对,欢迎指正