mysql练习
用于熟悉mysql的基本知识
导入数据库脚本
1 | /* |
题目
【0. 简单查询】
查出在10部门的员工名字,工资
1
2
3
4
5
6
7SELECT
ename,
salary
FROM
emp
WHERE
deptno = 10;找出工资大于1200元的员工全名、工资、职称
1
2
3
4
5
6
7
8SELECT
ename,
salary,
job
FROM
emp
WHERE
salary > 1200;查出在10,30部门的员工名,薪水
1
2
3
4
5
6
7SELECT
ename,
salary
FROM
emp
WHERE
deptno IN ( 10, 30 );找出工资大于1500并且没有提成的员工
1
2
3
4
5
6
7SELECT
ename
FROM
emp
WHERE
salary > 1500
AND comm IS NULL;查出名字是以M打头的员工
1
2
3
4
5
6SELECT
ename
FROM
emp
WHERE
SUBSTR( ename, 1, 1 ) = 'M';查出姓名中第三个字母是e的员工
1
2
3
4
5
6SELECT
ename
FROM
emp
WHERE
SUBSTR( ename, 3, 1 ) = 'e';找出没有提成率的员工
1
2
3
4
5
6SELECT
ename
FROM
emp
WHERE
comm IS NULL;找出工资在950(含)至1200(含)元的员工姓名、职称
1
2
3
4
5
6
7
8SELECT
ename,
job
FROM
emp
WHERE
salary BETWEEN 950
AND 1200;找出2月份入职的员工名、入职时间、工资
1
2
3
4
5
6
7
8SELECT
ename,
hiredate,
salary
FROM
emp
WHERE
MONTH(hiredate) = 2;查询出所有员工的职位,不重复
1
2
3
4SELECT
DISTINCT job
FROM
emp ;查询出各个部门的员工数量
1
2
3
4
5
6
7
8SELECT
COUNT( ename ) 员工数量,
dept.dname 部门
FROM
emp
LEFT JOIN dept ON dept.deptno = emp.deptno
GROUP BY
dept.deptno;查询出各年份入职的员工情况(年份,员工人数)
1
2
3
4
5
6SELECT
YEAR( hiredate ) 年份,
COUNT( empno )
FROM
emp
GROUP BY 年份;查询出每年每月入职的员工情况(年份月份,员工人数)
1
2
3
4
5
6SELECT
DATE_FORMAT(hiredate,'%Y年%m月')年份,
COUNT( empno )
FROM
emp
GROUP BY 年份;
【1. 字符函数】
获得’goodmorning’ 的字符长度
1
SELECT CHAR_LENGTH('goodmorning');
将Hello全部转换成小写字母
1
SELECT LOWER('Hello');
将Hello全部转换成大写字母
1
SELECT UPPER('Hello');
将hello首字母变为大写字母
1
SELECT INSERT('hello',1,1,UPPER(SUBSTR('hello',1,1)));
将’hello’ 与 ‘tom’ ,’good’拼接成一个单词
1
SELECT CONCAT('hello','tom','good');
获得’goodmorning’ 的第4 个字母
1
SELECT SUBSTR('goodmorning',4,1);
截取’goodmorning’ 的monring 单词
1
SELECT SUBSTR('goodmorning',POSITION('morning' IN 'goodmorning'),CHAR_LENGTH('morning'));
截取’Good morning !I’m Tom ‘ 中的’o’ 用’A’来替代
1
SELECT REPLACE('Good morning !I\'m Tom','o','A')
【2. 日期函数】
获得当前日期
1
SELECT NOW()
获得某一个日期的年份,月份,日期
1
SELECT YEAR(NOW()),MONTH(NOW()), DAY(NOW());
获得某一个日期的星期
1
SELECT DAYOFWEEK(NOW())-1;
获得当前日期的时分秒
1
SELECT DATE_FORMAT(NOW(),'%H:%i:%s');
获得2天后的日期
1
SELECT DATE_ADD(NOW(),interval 2 day);
获得前2天的日期
1
SELECT DATE_SUB(NOW(),interval 2 day);
获得两个日期相差的年份,月份,天数
1
SELECT timestampdiff(YEAR,'2000-11-28',NOW()),timestampdiff(MONTH,'2000-11-28',NOW()),timestampdiff(DAY,'2000-11-28',NOW());
【3. 数值函数】
获得38934.4383的整数部分
1
SELECT truncate(38934.4383,0)
将38934.4387的保留2位小数,不需要四舍五入
1
SELECT truncate(38934.4383,2)
将38934.4387的保留2位小数,需要四舍五入
1
SELECT ROUND(38934.4383,2);
获得不小于38934.4383的最小正整数
1
SELECT ceiling(38934.4383);
获得不大于38934.4383的最大的正整数
1
SELECT floor(38934.4383);
- 标题: mysql练习
- 作者: kevin
- 创建于: 2023-07-11 20:21:58
- 更新于: 2023-07-14 18:42:13
- 链接: https://lsmallice.github.io/posts/c1d94981.html
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论