本章节所用表来自此资源,请自行下载
链接:https://pan.baidu.com/s/1XWSRDbHKdgfp23RBqyAwZg
提取码:2nmw__
如何登录和查看自己数据库信息
一、登录自己的数据库
登录自己的MySQL数据库使用命令:
mysql -uroot -p
然后输入自己的root用户名所对应的密码
登录成功后显示:
二、显示自己数据库中有哪些可用的数据库
show databases;
显示结果如下:
其中我们的名字为mysql和information_schma是我们的MySQL内部的数据库
三、想要使用我们的一个数据库
四、显示数据库中我们所有的表
五、显示指定表中所有列名
show columns from tb_goods;
显示结果如下:
其中:
另外我们还有一种快捷的显示数据库中表信息的语句:
describe tbgoods;
效果与上图相同:
检索数据
一、检索单个列
select id from tb_goods;
显示结果如下:
这就是显示 tb-goods 表中 id 这一列的数据
二、检索多个列
select id,name,remark,createdTime from tb_goods;
显示效果如下:
这里检索的是所有的列,也可以用 来代替这些字段
也就是:select from tb_goods;
显示结果如下:
三、检索不同的行
就如上边的查询,我们会查到所有的name,但是我们想要只检索不同的name就需要DISTINCT关键字
select distinct name from tb_goods;
显示结果如下:
四、限制结果的检索(限制检索数据的行数和起始行)
LIMIT关键字
select name from tb_goods limit 5;返回表中的前5行数据
显示结果如下:
LIMIT关键字后边可以两个参数:
select name from tb_goods limit 0,5;
显示结果如下:也等效于select name from tb_goods limit 5;
不难看出我们的MySQL表中的数据时从第0行开始的
其中我们测试一下,我们从第3行开始,然后取6条数据
select name from tb_goods limit 2,6;
显示结果如下:
但是,这里我们凑巧我们从第三行开始正好是6条数据,那我们要是这样呢??
limit 2,10;
select name from tb_goods limit 2,10;
显示结果如下:
显然我们只会返回我们表中现有的最多的数据,不会给我们10条数据
五、使用完全限定的表名
select tb_goods.name from tb_goods;
显示结果如下:
其中表名也有完全限定的名字:
select tb_goods.name from dbgoods.tb_goods;
显示结果如下:
排序检索数据
一、简单的按照单列排序检索数据
select name from tb_goods order by name;
显示结果如下:
二、按照多列进行数据的排序检索
select name,createdTime from tb_goods order name,createdTime;
显示结果如下:
这里是先按照name来排序然后又按照时间的先后来排序,我的这张表中时间相同无法直接观察
三、指定排序方向(升降序)
单列(先试试降序)
select id,name from tb_goods order by id desc;
显示结果如下:
过滤数据检索
一、where子句进行检索
select * from tb_goods where id = 1;
显示结果如下:
二、where 子句的常用操作符
三、不匹配查询
select * from tb_goods where id <> 1;
显示结果如下:
四、范围值检查
select * from tb_goods where id between 1 and 9;
显示结果如下:
五、空值检查
select * from tb_goods where name is null;
显示结果如下:
我的表中name字段没有为空的,显示为空;
数据过滤
一、组合where子句
1.1and操作符
SELECT * FROM tb_goods WHERE id = 1 AND NAME LIKE ‘java’;
显示结果如下:
1.2or操作符
select * from tb_goods where id = 1 or name like ‘java’;
显示结果如下:
1.3计算次序
WHERE 可以包含任意数目的and 和or操作符,当有多个条件的时候就需要我们了解计算次序
首先:
SELECT FROM tb_goods WHERE LENGTH(remark) >= 8 OR id < 8 AND NAME = ‘java’;
显示结果如下:
再来看:
SELECT FROM tb_goods WHERE (LENGTH(remark) >= 8 OR id < 8) AND NAME = ‘java’;
DBMS首先会过滤()中的条件所以就不会有id为8 的数据
二、IN操作符
SELECT FROM tb_goods WHERE id IN(1,2,3,4);
显示结果如下:
当然我们也可以使用or操作符来进行查询:
select from tb_goods where id = 1 or id = 2 or id =3 or id = 4;
显示结果如下:
使用IN操作符时不仅仅语法简洁,更体现在计算的次序更容易管理而且IN操作符一般比OR操作符清单执行更快
三、NOT操作符
一般用来做取反的;
select * from tb_goods where id not in (1,2,3,4);
显示结果如下:
用通配符进行过滤
一、LIKE操作符
1.百分号(%)通配符
(1)以“ava”结尾的
select * from tb_goods where name like “%ava”;
显示结果:
(2)以“ja”开头的
select from tb_goods where name like “ja%”;
显示结果如下:
(3)含有“av”的
select from tb_goods where name like “%av%”;
显示结果如下:
二、下划线(_)通配符
通配符只能匹配单个字符,与 % 通配符不同,只能匹配一个,不能多不能少;
select * from tb_goods where name like “jav“;
显示结果如下:
