一、mysql中limit的用法详解[数据分页常用]

在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能。

SELECT * FROM table  LIMIT [offset,] rows | rows OFFSET offset

LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1): 为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。

mysql> SELECT * FROM table LIMIT 5,10;  // 检索记录行 6-15

//为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:

mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last.

//如果只给定一个参数,它表示返回最大的记录行数目:

mysql> SELECT * FROM table LIMIT 5;     //检索前 5 个记录行

//换句话说,LIMIT n 等价于 LIMIT 0,n。

二、mysql中sql文件的编辑和如何导入导出sql文件

1、MYSQL中SQL文件的编辑:

随便使用一种编辑器都可以编辑,保存的sql文件后缀为:.sql。

sql中的内容参考下面例子,创建数据库 : job5db

DROP DATABASE IF EXISTSjob5db;CREATE DATABASE job5db DEFAULT CHARACTER SETutf8;USEjob5db;

##创建用户表CREATE TABLEt_user (user_id INT AUTO_INCREMENT PRIMARY KEY,user_name VARCHAR(30),

passwordVARCHAR(32)

)ENGINE=InnoDB;

##创建投票记录表CREATE TABLEt_vote (

vote_idINT AUTO_INCREMENT PRIMARY KEY,

vote_topicVARCHAR(30),

vote_stateVARCHAR(10),

vote_max_can_selectINT,

vote_total_countINT,

vote_total_option_countINT,

create_timetimestamp defaultnow(),

start_timedatetime,

end_timedatetime)ENGINE=InnoDB;

##创建投票项表CREATE TABLEt_option (

option_idINT AUTO_INCREMENT PRIMARY KEY,

option_nameINT,

option_countVARCHAR(23),

vote_idINT,foreign key(vote_id) referencest_vote(vote_id)

)ENGINE=InnoDB;

##插入初始化数据INSERT INTO t_user (user_name,password)VALUES('admin','123456');COMMIT;

View Code

2.从SQL文件中导入数据到MYSQL中:

1>首先,我们应该在cmd中进入mysql指令界面中,格式很简单 ,就是  mysql -u[用户名] -h[主机所在地址,默认不写是localhost] -p   然后输入密码即可

