首页 > 数据库 >【MySQL练习】单行函数练习

【MySQL练习】单行函数练习

时间:2022-10-18 17:02:16浏览次数:75  
标签:hire last name 练习 单行 MySQL date id SELECT

数据库表数据:https://www.cnblogs.com/zhishu/p/16452950.html

1.显示系统时间(注:日期+时间)

这几个都可以 NOW(),SYSDATE(),CURRENT_TIMESTAMP(),LOCALTIME(),LOCALTIMESTAMP()

SELECT NOW() FROM DUAL;

2.查询员工号,姓名,工资,以及工资提高百分之20%后的结果(new salary)

SELECT employee_id,last_name,salary,salary*1.2 AS "new salary"
FROM employees;

3.将员工的姓名按首字母排序,并写出姓名的长度(length)

因为姓名都是英文用length()和char_length()都一样。
如果是中文则用char_length(),length()是以字节为单位。一个中文占两个或三个字节。

SELECT last_name,CHAR_LENGTH(last_name)
FROM employees
ORDER BY last_name;

4.查询员工id,last_name,salary,并作为一个列输出,别名为OUT_PUT

SELECT CONCAT(employee_id,',',last_name,',',salary) AS OUT_PUT
FROM employees;

5.查询公司各员工工作的年数、工作的天数,并按工作年数的降序排序

只取整数年可以用floor()向下取整。
datediff(date1,date2),返回date1和date2的间隔天数

SELECT DATEDIFF(CURDATE(),hire_date)/365 AS work_years,DATEDIFF(NOW(),hire_date) AS work_days
FROM employees
ORDER BY work_years DESC;

6.查询员工姓名,hire_date , department_id,满足以下条件:雇用时间在1997年之后(包括1997),department_id为80 或 90 或110, commission_pct不为空。

Year(date),返回date中的年份。
STR_TO_DATE('1997-01-01', '%Y-%m-%d'),按照字符串%Y-%m-%d1997-01-01进行解析,解析为一个日期。
DATE_FORMAT(hire_date,'%Y'),按照字符串%Y格式化日期hire_date

SELECT last_name,hire_date,department_id
FROM employees
WHERE YEAR(hire_date)>=1997 
AND department_id IN(80,90,110) 
AND commission_pct IS NOT NULL;

SELECT last_name, hire_date, department_id
FROM employees
#WHERE hire_date >= '1997-01-01'
#WHERE hire_date >= STR_TO_DATE('1997-01-01', '%Y-%m-%d')
WHERE DATE_FORMAT(hire_date,'%Y') >= '1997'
AND department_id IN (80, 90, 110)
AND commission_pct IS NOT NULL;

7.查询公司中入职超过10000天的员工姓名、入职时间

to_days(date) 返回日期date距离0000年1月1日的天数

SELECT last_name,hire_date
FROM employees
#WHERE TO_DAYS(NOW()) - to_days(hire_date) > 10000;
WHERE DATEDIFF(CURDATE(),hire_date)>10000;

8.做一个查询,产生下面的结果

truncate(x,y) 返回对x截取为y位小数的结果

image

SELECT CONCAT(last_name, ' earns ', TRUNCATE(salary, 0) , ' monthly but wants ',
TRUNCATE(salary * 3, 0)) "Dream Salary"
FROM employees;

9.使用case-when,按照下面的条件:

job_id grade
AD_PRES A
ST_MAN B
IT_PROG C
SA_REP D
ST_CLERK E

产生下面的结果
image

SELECT last_name AS Last_name,job_id AS Job_id,
	CASE job_id 
		WHEN 'AD_PRES' THEN 'A'
		WHEN 'ST_MAN' THEN 'B'
		WHEN 'IT_PROG' THEN 'C'
		WHEN 'SA_REP' THEN 'D'
		WHEN 'ST_CLERK' THEN 'E'
		ELSE 'F'
	END AS 'grade'
FROM employees;

标签:hire,last,name,练习,单行,MySQL,date,id,SELECT
From: https://www.cnblogs.com/zhishu/p/16803210.html

相关文章

  • 多表查询的练习
    多表查询的练习--部门表CREATETABLEdept(idINTPRIMARYKEYPRIMARYKEY,--部门iddnameVARCHAR(50),--部门名称locVARCHAR(50)--部门所在地);......
  • flink sql kafka数据接入mysql
    --定义source表droptableIFEXISTSsource_applet_kafka;CREATETABLEIFNOTEXISTSsource_applet_kafka(provinceCodeString,companyNameString,appIdStri......
  • 记录上传文件到mysql数据库中遇到的问题
    在开发一个Qt的界面程序,想把程序批量生成的数据文件上传进数据库中。最开始尝试将文件读到QByteArray类型的变量中,插入数据表的mediumblob类型里,但是插不了,数据表结果一直......
  • MySQL进阶--存储引擎--2022年10月18日
    第一节  MYSQL体系结构1、第二节  存储引擎简介1、建表时指定存储引擎CREATETABLE表名(字段1字段1类型[COMMENT字段1注释],......字段n字......
  • MYSQL日志查看
    方法一:登录到mysql查看binlog获取binlog文件列表:mysql>showbinarylogs;查看当前使用的binlog文件:mysql>showmasterstatus;只查看第一个binlog文件的内容:mys......
  • 指针(初级)+练习
    1.指针是用来存放地址的,地址是唯一标示一块地址空间的。指针的大小在32位平台上是4个字节,在64位平台上是8个字节2.指针类型决定了指针进行解引用操作的时候,能够访问空间的大......
  • JDBC工具类-JDBC练习-登录案例
    *目的:简化书写*分析: 1.注册驱动也抽取 2.抽取一个方法获取连接对象 *需求:不想传递参数(麻烦),还得保证工具类的通用性。 *解决:配置文件 ......
  • Linux安装mysql之路
    1、登录机器(1)链接机器ssh+ip,回车ssh192.168.1.1(2)输入密码,回车2、上传文件由于作者这边是内网,安全原因不能暴露具体内容,大致是利用工具将文件传到的指定目录中(非内网情况可......
  • MySQL---目录结构
    MySQL8目录结构查找当前系统内MySQL相关内容find/-namemysqlMySQL数据库文件存放路径MySQL指令路径MySQL配置文件路径数据库和文件系统的关系......
  • docker 安装mysql主从模式
    1.创建主数据库容器dockerrun-p3306:3306--namemysql-master-v/zgbo/mysql_m/log:/var/log/mysql-v/zgbo/mysql_m/data:/var/lib/mysql-v/zgbo/mysql_m/conf:......