Mysql查询语句进阶知识集锦

前言

上次咱们简单的学习了一下select的用法,一篇文章教会你进行Mysql数据库和数据表的基本操作,对数据库大概有了一些基本的了解。

咱们接着上次继续来看叭!

查询

数据如下

or查询

我们在上学时,会听到这样的话,某某某,你把谁谁谁或者谁谁谁叫过来。

这样子的话,我们我们要查询的,就是一个或(or)的关系了。

or查询只有满足一个条件即可

sql

-- 语法
SELECT * from student WHERE <条件> or <条件> ...;
-- 例如,查询姓名为张三的或者姓名为小刘的数据
SELECT * from student WHERE name="张三" or name="小刘";

执行结果

不等于(!=)查询

上述我们查询的,都是等于(=)操作,但是我们在上学时,还会有这种情况。

某个学生学习可好,背东西背的可快,放学的时候可能就人家一个人过了,这时候老师可能就说

除了某某某,其他学生本篇文章全部抄3遍,淦。。。

所以这时候就是反过来的查询的,只需要排除某个人即可!

sql

-- 语法
SELECT * from student WHERE <条件>;
-- 例如,查询姓名不是张三的其他人,排除张三
SELECT * from student WHERE name!="张三";

执行结果

in/not in查询

学生们还都是年轻人,年龄大概都在20来岁,这时候老师说,班长,把年龄在19,20,21的人统计一下!

根据上述我们学过的知识,可能你是这样婶的。

SELECT * from student WHERE age=19 or age=20 or age=21;

执行结果

通过三个or找到,其实这样也没错,但是还有一种更简单的。

sql

-- 语法
SELECT * from student WHERE <列名> in (值1,值2,...) ...;
-- 例如,需求同上
SELECT * from student WHERE age in (19,20,21);

执行结果

not in 就是不在这个范围的数据啦!

sql

-- 查询年龄不在19,20,21范围的数据
SELECT * from student WHERE age not in (19,20,21);

执行结果

between查询

between适合进行范围查询!

sql

-- 语法
select * fromwhere <列> between <开始范围> and <结束范围>;
-- 例如,查询年龄时20-22岁的学生
SELECT * from student WHERE age BETWEEN 20 and 22;

执行结果

同理,between还能用在时间上。

select * from <表名> where <时间列> between <开始时间> and <结束时间>

模糊查询(like)

假设现在数据如下,有三个姓张的。

老师可能突然有一天对你说,班长,把咱们姓张的列出来,我找他们谈点事,咋办???

我们只需要找,是以张开头的,后面是啥无所谓。

所以就要用到like模糊查询。

sql

-- 语法 %表示匹配一个或多个字符
select * fromwhere <列> like '[%]<字符串>[%]'
-- 例如,查询,以张开头的
SELECT * from student WHERE name like "张%";

执行结果

同理,这个%可以放在任意位置,他就是充当不确定的字符使用的,能够自动匹配一个或多个

例如

... WHERE name like "张%丰";
匹配:张三丰
WHERE name like "%鱼";
匹配:张甲鱼
WHERE name like "李%";
匹配:李四
...

限制(limit)

限制这个有点怪异,还是图片举例比较好。

数据如下

sql

-- 前两行
SELECT * from student LIMIT 2;

-- 从第2行开始后,再取4行
SELECT * from student LIMIT 2,4;
-- 同上,写法不同
SELECT * from student LIMIT 4 OFFSET 2

排序(order by)

不知道你有没有发现,我们之前查找的顺序都是正向的。

但是会有个问题,我们新增的数据,其实id是最大的,理论来说,应该要排在最前面。

所以,应该是倒序的是最好的。

sql

-- 语法
select * from <表名> order by <列> asc -- 从小到大排序
select * from <表名> order by <列> desc -- 从大到小排序
select * from <表名> order by <列1> desc,<列2> asc -- 先根据 列1 排序,如果数据相同,按照 列2 排序