2>直接使用source [所在的路径//*.sql]将SQL文件进行导入,接下来就会输出一大串的Query OK之类的信息了。

3、MYSQL中将数据库导出成SQL文件:

其实很简单的,就是一条语句就可以了,首先我们打开cmd,不用进mysql指令界面,直接按照下列格式将导出语句敲进去,然后再输入密码即可了:

mysqldump -h[主机所在IP] -u[用户名] -p [要导出的数据库]>[导出的路径//[文件名].sql]

好吧,直接这样看可能有点抽象,我们来举个例子,目前我的MYSQL中有一个数据库bookinfodb,现在我要将它导出并且保存到D盘中。

这个时候我们再到D盘目录下,我们就可以看到多了一个test.sql文件了

三、Mysql获取表中最后一行记录的语句?

排序后取得第一条记录

SELECT * FROM tb ORDER BY id DESC LIMIT 1

【注】在JDBC中有可以在执行时,取得插入时产生的主键:

1 //方法一:

2 long key =-1L;3 Statement statement =connection.createStatement();4 statement.executeUpdate(YOUR_SQL_HERE,Statement.RETURN_GENERATED_KEYS);5 ResultSet rs =statement.getGeneratedKeys();6 if(rs !=null&&rs.next()){7 key = rs.getLong(1);8 }9

10 //方法二:

11 PreparedStatement ps =con.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);12 statement.executeUpdate();13 ResultSet rs =statement.getGeneratedKeys();14 //方法三:下面这种可精确取得某个字段

15 PreparedStatement ps = con.prepareStatement(sql, new String[]{"USER_ID"})

四、MySQL级联删除和更新

首先,目前在产品环境可用的MySQL版本(指4.0.x和4.1.x)中,只有InnoDB引擎才允许使用外键,所以,我们的数据表必须使用InnoDB引擎。

下面,我们先创建以下测试用数据库表:

CREATE TABLE`roottb` (

`id`INT(11) UNSIGNED AUTO_INCREMENT NOT NULL,

`data`VARCHAR(100) NOT NULL DEFAULT '',PRIMARY KEY(`id`)

) TYPE=InnoDB;CREATE TABLE`subtb` (

`id`INT(11) UNSIGNED AUTO_INCREMENT NOT NULL,

`rootid`INT(11) UNSIGNED NOT NULL DEFAULT '0',

`data`VARCHAR(100) NOT NULL DEFAULT '',PRIMARY KEY(`id`),INDEX(`rootid`),FOREIGN KEY (`rootid`) REFERENCES roottb(`id`) ON DELETE CASCADE) TYPE=InnoDB;

View Code

注意:

1、必须使用InnoDB引擎;

2、外键必须建立索引(INDEX);

3、外键绑定关系这里使用了“ ON DELETE CASCADE”,意思是如果外键对应数据被删除,将关联数据完全删除,更多信息请参考MySQL手册中关于InnoDB的文档;

五、mysql update语句问题:You can't specify target table 'user' for update in FROM clause

原因是mysql不支持从选择的表再去修改,所以构造个临时表来解决问题

Error Code: 1093. You can't specify target table 'ws_product' for update in FROM clause

这个是我们在使用update或者delete语句时,在where条件里面加入的子查询导致的。例如如下的update语句:

update product set type = 'static' where id in (

select id from product where first_name ='superman'

);

修改上述语句为下面这样,该问题可以解决:

update ws_product set type = 'static' where id in (

select id form (

select id from ws_product where first_name ='superman'

) xx

);

注意,这样一定要给最里面的子查询定义一个别名,不然会报另外一个错误:

Error Code: 1248. Every derived table must have its own alias

mysql使用方法_Mysql的常用用法相关推荐

  1. mysql dba知识点_MySQL DBA 常用手册小结

    MySQL DBA 常用手册小结 更新时间:2011年11月12日 15:56:36   作者: MySQL DBA 常用手册小结,使用mysql的朋友可以参考下. 1.mysql的远程连接命令可以远 ...

  2. mysql优化方法_mysql优化方案总结

    u       Mysql数据库的优化技术 对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索引.主键索引.唯一索引u ...

  3. mysql数据库语_MYSQL数据库常用语句

    一.用户管理: 1.新建用户: >CREATE USER name IDENTIFIED BY 'ssapdrow'; 2.更改密码: >SET PASSWORD FOR name=PAS ...

  4. c mysql 添加数据类型_MYSQL的常用命令和增删改查语句和数据类型

    连接命令:mysql -h[主机地址] -u[用户名] -p[用户密码] 创建数据库:create database [库名] 显示所有数据库: show databases; 打开数据库:use [ ...

  5. mysql grant 通配符_mysql的grant用法(转)

    MySQL的权限系统围绕着两个概念: 认证->确定用户是否允许连接数据库服务器 授权->确定用户是否拥有足够的权限执行查询请求等. 如果认证不成功的话,哪么授权肯定是无法进行的. revo ...

  6. mysql 正则表达式方法_mysql正则表达式

    以前我要查找数据都是使用like后来发现mysql中也有正则表达式了并且感觉性能要好于like,下面我来给大家分享一下mysql REGEXP正则表达式使用详解,希望此方法对大家有帮助. MySQL采 ...

  7. mysql load方法_mysql中的load命令使用方法

    使用mysql 中的load 命令,可以将txt 文件中的内容加载到数据库表中 使用mysql 中的load 命令,讲txt 文件中的内容加载到数据库表中,例如,创建table,名称是user,一个字 ...

  8. mysql数据库技巧_MySQL数据库常用操作和技巧

    MySQL数据库可以说是DBA们最常见和常用的数据库之一,MySQL的广泛应用,也使更多的人加入到学习它的行列之中.下面是老MySQL DBA总结的MySQL数据库最常见和最常使用的一些经验和技巧,分 ...

  9. mysql limit 算法_MySQL的limit用法及优化(转)

    常规用法: 用法一: SELECT `keyword_rank`.* FROM `keyword_rank` WHERE (advertiserid='59') LIMIT 2 OFFSET 1; 比 ...

最新文章

  1. Android开发--Input/OutputStream操作
  2. python qt designer 重定向_[Python自学] PyQT5-QTDesigner中关联信号和槽
  3. R中因子分析的得分计算
  4. python汉化版下载-Python中文版
  5. matlab快速实现线性规划求解
  6. 如何从mp4视频格式中提取出mp3音频格式
  7. Backbone Events 源码笔记
  8. 全线路IC闭环控制自动温控电热毯维修记
  9. 【.NET】IQueryable扩展方法实现复杂查询条件
  10. 小程序 globalData 详解
  11. python statsmodels安装(亲测可用)
  12. Python猫眼电影最近上映的电影票房信息
  13. icesword 是如何列出隐藏进程?
  14. C#读写导入导出Excel表格模板(NPOI)
  15. Mysql 杂文记事
  16. EAS客户端提示找不到第三方类可能的原因
  17. 【STC8G1K08A】串口收发测试程序——库函数版本
  18. (教程)中兴机顶盒免拆机变身游戏机
  19. 电商用户消费数据RFM分析
  20. 基于Adobe LCDS产品的数据访问解决方案Part1

热门文章

  1. go语音protobuf_golang 使用 protobuf 的教程
  2. 未发现oracle(tm)客户端和网络组件_SpringColud Eureka的服务注册与发现
  3. Invalid Gradle JDK configuration found_带你了解Gradle编译速度是如何提升70%的
  4. git提交过滤package.json_eclipse配置git环境以及使用git提交本地仓和远程仓
  5. dz自动开起html,discuz论坛开启markdown 允许html代码嵌入js
  6. Android代码数字证书,有关Android中读取证书
  7. java 6 基础教程_Java小白入门教程(6)——循环语句
  8. linux shc shell脚本_详解shell脚本加密解密软件—gzese和shc
  9. 光端机和光纤交换机的区别?
  10. 多模光纤收发器购买时需要注意什么问题?