Mysql Limit子句使用详解
1、 在windows系统中安装mysql server服务端程序, 安装后才可以在电脑上顺利使用mysql, 这里就不详细讲解如何安装mysql server, 那么如何知道电脑上是否安装了mysql server呢? "运行"--->"cmd.exe"--->"services.msc", 在弹出的服务页面中, 选中服务列表, 然后按m键来进行模糊搜索, 如果电脑上面安装有mysql软件, 那么搜索M后, mysql服务相关的信息会出现在页面上, 如下页:
2、 在确定电脑上面安装了mysql server以后, 接下来安装一个图形化的mysql工具软件Navicat for MySQL, 安装过程和其它软件一样, 下一步下一步就可以, 安装成功后如下图所示:
3、 安装好了mysql server和Navicat以后, 如何连接到mysql数据库呢? 格式: mysql -h主机地址 -u用挥年抵遂户名 -p用户密码 这里主要分享如何连接到本机上安装的mysql: 首先, 打开DOS窗口, 然后进入目录mysql\bin, 也就是本机上面的mysql安装目录"C:\Program Files\MySQL\MySQL Server 5.7\bin"; 然后在cmd窗口中键入命令mysql -u root -p,回车后提示你输密码; 注意: 用户名前可以有空格也可以没有空格, 但是密码前必须没有空格, 否则让你重新输入密码. mysql -u root –p (可以) mysql -uroot –p (可以) mysql -uroot –p123456 (可以) 如果刚安装好MYSQL, 超级用户root是没有密码的, 故直接回车即可进入到MYSQL中了, MYSQL的提示符是: mysql> 具体如下图所示, 另外连接到远程主机上的MYSQL如下描述: 假设远程主机的IP为:110.110.110.110, 用户名为root, 密码为abcd123。 则键入以下命令: mysql -h110.110.110.110 -u root -p 123; (注:u与root之间可以不用加空格, 其它也一样)
4、 查看当前本机的数据库服务器上面安装有哪些数据库,直接输入show databases命令, 具体如下图所示:
5、 为了以后在使用mysql过程中, 方便进行测试练习, 这里输入创建数据库的命令来创建一个新的数据库, 数据库名字为myTestDb, 具体如下图所示:
6、 可以看到show databases命令执行以后, 在本机上面的数据库服务器上面有多个数据库, 需要通过use xxx(数据库名字);来选中切换到指定的数据库, 切换数据库命令执行后, 可以通过select database();或status命令下的current database来查看mysql当前工作的数据库是哪个, 具体如下图所示:
7、 切换到myTestDb数据库以后, 我们就可以来创建一张数据库釉涑杵抑表格了, 表格创建命令如下:CREATE TABLE tstLimit( iUg爿讥旌护gID bigint(20) unsigned NOT NULL AUTO_INCREMENT, iUserID bigint(20) DEFAULT NULL COMMENT '用户ID tbuser ID', iUUID bigint(20) DEFAULT NULL COMMENT 'iUUID', status tinyint(4) DEFAULT '0' COMMENT '审核状态 1未处理(默认) 2通过 3拒绝', shTime timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '审核时间', shPeopleID bigint(20) DEFAULT NULL COMMENT 'tbEmployee ID 审核人ID', eStatus tinyint(4) DEFAULT '1' COMMENT '本条记录的逻辑状态:1、有效 2、删除', dtCreateTime timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (iUggID)) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='xxx记录表'; 直接拷贝该命令到cmd窗口中就可以创建表格了, 创建表格以后, 可以通过show tables命令来查看刚才创建的表格, 具体如下图所示:
8、 接下来我们使用insert命令插入一些数据到tstLimit表中, 插入命令如下:INSERT INTO tstLimit (`iUserID`,`iUUID`,`status`,`shTime`,`shPeopleID`,`eStatus`,`dtCreateTime`) VALUES (5,6,39,'2018-04-21',7000,1,'2018-04-21');INSERT INTO tstLimit (`iUserID`,`iUUID`,`status`,`shTime`,`shPeopleID`,`eStatus`,`dtCreateTime`) VALUES (6,9,35,'2018-04-22',8000,1,'2018-04-22'); 具体效果如下图所示:
9、 有了数据以后, 我们分享下mysql limit基本用法, 分别执行以下两种情况的命令: 情况1: /*当没有指定位置偏移量时, 只取3条时, 可以这样写 */ SELECT*FROMYourTableNameLIMIT 3; 情况2: /*当指定了位置偏移量时, 从第1条起取3条时,可以这样写*/ /*因为索引是从0开始计数的,所以第2条对应的索引就是1*/SELECT*FROMYourTableNameLIMIT 0,3; (得到2条记录)SELECT*FROMYourTableNameLIMIT 1,3; (得到1条记录)SELECT*FROMYourTableNameLIMIT 2,3; (得到0条记录) 执行命令以后的具体情况如下图所示:
10、 通过以上命令的练习, 我们掌握了limit子句的基本用法, 那么该子句的应用场合是什么呢? limit应用场合: a.网站后台分页显示记录数据; b.手机App一个页面上下拖动分页显示数据// 后台计算出页码、页数(页大小)int curPage = 2;int pageSize = 10;int startRow = (curPage - 1) * pageSize; 第一页0~9(索引从0开始) 第一页10~19(索引从10开始) ...... 依次类推此时使用的查询命令如下: SELECT*FROMYourTableNameLIMITstartRow, pageSize;
11、 最后, 总结一下,limit子句是mysql的语法, 一般在实际使用的时候, 接口设计的传参方式是请求参数有两个(位置偏移量, 行数), 命令语句如下: select * from table limit m,n其中m是指记录开始的index,从0开始,表示第一条记录 n是指从第m+1条开始,取n条。实际例子: select * from tablename limit 2,3 表示即取出第3条至第5条,3条记录, 因为这条sql语句的含义是从查询出来的索引为2的数据记录开始往后从数据库中取出3条记录。 数据库查询结果的记录索引分别为0,1,2,3,4,5,6, 则它们分别对应查询出来的第一条, 第二条,第三条,第四条,第五条,第六条,第七条数据记录。