例如

根据id正向排序

SELECT * from student ORDER BY id ASC;

执行结果

根据id反向排序

SELECT * from student ORDER BY id desc;

执行结果

hhh,这样我们就把数据反过来了!!!

分组(groupby)

分组,这个可能是难为了一批人,其实分组的核心,在于理解这个压缩这个概念。

假设数据如下

性别有男有女,如果我想知道,男的有多少个,女的有多少个怎么办???我总不能数吧。。。

所以这时候,如果能吧,男的都拿出来,女的都拿出来,就像这样!

然后我对拿出来进行压缩成一条。

如果这个你懂了,那分组就懂了。

语法

SELECT <列>,COUNT(<列>) from student GROUP BY <列>;
-- 因为分组了某个列,所以就不能再展示其他列的信息了,因为压在一块了,显示不了
-- 但是可以通过count,sum等函数计算压缩的个数,或者总值

例如

统计男女各多少人

SELECT gender,COUNT(gender) from student GROUP BY gender;

执行结果

统计同一年龄多少人

SELECT age,COUNT(age) as "数量" from student GROUP BY age;

执行结果

注意:group by必须在where之后,order by之前。

总结

本篇主要讲述的是Mysql查询语法,再单表查询中,基本上就上述这么些的内容,但是从理论到事件,是需要时间的。

一定要勤加练习,什么是or查询,like查询注意事项,尤其是group by分组查询,一定要多多思考和联系。

如果在操作过程中有任何问题,记得下面留言,我们看到会第一时间解决问题。

不要轻易改变自己,因为你可能就是世界上那颗未加工的最亮的钻石。

我是码农星期八,如果觉得还不错,记得动手点赞一下哈。

感谢你的观看。

如果在操作过程中有任何问题,记得下面留言,我们看到会第一时间解决问题。

一篇文章教会你进行Mysql数据库和数据表的基本操作

通常情况下,我们都是通过mysql.exe(客户端),连接mysql服务的。

但是有个问题。

  • 第一个问题就是太丑了。
  • 第二个问题是因为这不会自动提示啊…,早都习惯了各种自动提示工具,在用这么Low的

安装

下一步下一步就可以了!!!

破解

管理员运行PatchNavicat

打开之后,游览到安装Navicat for MySQL的目录,完成即可。

新建查询

连接好之后,点击查询,再点击新建查询,就可以写SQL了。

关于Mysql的一些概念理解

需要先理清一个概念,Mysql不是数据库。

我们连接的是Mysql服务,不是数据库

所以当别人听到连接数据库时,其实指的是连接跑起来的Mysql服务。

数据库的理解

数据库可以理解为文件夹

通过show DATABASES;命令查看自己下面有哪些数据库

再切换到<mysql安装位置>\data下。

同样可以发现有这个几个文件夹

如果再<mysql安装位置>\data新建一个文件夹

再通过show DATABASES;命令查看当前有哪些数据库,可以发现确实多了刚才新建文件夹(数据库)。

所以就得出了一个结论,数据库其实就是一个文件夹。

数据表的理解

数据库相当于文件夹,那数据库里面放的,就是数据表了。

表内容

其实会发现,数据表Excel很相似。

Excel有啥数据表也有啥。

通常都是表头(蓝色框),表内容(红色框)

总结

数据库就是一个个文件夹

数据表是不能单独存在的,需要放在数据库中,xlsx举例使用。

数据库又分表头,表内容,,

数据库相关命令

查看当前Mysql下的数据库

命令

show DATABASES;

结果

使用数据库

使用数据库的意思就是。

数据库其实就是一个个文件夹,使用数据库就是进入这个数据库,相当于进入到这个文件夹里里面。

命令

use <数据库名字>;
# 例如 use <mysql> 进入mysql这个数据库,

在日常使用中,要操作哪个数据库里面的表,一定要use 这个数据库

