美文网首页
数据蛙第九期就业班 2020/7/23

数据蛙第九期就业班 2020/7/23

作者: 大板锹 | 来源:发表于2020-07-23 20:41 被阅读0次

    MYSQL练习题

    1、MySQL中的varchar和char有什么区别?

    1、CHAR的长度是固定的,而VARCHAR的长度是可以变化的,比如,存储字符串“abc”,对于CHAR(10),表示你存储的字符将占10个字节(包括7个空字符),而同样的VARCHAR(10)则只占用3个字节的长度,10只是最大值,当你存储的字符小于10时,按实际长度储存。

    2、CHAR的效率比VARCHAR的效率稍高。

    3、CHAR(10)若输入数据的字符小于10,则系统自动在其后添加空格来填满设定好的空间。若输入的数据过长,将会截掉其中超出部分。VARCHAR(10)数据类型的存储长度为实际数值长度。

    2、MySQL中having后面可以使用别名吗?为什么?

    SQL语句的语法顺序:

    FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> DISTINCT -> UNION -> ORDER BY
    

    因此一般不能在having condition中使用select list中的alias。

    但是mysql对此作了扩展。在mysql 5.7.5之前的版本,ONLY_FULL_GROUP_BY sql mode默认不开启。在5.7.5或之后的版本默认开启。

    如果ONLY_FULL_GROUP_BY sql mode不开启,那么mysql对标准SQL的扩展可以生效:

    1.允许在select list、having condition和order by list中使用没有出现在group by list中的字段。此时mysql会
    随机选择没有出现在group by list中的字段的值。效果和使用ANY_VALUE()是相同的。
    2.允许在having condition中使用select list中的alias

    3、查找入职员工时间排名倒数第三的员工所有信息

    建表:

    CREATE TABLE `employees`
    (`emp_no` int(11) NOT NULL,
    `birth_date` date NOT NULL,
    `first_name` varchar(10) NOT NULL,
    `last_name` varchar(10) NOT NULL,
    `gender` char(1) NOT NULL,
    `hire_date` date NOT NULL);
    

    插入数据:

    insert into employees values(10001,'1955-01-21','Tom','Brant','M','1989-09-01');
    insert into employees values(10002,'1955-01-21','Li','Brant','M','1989-09-02'),
    (10003,'1955-01-21','Zhang','Brant','M','1989-09-03'),
    (10004,'1955-01-21','Wang','Brant','M','1989-09-04'),
    (10005,'1955-01-21','Zhao','Brant','M','1989-09-05'),
    (10006,'1955-01-21','Zhou','Brant','M','1989-09-06');
    

    查询语句:

    select a.emp_no,a.birth_date,a.first_name,a.last_name,a.gender,a.hire_date
    from
    (select *,row_number() over(order by hire_date desc) as 'rank'
    from employees limit 2,1)a;
    
    捕获.PNG

    PYTHON练习题

    1、怎么对列表进行去重操作?

    list1=[2,1,2,4,5,6,10,3,3,3,7]
    
    

    输出示例:

    [2, 1, 4, 5, 6, 10, 3, 7]
    

    执行代码:

    list1=[2,1,2,4,5,6,10,3,3,3,7]
    list2=[]
    for i in list1:
        if i not in list2:
            list2.append(i)
    print(list2)
    

    2、pandas的axis参数怎么理解?
    axis=0、axis=index,指的是遍历每个index、行号,即在纵向上遍历每列,所以做sum()、mean()等运算时,是对每列数据做操作,而drop(index, axis=0),传入的参数指定了某一行号,所以会在纵向上遍历每列,去掉行号对应位置的数据。
    axis=1、axis=columns,指的是遍历每个columns、列名,即在横向上遍历每行,所以做sum()、mean()等运算时,是对每行数据做操作,而drop(col, axis=1),传入的参数指定了某一列名,所以会在横向上遍历每行,去掉列名对应位置的数据。

    相关文章

      网友评论

          本文标题:数据蛙第九期就业班 2020/7/23

          本文链接:https://www.haomeiwen.com/subject/fhilkktx.html