SQL第一次作业

怎么将符合要求的查询结果导出为Excel发给领导?又该怎么自定义列名呢?

作业

查出列名后用 as 重新定义列名


image

自定义列名:使用AS

如:SELECT name AS ‘课程名称’,price AS ‘价格’ FROM course ORDER BY price DESC LIMIT 5

导出查询结果有几种方式

  1. 查询出结果后,navicat中 点击“导出结果”
  2. mysql hogwartsdb -uroot -p12345678 -e “select * from course” > /home/test.xls;
1 Like

缺一个导出为表格的步骤,SQL写的很棒

作业

1 Like

使用as进行重命名

导出excel
导出

1 Like

SQL查询+导出 作业
查询


导出

1 Like

作业

自定义列名:

# as可理解为:用作、当成,作为;一般是重命名列名或者表名。
select series_name as 列 from list 

将符合要求的查询结果导出为excel

1.navicat客户端导出查询结果

查询代码

SELECT emp_no as '编号',birth_date as '生日',first_name as '名',last_name as '姓',gender as '性别',hire_date as '雇佣日期'FROM employees LIMIT 10;

选择数据表
导出成功

导出结果:employees.xls

导出表

2.命令行导出查询结果

“into outfile”导出

SELECT emp_no as '编号',birth_date as '生日',first_name as '名',last_name as '姓',gender as '性别',hire_date as '雇佣日期'FROM employees LIMIT 10 into outfile 'C:\mysql-8.0.19-winx64\data\employees.xls';

命令执行

非交互式导出

mysql -u root -D hogwartsdb -e "SELECT emp_no as '编号 ',birth_date as '生日 ',first_name as '名 ',last_name as '姓 ',gender as '性别 ',hire_date as '雇佣日期 'FROM employees LIMIT 10;" > employees.xls -p

命令执行

1 Like

作业-20200418

怎么将符合要求的查询结果导出为Excel发给领导?又该怎么自定义列名呢?

使用MySQL Workbench的导出数据功能。

第一步:在要导出的表上右击选择Table Data Export Wizard

第二步:点击Advanced

第三步:将SQL语句改为符合要求的,在字段名后使用as可以自定义列名。

第四步:点击next

第五步:在File Path中选择导出的路径,按照要求自定义导出格式,点击next

第六步:点击next

第七步:成功导出数据到指定文件(我的失败了= =)

image
image
image
image
image
image
image

作业:


image

1 Like

作业

使用Navicat将符合要求的查询结果导出。

查询入职时间为1990年后的员工数据后自定义列名,并导出为excel文件。

1、查询语句

SELECT emp_no AS 工号, birth_date AS 生日, 
 concat(concat(first_name, ' '), last_name) AS 姓名,
   CASE gender
	WHEN 'M' THEN '女'
	WHEN 'F' THEN '男'
	ELSE 'null'
    END AS 性别, hire_date AS 入职时间
FROM employees.employees
WHERE hire_date >= '1990-01-01';

导出查询结果

查询后,点击导出向导

选择导出为EXCEL文件,并选择导出到的文件夹

image

image

image

image

导出成功

image

1 Like


查询50岁以上的员工并导出,自定义列名

1、查询符合条件的数据


2、导出数据

image

1 Like


在查询出来的结果上面点击这个按钮导出试一下

这样可以导出数据,谢谢老师~

SQL-041作业提交:

怎么将符合要求的查询结果导出为Excel发给领导?又该怎么自定义列名呢?比如:如何将2000年之后入职年薪高于100000的员工数据导出,并自定义列名

分析:主要考察点为搜索SELECT,自定义AS,导出INTO OUTFILE

查询并自定义列名语法:

SELECT
	salaries.emp_no AS 工号,
	salaries.salary AS 年薪,
	salaries.from_date AS 入职日期
FROM
	salaries
WHERE
	salary > 100000
AND from_date >= '2000-01-01';

第一种导出方式:使用Navicat图形化界面的导出选项–选择excel格式–按照步骤一步一步导出为Excel表格;

导出的部分数据截图如下:

image

第二种导出方式:使用命令导出,使用如下语法:

SELECT
	salaries.emp_no AS 工号,
	salaries.salary AS 年薪,
	salaries.from_date AS 入职日期
FROM
	salaries
WHERE
	salary > 100000
AND from_date >= '2000-01-01'
LIMIT 10 INTO OUTFILE "D:\121\salaries.xml";

但是弹出出图错误,说是私有文件无法执行导出,老师帮忙看看有啥办法修改权限?

image

1 Like

找出生日为 10月1日 的员工的工号和姓名

SELECT
	emp_no 工号,
	birth_date 生日,
	first_name 名字
FROM
	`employees`
WHERE
	birth_date LIKE '%-10-01';
  • 使用Navicat的导出功能,导出数据,步骤如下:
  1. 执行查询语句,点击【导出】按钮;
  2. 选择导出格式为“Excel文件”,点击【下一步】
    image
  3. 点击“导出到”下发单元格,指定导出位置及文件名称,点击【下一步】
    image
  4. 勾选【包含列的标题】,以保证导出的Excel有指定的表头,点击【下一步】
    image
  5. 点击【开始】按钮,开始导出数据
    image
  6. 数据导出完成,点击【打开】,查看导出数据
    image
    image
1 Like

按照下面的步骤尝试一下

  1. show variables like ‘%secure%’;查看 secure-file-priv 当前的值是什么
    image
    导出的数据必须是这个值的指定路径才可以导出,默认有可能是NULL就代表禁止导出,所以需要设置一下
  2. 知道mysql安装路径下的my.ini文件,设置一下路径:
  3. 然后重启数据库

sql的第一次作业

  • 查询语句
select dept_emp.emp_no 工号,salaries.salary 工资,dept_emp.from_date 入职日期 from dept_emp inner join salaries on dept_emp.emp_no=salaries.emp_no;

(在navicat上执行,大概就查询了一下工号工资和入职日期。ps:好像没有加as和单引号也没有出现语法的错误)

1 Like

as 关键字是可以省略的哈,起别名的时候不需要加引号的

关闭