创建数据库

命令

CREATE DATABASE <数据库名称> DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
# 示例,创建一个school数据库
CREATE DATABASE school DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

执行结果

删除数据库

DROP <数据库名称>
# 示例,删除 school 数据库
DROP school

数据表相关命令

记得一定要use 数据库,进入数据库才能操作表。

创建表

格式

create table 表名(
    列名  列类型  [其他参数1 其他参数2 ...],
    列名  列类型  [其他参数1 其他参数2 ...]
...
)ENGINE=InnoDB DEFAULT CHARSET=utf8

其他参数包括有

  • 是否可以为空
  • not null — 不可空
    null — 可空
  • 默认值
  • defalut 2 — 默认2
  • 自增自增一般用在id上,并且只能有一个自增列,插入时不需要管这个列,会自动添加值。
  • auto_increment — 自增
    — 虽然自增加这一个关键字就行了,但是由于主键是不能为空的,所以要配合其他关键字
    not null auto_increment primary key
  • 主键主键,一种特殊的唯一索引,不允许有空值。如果主键使用单个列,则它的值必须唯一。如果是多列,则其组合必须唯一。

  • primary key(nid,num)
  • 外键
  • constraint fk_cc foreign key (color_id) references color(nid)

其他参数一一对应上就行了。

示例

创建一个老师表

create table teacher(
    id  int not null auto_increment PRIMARY key,
    teacher_name varchar(16) not null
)ENGINE=InnoDB DEFAULT CHARSET=utf8

查看数据库有哪些表

命令

show TABLES;

结果

删除表

drop table <表名>

清空表

delete from <表名>
truncate table <表名>

总结

其实这章讲的还是比较简单的,在使用Mysql时,一定要注意一个问题,就是sql后面一定要加一个;

这章主要讲的是数据库的操作数据表的操作。

如果在操作过程中有任何问题,记得下面留言,我们看到会第一时间解决问题。

敬往事一杯酒,自此不再回头。

在Navicat中如何新建数据库和表并做查询

上一篇文章,小编给大家分享了在Navicat中如何远程连接数据库,没有来得及上车的小伙伴可以戳这篇文章:在Ubuntu14.04中配置mysql远程连接教程。今天小编给大家分享一下如何在Navicat中新建数据库和表。

用过远程连接数据库工具的小伙伴都知道,在Navicat中新建数据库和表并不太难,具体的教程如下所示。在这里依然以IP地址为192.168.255.131的主机数据库为例。

1、首先登陆Navicat,然后顺利连接数据库,如下图所示。

在Navicat中如何新建数据库和表并做查询

2、在IP地址为192.168.255.131数据库上右键,然后点击“新建数据库”,如下图所示。

在Navicat中如何新建数据库和表并做查询

3、之后弹出“新建数据库”对话框,在“常规”选项卡中需要设置数据库名、字符集和排序规则。

在Navicat中如何新建数据库和表并做查询

4、正常情况下,建议数据库名字以英文命名,字符集选择utf8, 排序规则选择utf8_general_ci。在这里将数据库名命名为scrapyspider,字符集选择utf8,排序规则选择utf8_general_ci,如下图所示。设置完成之后点击“确定”。

在Navicat中如何新建数据库和表并做查询

5、之后可以看到scrapyspider数据库创建成功,点击scrapyspider数据库,可以看到此时尚未创建任何的表。

在Navicat中如何新建数据库和表并做查询

6、在左侧选项卡点击“表”,然后右键点击选择“创建新表”,之后将弹出下图的新建表界面

在Navicat中如何新建数据库和表并做查询

7、在“名”这一栏添加字段,之后选择类型和长度,设置小数点和是否允许空值,如下图所示。如果想增加字段,则点击“添加栏位”即可。

在Navicat中如何新建数据库和表并做查询

8、下图中,作为演示。添加了time、name和id三个字段,并将id设置为主键,如下图所示。

