导入.sql 数据到数据库中**
source D:./文件名; source D:/tables.sql; 运行tables的sql文件
is null 和 is not null : 查询是否为空
别名 给一个列起其他的名字 可以有as也可没有,可以有单引号也可以没有,不区分中英文 但注意编码
select 原名 as 新名 from 表名:
select 原名 新名 from 表名;
去重distinct
select distinct 列名 from 表名;
and和or
and和java中&&类似
or 和java中 || 类似
in 和 not in
in 使用多个or的时候可以替换为in
查询工资为500或800或950的员工
select * from emp where sal in(500,800,950);
between X and Y
查询某个字段的数值在x和y之间
模糊查询 like
_ :代表单个未知字符,
% :代表多个位置字符
例子:1.以a开头:a% 2.以b结尾: %b
3.以x开头,y结尾:x%y
4.包含abc:%abc%
5.第二个字符是b :_b%
**排序 order by 字符段 **
注意 不是查询条件 这个是排序 不需要where
字符段后面 什么都不加为默认排序 添加desc为降序 asc升序
分页查询
格式:limit (n-1)m,m n是请求第几页 m每页显示几条记录 第二个m是几条数据
注意:计算完在带入limit
请求前20条 :limit 0,20;
请求前三页每页八条数据: limit (3-1)8,8; -----> limit 16,8;
时间函数
显示当前时间 select now();
获取年月日 select curdate();
获取时分秒 select curtime();
从当前时间提取年月日 select date(now());
从当前时间提取时分秒 select time(now));
从特定时间提取 select data('2019-1-1 00:00:00');
用extract提取时间分量
select extract(month from now()); 从当前时间提取月份
日期格式化 date_format(日期,格式);
format: %Y 四位年 %y两位年
%m 两位月 %c 一位月
%d 日
%H 24小时 %h 12小时
%i 分 %s 秒
把自定义时间格式转化为标准格式 str_to_date(自定义的字符串时间,格式)
select str_to_date('14.08.2008 08:00:00','%d.%m.%Y %H:%i:%s');
ifnull
age=ifnull(x,y) 如果x的值为空 则age=y;如果不为空 则age=x 三目运算符
聚合函数
1.求平均数,avg(字段名);
select avg(sal) from emp where deptno=20;
2.最大值 ,max(字段名);
selectmax(sal) from emp where deptno=20;
3.最小值,min(字段名);
select min(sal) from emp where deptno=20;
4.求和 , sum(字段名)
select sum(sal) from emp where deptno=20;
5.统计数量 count(字段名);
select count(*) from emp;
字符串相关的函数
1.字符串拼接 concat(s1,s2) s1s2
查询员工姓名和工资 要求在工资的后面添加单位元
select ename,concat(sal,'元') from emp;
2.获取字符串的长度 char_length(str)
select char_length('abc');
3.获取字符串在另外一个字符串中出现的位置 注意参数位置不同用的函数不同
格式一: instr(str,substr) select instr('abcdefg','d'); 第一次出现的位置
格式二: locate(substr,str); select locate('d','abcdefg');
4.插入字符串insert(str,start,length,newstr) length表示替代元数组的个数
select insert('abcdefg',3,2,'m'); ---->abmefg
5.转化大小写
upper(str) 转大写 lower(str) 转小写
select upper('nba'),lower('ABC');
6.去除两端空白 trim(字符串)
select trim(' as dff ');
7.截取字符串
从左截取 left(str,length);
从右截取 right(str,length);
任意位置截取 select substring(str,start,lenght); 没有第三个参数表示截取到最后
8.重复 repeat(str,count);
select repeat('ab',2); ---> abab
9.替换replace(str,old,new)
select replace('abcdefg','e','mm'); ---.abcdmmfg
10.反转 reverse(str)
select reverse('abc') -----> cba