今天给大家讲讲MySQL中的查询操作。

前言

我们在以前,大概学了一下如何通过命令创建数据库,创建表等基本操作。

但是实际上啊,至少在我的实际工作中,用到的不是太多,了解就可以。

因为我们可以通过一些可视化软件,像Navicat for MySQL等。

可以很方便的帮助我们创建数据库,创建表,修改表等操作。

Navicat for MySQL简单示例

创建数据库

使用Navicat for MySQL连接好一个Mysql服务之后。

  1. 右击--> 新建数据库

mysql查询所有的表(手把手教你进行Mysql查询操作)(1)

  1. 选择新建数据库信息字符集一定要选择utf8mb4 -- UTF-8 Unicode,这个表示支持存储Emoji表情。排序规则一定要选择utf8mb4_general_ci。至于为什么,我也不知道...,原谅我是个码农吧。

mysql查询所有的表(手把手教你进行Mysql查询操作)(2)

就这样,一个数据库创建完成了,是不是很轻松。

创建表

  1. 右击表--> 新建表

mysql查询所有的表(手把手教你进行Mysql查询操作)(3)

  1. 制定表结构
  2. 保存表(Ctrl+s)

mysql查询所有的表(手把手教你进行Mysql查询操作)(4)

设计表

在实际中,我们常常会更改表结构,也叫设计表

  1. 右击表-->设计表
  2. 修改表

3.保存即修改

查询

上述主要复现了一下如何通过可视化软件操作数据库,确实会比直接命令方便很多很多。

但是查询这个操作,那可视化软件就真的无能为力了。

毕竟我们不管是封装在后台还是自己的软件中。

都是要使用原生SQL的,这个是无法避免的,并且原生SQL查询是最灵活的!!!

终于迎来了最最最重要的环节,学习原生sql。

需求分析

假设我们现在要做一个学生管理系统,所以首先确定,会有一个学生表,用于存放学生的信息,像姓名了,年龄了,性别了,等。

然后想了又想,学生肯定要属于哪个班级的,张三是一班的,李四是二班的,等。

所以我们可能就会有两张表了,一个是学生信息表,一个是班级表,然后学生属于哪个班级。

就像小时候戴的学生胸牌一样,姓名:xxx,班级:xxx等。

想了想,我觉得表结构大概如下

表结构图

表结构图.xlsx

mysql查询所有的表(手把手教你进行Mysql查询操作)(5)

表结构代码

school_test.sql

应该通过这两张表,基本可以把我们的sql语法,学的差不多,一起来看看叭。

查询(select)

既然表里面有这么多数据,那就需要查询了,首先是。

查询所有

sql

-- 语法
SELECT * from <表名>;
-- 例如,查询学生表
SELECT * from student;

执行结果

mysql查询所有的表(手把手教你进行Mysql查询操作)(6)

where条件查询

但是有时候,我们可能需要查询带有一些条件的,比如id=1的,或者name=张三的等。

这时候就需要用到where。

sql

-- 语法
SELECT * from <表名> where <条件>;
-- 例如,查询id=1的数据
SELECT * from student where id=1;

执行结果

mysql查询所有的表(手把手教你进行Mysql查询操作)(7)

这样,我们就把id=1的数据查找出来了。

同理,还可以写其他条件。

查询性别为男的(gender=男)

SELECT * from student where gender="男";

执行结果

mysql查询所有的表(手把手教你进行Mysql查询操作)(8)

这样,就把gender=男的都查出来了。

where多个条件查询(and)

假设现在表内容如下。

mysql查询所有的表(手把手教你进行Mysql查询操作)(9)

有俩琪琪,一个是男琪琪,一个是女琪琪,那我们查的时候,肯定要区分是男的还是女的琪琪了。

所以这时候需要where多个条件了。

and的意思是查询满足所有条件的数据。

sql

-- 语法
SELECT * from student where <条件> and <条件> ...;
-- 例如,查询男琪琪
SELECT * from student where name="琪琪" and gender="男";

执行结果

mysql查询所有的表(手把手教你进行Mysql查询操作)(10)

这样,通过多个条件就卡住了更精准的数据。

select 选择列

在上面使用时,我们使用的都是select * from <表名>。

假设我们的数据如下

mysql查询所有的表(手把手教你进行Mysql查询操作)(11)

select *就表示,选择所有列

mysql查询所有的表(手把手教你进行Mysql查询操作)(12)

结果如下

mysql查询所有的表(手把手教你进行Mysql查询操作)(13)

如果是select id,name age,表示选择指定列

mysql查询所有的表(手把手教你进行Mysql查询操作)(14)

结果如下

mysql查询所有的表(手把手教你进行Mysql查询操作)(15)

select还能给列起别名

例如

SELECT id,name as "姓名",age from student;

执行结果

mysql查询所有的表(手把手教你进行Mysql查询操作)(16)

总结

本章主要讲述了如何使用Navicat for MySQL新建数据库,新建表,设计表等简单操作。

后续又根据实际需求设计出简单的学生表班级表,并且简单是使用了select查询。

后来又讲解select *和select 列1,列2的区别。