在Navicat中如何新建数据库和表并做查询

9、设置完成之后,按下快捷键Ctrl+s,保存设置的内容,弹出表名菜单,如下图所示。在表名窗口中需要输入表名,在这里将表命名为article,之后点击确定即可。

在Navicat中如何新建数据库和表并做查询

10、保存之后,可以看到表名由之前的“无标题”变成了现在的article,并且可以看到所设置的字段。

在Navicat中如何新建数据库和表并做查询

11、接下来在字段中输入内容。在time字段下输入时间,在nam字段下输入dcpeng,将id字段设置为1.设置完成之后按下快捷键Ctrl+s,保存设置,如下图所示。

在Navicat中如何新建数据库和表并做查询

12、在Navicat的选项卡中点击“查询”,然后点击“新建查询”,之后弹出查询窗口,如下图所示。当前并未输入任何的SQL语句。

在Navicat中如何新建数据库和表并做查询

13、在查询窗口中输入SQL语句进行搜索,如下图所示,试图查询article表中的数据。SQL语句写完之后,点击“运行”选项卡,之后查询到的结果将会在同一个窗口下进行显示,如下图所示。

在Navicat中如何新建数据库和表并做查询

14、当然了,右键点击article,可以看到关于表格的操作还有许多,在此就不赘述了。

在Navicat中如何新建数据库和表并做查询

关于Navicat中的建库、建表和简单查询的教程已经完成,希望对大家的学习有帮助。

看完本文有收获?请转发分享给更多的人

Python爬虫与数据挖掘

入群请在微信后台回复【入群】

在Ubuntu14.04中配置mysql远程连接教程

上一篇文章,小编带大家学会了在Ubuntu14.04中安装MySQL,没有来得及上课的小伙伴们可以戳这篇文章:如何在Ubuntu14.04中安装mysql,今天给大家分享一下,如何简单的配置MySQL,可以实现远程连接,具体的教程如下。

1、mysql的配置文件在/etc/mysql/my.cnf中,如下图所示。配置文件中的内容很丰富,我们可以看到mysql的用户、监听端口号、数据文件存储目录等。

在Ubuntu14.04中配置mysql远程连接教程

2、通过cat命令,查看my.cnf中的内容。如下图所示,在my.cnf配置文件中,bind-address默认的IP为127.0.0.1,表示只限于本机IP进行连接。如果没有配置mysql,则利用Navicat或者其他远程连接工具是无法连接到该数据库的。

在Ubuntu14.04中配置mysql远程连接教程

3、为了让外边的其他的IP正常访问到,需要设置bind-address对应的IP为0.0.0.0。使用vi或者vim,编辑my.cnf配置文件,配置完成之后如下图所示。

在Ubuntu14.04中配置mysql远程连接教程

4、更改完配置文件my.cnf之后,需要对mysql进行重启,输入命令:sudo service mysql restart,如下图所示。

在Ubuntu14.04中配置mysql远程连接教程

输入进程查看命令,可以看到mysqld进程已经存在,说明mysql启动成功。

5、接下来,通过Navicat来远程连接数据库。通过ifconfig查看IP。可以看到IP地址为192.168.255.131。

在Ubuntu14.04中配置mysql远程连接教程

6、打开Navicat,然后点击新建连接,如下图所示。

在Ubuntu14.04中配置mysql远程连接教程

7、点击“连接测试”,弹出下图界面。说明连接测试失败,原因是我们还尚未给mysql远程连接授权。Mysql的权限问题是十分严谨的,即便我们已经开放了IP地址,但是我们尚未给root用户授权,因为还是连接失败。也就是说,我们给root用户授权之后,日后在IP地址为非127.0.0.1的情况下,也能够正常访问数据库。如果没有设置的话,默认除了本地localhost连接过去的连接可以被接受之外,其他外部的IP连接过去是无效的。尽管它们的IP是在0.0.0.0上进行绑定的,但是仍然没有权限。

