爱德数智运维面试题


一、下面有AB两个表,写出SQL的结果。
A
id
Name
1
ken
2
min
3
steven

B
id
Age
1
20
3
21
4
30
(1) select A.Name,B.Age from A join B on A.id = B.id
(2) select A.Name,B.Age from A left join B on A.id = B.id
(3) select A.Name,B.Age from A right join B on A.id = B.id
参考答案:
1
Name
Age
ken
20
steven
21
2
Name
Age
ken
20
steven
21
min

3
Name
Age
ken
20
steven
21

30

二、怎么把日期2013-08-15 11:46:21.000 转为2013-08-15

三、unionunion all的区别是什么?
参考答案:
都相当于求并集,union allunion的一种形式。
union在使用时,重复的行被自动取消;union all在使用时,不取消重复的行。

四、有一表T1如下:
id
Name
1
ken
2
min
3
steven
用游标更新表中的每一个Name字段。
参考答案:
CREATE PROCEDURE update_name()
BEGIN

    -- Declare local VARIABLES
    DECLARE done BOOLEAN DEFAULT 0;
    DECLARE o INT;

    -- Declare the cursor
    DECLARE T1id CURSOR
    FOR
    SELECT id FROM T1;

    -- Declare continue handler
    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done=1;

    -- Open the CURSOR
    OPEN T1id;

    REPEAT

        -- Get id
        FETCH T1id INTO o;

        UPDATE T1 SET `Name` = 'ben' WHERE id = o;

    -- End of LOOP
    UNTIL done END REPEAT;

    -- Close the CURSOR
    CLOSE T1id;
END;

五、有一表T2,如下:
title
state
流程1
1
流程2
2
流程3
5
state表示title的审批状态:1表示审批中,2表示审批取消,5表示审批完成。
请用case写出每个title对应的审批状态。
参考答案:
select title,(case state when 1 then '审批中' when 2 then '审批取消' when 5 then '审批完成' end) as '审批状态' from T2

评论

此博客中的热门博文

码率单位

Process vs. Thread

日志文件系统