本章节所用表来自此资源,请自行下载


链接:https://pan.baidu.com/s/1XWSRDbHKdgfp23RBqyAwZg

提取码:2nmw__

如何登录和查看自己数据库信息

一、登录自己的数据库

登录自己的MySQL数据库使用命令:
mysql -uroot -p
然后输入自己的root用户名所对应的密码
image.png
登录成功后显示:
image.png

二、显示自己数据库中有哪些可用的数据库

show databases;
显示结果如下:
image.png
其中我们的名字为mysql和information_schma是我们的MySQL内部的数据库

三、想要使用我们的一个数据库

use dbgoods;
显示结果如下:
image.png

四、显示数据库中我们所有的表

show tables;
显示结果如下:
image.png

五、显示指定表中所有列名

show columns from tb_goods;
显示结果如下:
image.png
其中:
image.png
另外我们还有一种快捷的显示数据库中表信息的语句:
describe tbgoods;
效果与上图相同:
image.png

检索数据

检索数据就是select查询语句

一、检索单个列

select id from tb_goods;
显示结果如下:
image.png
这就是显示 tb-goods 表中 id 这一列的数据

二、检索多个列

select id,name,remark,createdTime from tb_goods;
显示效果如下:
image.png
这里检索的是所有的列,也可以用 来代替这些字段
也就是:select
from tb_goods;
显示结果如下:
image.png

三、检索不同的行

就如上边的查询,我们会查到所有的name,但是我们想要只检索不同的name就需要DISTINCT关键字
select distinct name from tb_goods;
显示结果如下:
image.png

四、限制结果的检索(限制检索数据的行数和起始行)

LIMIT关键字
select name from tb_goods limit 5;返回表中的前5行数据
显示结果如下:
image.png
LIMIT关键字后边可以两个参数:
select name from tb_goods limit 0,5;
显示结果如下:也等效于select name from tb_goods limit 5;
image.png
不难看出我们的MySQL表中的数据时从第0行开始的
其中我们测试一下,我们从第3行开始,然后取6条数据
select name from tb_goods limit 2,6;
显示结果如下:
image.png
但是,这里我们凑巧我们从第三行开始正好是6条数据,那我们要是这样呢??
limit 2,10;
select name from tb_goods limit 2,10;
显示结果如下:
image.png
显然我们只会返回我们表中现有的最多的数据,不会给我们10条数据

五、使用完全限定的表名

select tb_goods.name from tb_goods;
显示结果如下:
image.png
其中表名也有完全限定的名字:
select tb_goods.name from dbgoods.tb_goods;
显示结果如下:
image.png

排序检索数据

一、简单的按照单列排序检索数据

select name from tb_goods order by name;
显示结果如下:
image.png

二、按照多列进行数据的排序检索

select name,createdTime from tb_goods order name,createdTime;
显示结果如下:
image.png
这里是先按照name来排序然后又按照时间的先后来排序,我的这张表中时间相同无法直接观察

三、指定排序方向(升降序)

单列(先试试降序)
select id,name from tb_goods order by id desc;
显示结果如下:
image.png

过滤数据检索

一、where子句进行检索

select * from tb_goods where id = 1;
显示结果如下:
image.png

二、where 子句的常用操作符

略 就是,等于,不等于,大于,小于

三、不匹配查询

select * from tb_goods where id <> 1;
显示结果如下:
image.png

四、范围值检查

select * from tb_goods where id between 1 and 9;
显示结果如下:
image.png

五、空值检查

select * from tb_goods where name is null;
显示结果如下:
image.png
我的表中name字段没有为空的,显示为空;

数据过滤

一、组合where子句

1.1and操作符

SELECT * FROM tb_goods WHERE id = 1 AND NAME LIKE ‘java’;
显示结果如下:
image.png

1.2or操作符

select * from tb_goods where id = 1 or name like ‘java’;
显示结果如下:
image.png

1.3计算次序

WHERE 可以包含任意数目的and 和or操作符,当有多个条件的时候就需要我们了解计算次序

首先:
SELECT FROM tb_goods WHERE LENGTH(remark) >= 8 OR id < 8 AND NAME = ‘java’;
显示结果如下:
image.png
再来看:
SELECT
FROM tb_goods WHERE (LENGTH(remark) >= 8 OR id < 8) AND NAME = ‘java’;
image.png
DBMS首先会过滤()中的条件所以就不会有id为8 的数据

二、IN操作符

SELECT FROM tb_goods WHERE id IN(1,2,3,4);
显示结果如下:
image.png
当然我们也可以使用or操作符来进行查询:
select
from tb_goods where id = 1 or id = 2 or id =3 or id = 4;
显示结果如下:
image.png
使用IN操作符时不仅仅语法简洁,更体现在计算的次序更容易管理而且IN操作符一般比OR操作符清单执行更快

三、NOT操作符

一般用来做取反的;
select * from tb_goods where id not in (1,2,3,4);
显示结果如下:
image.png

用通配符进行过滤

一、LIKE操作符

1.百分号(%)通配符

(1)以“ava”结尾的

select * from tb_goods where name like “%ava”;
显示结果:
image.png

(2)以“ja”开头的

select from tb_goods where name like “ja%”;
显示结果如下:
image.png
(3)含有“av”的
select
from tb_goods where name like “%av%”;
显示结果如下:
image.png

二、下划线(_)通配符

通配符只能匹配单个字符,与 % 通配符不同,只能匹配一个,不能多不能少;
select * from tb_goods where name like “jav
“;
显示结果如下:
image.png

——————————————————————————-感谢阅读