MySQL 数据查询语句
一般查询
字段取别名
别名不用加单引号,as 可省略。
select t.id ID,
t.name 名称
from grade t;
拼接字符串
concat(a, b)
select concat('姓名:', t.name) 新名字
from student t;
不能用 ||
字段去重
select distinct t.name
from student t;
计算(表达式)
select 100 * 3 - 1 计算结果;
查询自增的步长(变量)
select @@AUTO_INCREMENT_INCREMENT 自增步长;
用not实现不等于过滤
select t.id, t.name
from student t
where not t.id = 1;
自连接
把一张表拆分成两张表。
select a.categoryName, b.categoryName
from category a
inner join category b
on a.categoryID = b.parentID;
多行合并为一行
group_concat(待合并字段 [separator '分隔符'])
默认以英文逗号分隔。
分页查询
分页公式
limit (curPage - 1) * pageSize, pageSize
curPage 是当前第几页;pageSize 是一页多少条记录。
总页数公式
int totalPageNum = (totalRecord + pageSize - 1) / pageSize;
totalRecord是总记录数;pageSize是一页分多少条记录
查询前 5 条记录
select *
from category
limit 0, 5;
为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1
select *
from category
limit 5, -1;
如果只给定一个参数,它表示返回最大的记录行数目
select *
from category
limit 5;
由此可见,limit n 等价于 limit 0, n
运算函数
绝对值
select abs(-8);
向上取整
select ceiling(9.4);
向下取整
select floor(9.4);
随机数
取 0 - 1 之间的随机数
select rand();
返回数字的符号
0 返回 0,正数返回 1,负数返回 -1。
select sign(-10);
字符串函数
返回字符串长度
select char_length('HaHaHaHa');
拼接字符串
select concat('我', '爱', '你');
插入字符串
待插入字符串, 插入位置, 替换几个字符, 替换的字符串
select insert('我爱你', 3, 1, '超级爱');
字符转小写
select lower('HaHaHaHa');
字符转大写
select upper('HaHaHaHa');
返回第一次出现的子字符串的索引
select instr('HaHaHaHa', 'H');
替换字符串
待替换字符串, 要替换的字符串, 替换的字符串
select replace('我爱你', '爱', '超级爱');
截取字符串
待截取字符串, 截取的位置, 截取的字符数
select substr('HaHaHaHa', 5, 4);
select substring('HaHaHaHa', 5, 4);
反转
select reverse('我爱你');
时间和日期函数
获取当前日期(年-月-日)
select curdate();
select current_date();
获取当前时间(时:分:秒)
select curtime();
select current_time();
获取当前时间(年-月-日 时:分:秒)
select now();
获取当地时间
select localtime();
获取系统时间
select sysdate();
获取年
select year(now());
获取月
select month(now());
获取日
select day(now());
获取时
select hour(now());
获取分
select minute(now());
获取秒
select second(now());
系统函数
数据库版本
select version();
用户
select user();
select system_user();
平均值
select avg(t.categoryID)
from category t;
加密
select md5(t.pwd)
from student t;
天河有尽身作涯,星海无边前是岸。