Mysql数据库的环境搭建及安装是数据库操作的基础条件,完成以下相关问题(10分):
Windows如何配置Mysql的环境变量请分别写明配置步骤(3分)
(注:假定Windows的Mysql安装目录为E:\mysql-5.6\)
配置Mysql配置文件是Mysql数据库安装后的一项步骤,请写出下列配置项的含义(3分):
1)max_connections=200
2)max_connect_errors=10
3)character-set-server=utf8请写出数据库安装完成后修改root用户名密码的SQL语句,以及授权root用户可远程连接数据库的权限的SQL语句(4分)
创建表操作是数据库的基本操作,请按要求写出SQL(10分):
写出查看当前数据库的所有database的语句,并写出查询创建database retail_db的语句(2分)
写出进入databse retail_db的语句(1分)
按如下要求创建一张员工表,表名为emp(7分):
字段名 | 类型 | 长度 | 约束 |
ID | INT | 11 | 主键,非空,自增长 |
EMP_NAME | STRING | 50 | |
SEX | STRING | 2 | 非空 |
BIRTH_DAY | DATE | 年月日 | |
SALARY | DOUBLE | ||
ENTRY_DATE | DATE | 年月日时分秒 | |
DEPARTMENT_ID | INT | 11 | 要求建立外键约束,关联到DEPARTMENT表的ID字段 |
对表结构的修改也是比较常用的DDL操作,请按要求写出对表的操作SQL(5分):
将题目二中创建的emp表SALARY字段改为float类型(1分)。
添加一个字段JOB,类型为STRING,长度255(1分)。
将JOB字段重命名为WORK_STATION(1分)。
删除WORK_STATION字段(1分)。
将emp表重命名为employees(1分)。
插入修改等操作是常用的DML操作,请按照要求写出对应SQL(10分):
向题目二中创建的表插入三条数据,要求一条语句插入三条数据,所有字段都需要填写相应值(2分)。
修改SALARY高于平均工资两倍的员工的SALARY,使SALARY降低1000(4分)。
向employees_bak表中插入employees表中SALARY大于5000的所有数据,employees_bak表的字段和employees完全相同是其备份表(4分)
查询是数据库查询操作中常见的操作,请按照要求写出对应SQL(10分):
查询employees表中BIRTH_DAY在1990-1-1到1990-12-31之间,性别不等于1(男),SALARY不为空的所有员工,结果以SALARY排序,取第2条数据开始的10条数据(5分)。
在练习数据库retail_db中,有三张表customers、orders、order_items,用内联接的两种方式写出联接表查询SQL,要求最终结果集显示客户的first name,所在城市,所在州的代码,客户的订单状态,订单下单时间,订单项单价,订单项小计,这几个字段;表的字段和样例数据如下图5.2.1-5.2.6(5分)。
图5.2.1 customers表结构
图5.2.2 customers表样例数据
图5.2.3 orders表结构
图5.2.4 orders表样例数据
图5.2.5 order_items表结构
图5.2.6 order_items表样例数据
在实际查询数据库时,可能会使用到较为复杂的SQL语句进行数据查询,请按要求写出对应的复杂SQL语句(15分):
在练习数据库retail_db中,有两张表customers、orders,联接两张表,查询出顾客姓名的全称取别名为FULL_NAME,客户的城市和街道的全称组成的详细地址(城市和街道中间用空格隔开)取别名为ADDRESS,客户订单状态。要求除去订单状态为CLOSED的订单,并且订单状态忽略大小写,无论是closed还是CLOSED都去除,表结构和样例数据参考图5.2.1、图5.2.2、图5.2.3、图5.2.4(5分)。
在1小题的基础上要求加上字段客户下单天数ORDER_DAYS,该字段为客户下单时间与当前时间之间的相差的天数(5分)。
在练习数据库retail_db中,有三张表departments、categories、products三张表,请联接三张表,并按照部门名称、category名称分组统计其product的单价的平均价格以及产品总价,结果集要求展示部门名称,category名称、平均价格,总价;按照总价排序为降序,同时剔除总价在1500以下的数据,表结构和样例数据参考图6.3.1-6.3.6(5分)。
图6.3.1 departments表结构
图6.3.2 departments表样例数据
图6.3.3 categories表结构
图6.3.4 categories表样例数据
图6.3.5 products表结构
图6.3.6 products表样例数据
数据库中使用正则表达式也是很常见的操作,请按要求写出含正则表达式的SQL(15分):
请写出匹配身份证号的正则表达式以及SQL语句,假定大题二中的employees表中新增了一个字段身份证号ID_NUMBERS(5分)。
请写出匹配邮箱的正则表达式以及SQL语句,要求前4位必须是英文,首字母大写,第五位必须为”_”,6-9位为字母,第6位大写,后三位10-12位为数字,同时符合邮箱格式,假定大题二中的employees表中新增了一个字段邮箱EMAIL(5分)。
在上面两小题基础上,验证用户密码是否符合要求,假定大题二中的employees表中新增了一个字段密码PWD;密码的规范是符合自己的邮箱前9位加上“#”加上身份证后四位,查询出身份证号、邮箱、密码都符合要求的数据(5分)。
数据库综合运用,请按要求写出下列SQL(15分):
创建一张young_employees表,表结构和employees相同,同时插入年龄20岁以下的employees的数据到young_employees中(5分)。
匹配employees中的姓名是汉字,同时身份证符合要求的数据,查询EMP_NAME,BIRTH_DAY,ID_NUMBERS,SALARY。显示时如果EMP_NAME为null则统一显示为’新员工’(5分)。
将练习数据库retail_db中的6张业务数据表连接到一起,全部用内连接连接起来,并且,显示字段为除了各项ID以外的其他所有字段,按照customers表中的customer_state字段排升序,取前20条数据,表结构和表样例数据参考图5.2.1-5.2.6以及图6.3.1-6.3.6(5分)。
Hadoop的hdfs是一个分布式文件系统,请按照要求写出下列命令或解释命令用途(10分):
hadoop fs -ls /home/test.txt 请完整解释该命令的效果(2分)。
hadoop fs -mv /home/test.txt /home/exam/请完整解释该命令效果(2分)。
hadoop fs -rm -r /home/exam/ 请完整解释该命令效果(2分)。
请写出hadoop命令,将本地/home目录下的test.txt文件上传到hdfs下的/home/exam/目录下(2分)。
请写出hdfs命令,将本地当前目录下的test.txt文件复制到hdfs下的/home/exam/目录下(2分)。