MySQL数据库操作示例与常用函数详解
一、数据查询中的limit用法
在MySQL数据库中,limit子句常用于限制查询结果返回的行数。以下是一些具体的使用示例:
1. 查询工资最高的前3名雇员的信息:
-- 方法一:指定起始位置和数量(起始位置为0可省略)
select * from emp order by sal desc limit 0,3;
-- 方法二:省略起始位置参数,默认从第0条开始,显示3条记录
select * from emp order by sal desc limit 3;
如果省略limit的第一个参数,那么默认其值为0,即从结果集的第0条记录开始,显示指定数量的记录。
2. 查询工资大于1000的第4-8个用户:
select * from emp where sal>1000 limit 3,5;
这里limit的第一个参数3表示从第4条记录开始(记录索引从0开始计数),第二个参数5表示要显示的记录数量为5条。
二、分页查询
在实际应用中,分页查询是很常见的需求。假设每页显示的记录数为pagesize,要显示的页码为pageindex,可以使用以下方式进行分页查询:
-- 通用分页查询语句
select * from emp limit (pageindex-1)*pagesize,pagesize;
-- 示例:每页显示4条记录,显示第3页的内容
select * from emp limit(3-1)*4,4;
需要注意的是,在MySQL中limit后面的参数不能包含任何运算。在实际开发中,通常是在编程语言(如Java、Python等)中进行计算,然后将计算结果发送给数据库执行。
三、常用字符串函数
1. concat(s1,s2,......):功能是将多个字符串连接在一起。
-- 示例1:直接连接多个字符串常量
select concat('aa','bb','cc');
-- 示例2:从虚拟表dual中查询连接结果(主要用于测试语法)
select concat('aa','bb','cc' ) from dual;
-- 示例3:连接字符串常量和表中的字段
select concat('编号为', empno,'的员工,姓名为',ename) from emp;
其中,'编号为'、'的员工,姓名为'等是字符串常量,empno和ename是表emp中的字段变量。dual表是MySQL提供的一个虚拟表,主要是为了满足select...from...的语法习惯,一般仅在测试时使用,无实际意义。
2. lower(s):将字符串s中的字母字符转换为小写字母。
select lower( 'Hello World') from dual;
3. upper(s):将字符串s中的字母字符转换为大写字母。
select upper('Hello World') from dual;
4. length(s):获取字符串s的长度,用于测试s中字符串的长度。
select length('hello world') from dual;
5. reverse(s):将字符串s中的内容反转。
select reverse('hello')from dual;
6. trim(s)、ltrim(s)和rtrim(s):trim(s)去掉字符串两边的空格,ltrim(s)去掉字符串左边的空格,rtrim(s)去掉字符串右边的空格。
select trim(' hello world ')from dual;
7. replace(s,s1,s2):将字符串s中的s1替换为s2。
select replace('hello world','o','xxhh')from dual;
8. lpad(s,len,s1):在字符串s的左边使用s1进行填充,直到长度为len。
select lpad('hello',8,'#') from dual;
9. rpad(s,len,s1):在字符串s的右边使用s1进行填充,直到长度为len。
select rpad('hello',8,'#') from dual;
10. repeat(s,n):将字符串s重复n次后返回。
select repeat( 'book',3) from dual;