在Ubuntu14.04中配置mysql远程连接教程

8、接下来,我们继续进入到Ubuntu中的mysql。

在Ubuntu14.04中配置mysql远程连接教程

9、输入远程授权命令,语法模板如下:grant all privileges on 库名.表名 to ‘用户名’@’IP地址’ identified by ‘密码’ with grant option;

这里,小编根据自己的情况,在Ubuntu命令行中输入命令: grant all privileges on *.* to ‘root’@’% ‘ identified by ‘123456’ with grant option;

*.*是正则表达式,代表对所有表进行授权;root代表root用户;%代表所有的外部IP;123456代表密码。

如下图所示:

在Ubuntu14.04中配置mysql远程连接教程

10、授权之后,输入命令:“flush privileges;”以刷新权限,如上图所示。之后便可以退出mysql数据库了。

11、此时,再去Navicat中再次尝试连接测试,如下图所示。此时可以看到测试连接成功。

在Ubuntu14.04中配置mysql远程连接教程

12、点击确定,之后在Navicat主页面中可以看到IP地址为192.168.255.131的数据库已经在Navicat中了。

在Ubuntu14.04中配置mysql远程连接教程

13、双击左侧192.168.255.131数据库,可以看到数据库信息。之后就可以在Navicat中远程操作数据库了,与Ubuntu中的数据库是同步的。

在Ubuntu14.04中配置mysql远程连接教程

至此,在Ubuntu中配置mysql和设置mysql远程连接已经完成,小伙伴们学会了吗?

看完本文有收获?请转发分享给更多的人

Python爬虫与数据挖掘

入群请在微信后台回复【入群】

在Ubuntu14.04中如何安装mysql

接触过MySQL的小伙伴们都知道,在Windows下安装MySQL是一件让人十分头大的事情,但是在Ubuntu等其他Linux系统中安装MySQL就简单很多了,具体的教程如下。

1、在Ubuntu的命令行中输入MySQL安装命令“sudo apt-get install mysql-server”,如下图所示。

如何在Ubuntu14.04中安装mysql

2、MySQL安装进行中,等待安装完成。

如何在Ubuntu14.04中安装mysql

3、如果之前已经安装过MySQL的话,此时如果碰到有新版本的MySQL,会出现需要配置的情况,如下图所示。

如何在Ubuntu14.04中安装mysql

这里如果不设置新密码的话,则密码和之前的MySQL一致;如果你想设置新的密码,则输入新密码即可。

4、在这里重新设置新密码,接下来弹出再次输入新密码的窗口,如下图所示。设置完成之后,点击“ok”即可。

如何在Ubuntu14.04中安装mysql

5、之后按照程序继续进行,如下图所示。

如何在Ubuntu14.04中安装mysql

6、等待MySQL安装完成,完成之后,如下图所示。

如何在Ubuntu14.04中安装mysql

7、此时通过命令:ps aux | grep mysqld,进行查看,看mysql是否已经启动。

如何在Ubuntu14.04中安装mysql

可以看到mysql已经启动,并且在左侧可以看到mysql的进程号为6391。

8、mysql启动完成之后,可以在命令行中输入命令:mysql –u root –p,之后输入之前设置的密码,即可进入到MySQL数据库。

如何在Ubuntu14.04中安装mysql

9、接下来就可以正常使用MySQL了,增删改查等操作都可以正常进行,如下图所示。

如何在Ubuntu14.04中安装mysql

10、如果想退出MySQL数据库,直接输入“exit”或者“quit”即可,如下图所示。

如何在Ubuntu14.04中安装mysql

至此,在Ubuntu中安装MySQL就已经完成了,小伙伴们有没有觉得比Windows下的MySQL安装更简单呢?

看完本文有收获?请转发分享给更多的人

Python爬虫与数据挖掘

入群请在微信后台回复【入群】

手把手教你如何在Navicat中如何新建连接数据库及相关报错解决方法

