当你配置好mysql后.可以使用windows系统自带的命令行登陆mysql,或者登陆mysql自带的命令行客户机.当然,你也可以使用一些图形界面的软件来进行一些可视化的数据库操作,例如SQLyog.但是我还是喜欢使用命令行!!

第一种方法:

通过mysql -uroot -p来隐藏密码登陆.当然你也可以不隐藏密码直接登陆~~~

mysql 命令行查询insert mysql命令行查询数据库_mysql


然后就会显示登陆成功.

mysql 命令行查询insert mysql命令行查询数据库_数据库_02

第二种方法:

mysql 命令行查询insert mysql命令行查询数据库_mysql_03

mysql 命令行查询insert mysql命令行查询数据库_字段_04

我们可以发现登陆成功后,mysql会反馈给我们一连串的英文提示,我们可以知道:mysql对于你来到它的世界表示欢迎~mysql的世界内,语句是以’;’或者’\g’来表示结束的,你可以使用\h来寻求帮助,也可以使用\c来结束当前未完成的语句编辑.这对我们来说很有帮助,请务必记住.

接下来,我们可以输入命令:show databases;在windows下命令行是不区分大小写的,在MYSQL中大小写也没有影响.但是MYSQL中的关键词最好还是使用大写和数据库名和表名等区分开来.
该条命令查看了所有的数据库.这里的4个数据库是MYSQL默认的,前面3个是MYSQL用来实现相关功能的库,最好不要去动,最后一个test数据库从名字就知道是用来测试练习使用的数据库.

mysql 命令行查询insert mysql命令行查询数据库_mysql 命令行查询insert_05

接下来我想要查看test数据库下的表,那么我就需要先选择打开test数据库.use test命令用来打开指定数据库;然后调用show tables;命令查看所有的表.

由于test数据库是空的,所以查询不到任何的表.我们查询下其他的数据库.

mysql 命令行查询insert mysql命令行查询数据库_数据库_06

mysql 命令行查询insert mysql命令行查询数据库_字段_07

使用show columns from + tableName;命令查看表的结构.

mysql 命令行查询insert mysql命令行查询数据库_字段_08

当然还有更快捷的方式,那就是直接使用 desc + tableName;命令.

mysql 命令行查询insert mysql命令行查询数据库_字段_09

其他有关show关键字的命令还有:
show status;显示广泛的服务器状态信息.
show create table + tableName;显示创建表的信息.
show create database + databaseName;显示创建数据库的信息.
show errors;显示服务器的错误消息.
show warnings;显示服务器的警告消息.
show grants:显示授予用户的安全权限.

对数据库的操作也就是增删改查四个了,其中最重要的,也是最麻烦的就是查询了.

让我们从简单开始查询.首先我会创建一个新的数据库和一个表.以供测试使用.

可以发现多了个test2数据库.

mysql 命令行查询insert mysql命令行查询数据库_mysql_10

这里创建了一个表t1,t1有三个字段,id,name,score.通过desc + tableName命令.

mysql 命令行查询insert mysql命令行查询数据库_字段_11

下面我们先插入一些尽量多的简单的数据.然后才可以进行查询,否则结果集为空,根本查询不到东西.对于数据库和表的创建,记录的增删改等操作会在之后的博客更新.

mysql 命令行查询insert mysql命令行查询数据库_mysql 命令行查询insert_12

查询的关键字是SELECT,这里先查询某一个字段的内容.比如查询score字段的内容.发现返回了所有人的分数.

mysql 命令行查询insert mysql命令行查询数据库_mysql_13


如果我们只想知道有哪些分数,也就是说重复的分数只需要出现一次,那么可以用distinct关键字修饰.两者对比发现返回的记录少了一条,也就是重复的分数.

mysql 命令行查询insert mysql命令行查询数据库_mysql 命令行查询insert_14

既然distinct关键字对一个字段有效,那么两个字段呢?下面测试下:可以发现仍然返回了7条记录.可以知道:distinct针对的是指定的所有字段,只要有一个字段的内容不相同,那么就仍然会返回给我们.

mysql 命令行查询insert mysql命令行查询数据库_mysql_15

现在又出现了一个问题:返回的数据是杂乱无章的,我们是否可以把他们按照某个字段排序后,反馈给我们呢?答案当然是可以的,下例我们让所有的记录按照分数升序排列,如果分身相同,则按照名字的字典序降序排列.在这里’*’是个通配符,它代表了所有的字段.所有表中的3个字段全部返回给了我们.ASC代表升序,是默认的排序方式,可以不写,但我还是习惯写上去,而DESC代表降序.

mysql 命令行查询insert mysql命令行查询数据库_字段_16

问题又源源不断的来了…我们这里测试的数据库中的表,数据量非常的小.所以返回给我们影响不大,如果数据量达到几万甚至更多,而我们只需要找到按照上一个排序那样的前5个人的信息,那该怎么做呢?难道全部返回,那样太耗时了.

这里用到了limit关键字,它限制了返回的记录的条数.我们可以把下图的两个结果集进行比较,发现只返回了前5条记录.

mysql 命令行查询insert mysql命令行查询数据库_字段_17

这个时候又有一个搞怪的人出现了,只返回前5条记录不太好,最好可以从第二条记录开始,返回连续的五条记录.由于要从第二条记录开始,而结果集又是从下标为1开始的,所以通过LIMIT 1,5;来表示只返回从下标为1的记录开始连续5条记录.

mysql 命令行查询insert mysql命令行查询数据库_mysql_18

更多的关于查询的内容,将会在下一个博客内介绍.