今天给大家讲讲MySQL中的查询操作。
前言
我们在以前,大概学了一下如何通过命令创建数据库,创建表等基本操作。
但是实际上啊,至少在我的实际工作中,用到的不是太多,了解就可以。
因为我们可以通过一些可视化软件,像Navicat for MySQL等。
可以很方便的帮助我们创建数据库,创建表,修改表等操作。
Navicat for MySQL简单示例
创建数据库
使用Navicat for MySQL连接好一个Mysql服务之后。
- 右击--> 新建数据库
- 选择新建数据库信息字符集一定要选择utf8mb4 -- UTF-8 Unicode,这个表示支持存储Emoji表情。排序规则一定要选择utf8mb4_general_ci。至于为什么,我也不知道...,原谅我是个码农吧。
就这样,一个数据库创建完成了,是不是很轻松。
创建表
- 右击表--> 新建表
- 制定表结构
- 保存表(Ctrl+s)
设计表
在实际中,我们常常会更改表结构,也叫设计表
- 右击表-->设计表
- 修改表
3.保存即修改
查询
上述主要复现了一下如何通过可视化软件操作数据库,确实会比直接命令方便很多很多。
但是查询这个操作,那可视化软件就真的无能为力了。
毕竟我们不管是封装在后台还是自己的软件中。
都是要使用原生SQL的,这个是无法避免的,并且原生SQL查询是最灵活的!!!
终于迎来了最最最重要的环节,学习原生sql。
需求分析
假设我们现在要做一个学生管理系统,所以首先确定,会有一个学生表,用于存放学生的信息,像姓名了,年龄了,性别了,等。
然后想了又想,学生肯定要属于哪个班级的,张三是一班的,李四是二班的,等。
所以我们可能就会有两张表了,一个是学生信息表,一个是班级表,然后学生属于哪个班级。
就像小时候戴的学生胸牌一样,姓名:xxx,班级:xxx等。
想了想,我觉得表结构大概如下
表结构图
表结构图.xlsx
表结构代码
school_test.sql
应该通过这两张表,基本可以把我们的sql语法,学的差不多,一起来看看叭。
查询(select)
既然表里面有这么多数据,那就需要查询了,首先是。
查询所有
sql
-- 语法 SELECT * from <表名>; -- 例如,查询学生表 SELECT * from student;
执行结果
where条件查询
但是有时候,我们可能需要查询带有一些条件的,比如id=1的,或者name=张三的等。
这时候就需要用到where。
sql
-- 语法 SELECT * from <表名> where <条件>; -- 例如,查询id=1的数据 SELECT * from student where id=1;
执行结果
这样,我们就把id=1的数据查找出来了。
同理,还可以写其他条件。
查询性别为男的(gender=男)
SELECT * from student where gender="男";
执行结果
这样,就把gender=男的都查出来了。
where多个条件查询(and)
假设现在表内容如下。
有俩琪琪,一个是男琪琪,一个是女琪琪,那我们查的时候,肯定要区分是男的还是女的琪琪了。
所以这时候需要where多个条件了。
and的意思是查询满足所有条件的数据。
sql
-- 语法 SELECT * from student where <条件> and <条件> ...; -- 例如,查询男琪琪 SELECT * from student where name="琪琪" and gender="男";
执行结果
这样,通过多个条件就卡住了更精准的数据。
select 选择列
在上面使用时,我们使用的都是select * from <表名>。
假设我们的数据如下
select *就表示,选择所有列
结果如下
如果是select id,name age,表示选择指定列
结果如下
select还能给列起别名
例如
SELECT id,name as "姓名",age from student;
执行结果
总结
本章主要讲述了如何使用Navicat for MySQL新建数据库,新建表,设计表等简单操作。
后续又根据实际需求设计出简单的学生表和班级表,并且简单是使用了select查询。
后来又讲解select *和select 列1,列2的区别。