【SQL面試題1】 Mysql或者Oracle數據庫

以下有三道面試題:html

1-1.jpg
建立兩張表格:面試

CREATE TABLE CUSTOMERS
(
ID NUMBER(2),
NAME VARCHAR2(10)
);


CREATE TABLE ORDERS
(
ID NUMBER(2),
CUSTOMERID NUMBER(2)
);


SELECT * FROM CUSTOMERS;

INSERT INTO CUSTOMERS VALUES(1,'JOE');
INSERT INTO CUSTOMERS VALUES(2,'HENRY');
INSERT INTO CUSTOMERS VALUES(3,'SAM');
INSERT INTO CUSTOMERS VALUES(4,'MAX');

SELECT * FROM ORDERS;
INSERT INTO ORDERS VALUES(1,3);
INSERT INTO ORDERS VALUES(2,1);

解題答案:網站

/* 
某網站包含兩張表,Customer和Orders表。
編寫一個SQL查詢。找出全部從不訂購任何東西的用戶。
*/
SELECT * FROM CUSTOMERS WHERE ID NOT IN
(
SELECT CUSTOMERID FROM ORDERS
);

1-2.jpg
建立兩張表格:spa

CREATE TABLE T_EMAIL
(
ID NUMBER(2) PRIMARY KEY,
EMAIL VARCHAR2(20)
);

SELECT * FROM T_EMAIL;

INSERT INTO T_EMAIL VALUES(1,'ganzexin@163.com');
INSERT INTO T_EMAIL VALUES(2,'ganzexin@163.com');
INSERT INTO T_EMAIL VALUES(3,'1395520340@qq.com');

解題答案:.net

-- 刪除重複項
DELETE FROM T_EMAIL WHERE ROWID NOT IN
(
SELECT MIN(ROWID) FROM T_EMAIL  GROUP BY EMAIL -- 記得要寫Group by 要否則就只會
) 


DELETE FROM T_EMAIL WHERE EMAIL
IN (SELECT EMAIL FROM T_EMAIL GROUP BY EMAIL HAVING COUNT(*)>1) 
And ROWID Not In (Select Min(ROWID) From T_EMAIL Group By EMAIL Having Count(*) > 1);

刪除重複值:ROWID
注意事項:
1.ROWID的使用——快速刪除重複的記錄
2.rowid去重(刪除表的重複記錄)code


1-3.jpg
建立兩張表格:htm

CREATE TABLE T_EMPLOYEE
(
ID NUMBER(3) PRIMARY KEY,
NAME VARCHAR2(10),
SALARY NUMBER(7,2),
DEPTNO NUMBER(2)
);

CREATE TABLE T_DEPTARTMENT
(
ID NUMBER(2) PRIMARY KEY,
NAME VARCHAR2(10)
);

INSERT INTO T_EMPLOYEE VALUES(1,'JOE',7000,1);
INSERT INTO T_EMPLOYEE VALUES(2,'HENRY',8000,2);
INSERT INTO T_EMPLOYEE VALUES(3,'SAM',7000,2);
INSERT INTO T_EMPLOYEE VALUES(4,'MAX',10000,1);


INSERT INTO T_DEPTARTMENT VALUES(1,'IT');
INSERT INTO T_DEPTARTMENT VALUES(2,'SALES');

SELECT * FROM T_EMPLOYEE;
SELECT * FROM T_DEPTARTMENT;

解題答案:blog

--找出每一個部門工資最高的員工

SELECT * FROM (

SELECT TDEPT.NAME AS DEPTNAME,TEMP.NAME,TEMP.SALARY,ROW_NUMBER()OVER(PARTITION BY TDEPT.NAME ORDER BY TEMP.SALARY DESC)AS RK  FROM T_EMPLOYEE TEMP
JOIN T_DEPTARTMENT TDEPT
ON TEMP.DEPTNO =TDEPT.ID
)
WHERE RK =1;
相關文章
相關標籤/搜索