前几天给大家分享了如何安装Navicat,没有来得及上车的小伙伴可以戳这篇文章:手把手教你安装Navicat——靠谱的Navicat安装教程。今天给大家分享一下Navicat的简单使用教程,具体的教程如下。

1、双击桌面的Navicat图标,启动Navicat。

在navicat中如何新建连接数据库

2、下图是Navicat的主页面,可以看到Navicat的导航栏和各类选项卡。

在navicat中如何新建连接数据库

3、点击左上方的连接,将弹出下图的“新建连接”窗口,在这里需要输入所要连接的主机名或者IP地址,端口直接默认即可,然后输入用户名和密码。

在navicat中如何新建连接数据库

4、输入完成之后,点击左下方的“连接测试”。如果测试失败的话,则会有错误提示,如下图所示。

在navicat中如何新建连接数据库

或者会出现下图的错误:

在navicat中如何新建连接数据库

出现这个问题,说明数据库并未给root用户授权,只需要在数据库为其授权,之后就可以实现远程连接了。

5、如果测试连接成功的话,则会顺利的连接,不会报错,如下图所示。

在navicat中如何新建连接数据库

6、点击确定,之后在Navicat主页面中可以看到IP地址为192.168.255.131的数据库已经在Navicat中了。

在navicat中如何新建连接数据库

7、双击左侧192.168.255.131数据库,可以看到数据库信息。之后就可以在Navicat中远程操作数据库了,与Ubuntu中的数据库是同步的。

在navicat中如何新建连接数据库

至此,Navicat新建连接数据库已经完成。

看完本文有收获?请转发分享给更多的人

Python爬虫与数据挖掘

入群请在微信后台回复【入群】

手把手教你安装Navicat——靠谱的Navicat安装教程

Navicat是一款轻量级的用于MySQL连接和管理的工具,非常好用,使用起来方便,简洁。下面讲讲其安装的过程。

1、进入navicat官网,选择Navicat for MySQL,然后点击进行下载即可。最好是可以找到破解版(参考链接:在csdn一搜就有 )的navicat,或者先下载过来,然后再进行破解。

手把手教你安装Navicat——靠谱的Navicat安装教程

2、弹出下图界面,任意选择一个和电脑位数对应的版本即可。

手把手教你安装Navicat——靠谱的Navicat安装教程

3、等待下载完成之后,双击navicat进行安装,点击Next。

手把手教你安装Navicat——靠谱的Navicat安装教程

4、选择同意协议,然后点击Next。

手把手教你安装Navicat——靠谱的Navicat安装教程

5、设置Navicat的安装路径,至少要保证磁盘有140M的安装空间。在这里,选择默认的安装路径,也可以根据自己的情况安装在其他的盘。

手把手教你安装Navicat——靠谱的Navicat安装教程

6、选择开始目录,默认或者更改都可以,这里直接默认,然后继续进行下一步。

手把手教你安装Navicat——靠谱的Navicat安装教程

7、这一步是是否创建桌面图标,默认是勾选上的。直接保持默认即可,然后选择下一步。

手把手教你安装Navicat——靠谱的Navicat安装教程

8、准备安装。如果前面已经设置好了的话,这一步直接点击“Install”即可,之后便可以进行安装了。

手把手教你安装Navicat——靠谱的Navicat安装教程

9、安装进行中,如下图所示。

手把手教你安装Navicat——靠谱的Navicat安装教程

10、等待安装完成,如下图所示,之后点击“Finish”。

手把手教你安装Navicat——靠谱的Navicat安装教程

11、此时在桌面上便可以看到Navicat已经显示出来了,如下图所示。

手把手教你安装Navicat——靠谱的Navicat安装教程

至此,Navicat安装完成,是不是很简单呢?

看完本文有收获?请转发分享给更多的人

Python爬虫与数据挖掘

入群请在微信后台回复【入群】