練習SQL利器,??途W(wǎng)SQL實戰(zhàn)題庫,41~48題

41.構(gòu)造一個觸發(fā)器audit_log

CREATE TRIGGER audit_log AFTER INSERT
ON employees_test FOR EACH ROW
BEGIN
    INSERT INTO audit VALUES(NEW.ID,NEW.NAME);
END;

42.刪除emp_no重復的記錄,只保留最小的id對應的記錄

DELETE FROM titles_test
WHERE id NOT IN (SELECT MIN(id) FROM titles_test)

43.將所有to_date為9999-01-01的全部更新為NULL

UPDATE titles_test
SET to_date=NULL,from_date='2001-01-01'
WHERE to_date='9999-01-01'

44.將id=5以及emp_no=10001的行數(shù)據(jù)替換成id=5以及emp_no=10005

UPDATE titles_test 
SET emp_no = REPLACE(emp_no,10001,10005)
WHERE id = 5

注:

Sqlite數(shù)據(jù)庫字符串處理函數(shù)replace

replace(X,Y,Z) ,x:要處理的字符串,y:被替換的字符串,z:替換后的字符串

45.將titles_test表名修改為titles_2017

ALTER TABLE titles_test RENAME TO titles_2017

46.在audit表上創(chuàng)建外鍵約束,其emp_no對應employees_test表的主鍵id

DROP TABLE audit;
CREATE TABLE audit(
    EMP_no INT NOT NULL,
    create_date datetime NOT NULL,
    FOREIGN KEY(EMP_no) REFERENCES employees_test(ID));

注:??途W(wǎng)的這套系統(tǒng)不能用MySQL的ALTER TABLE <表名> ADD [CONSTRAINT <約束名>] FOREIGN KEY(外鍵字段名)REFERENGCES 被參照表(主鍵字段名)

47.如何獲取emp_v和employees有相同的數(shù)據(jù)no

SELECT ev.*
FROM emp_v ev,employees em
WHERE ev.emp_no = em.emp_no;

48.將所有獲取獎金的員工當前薪水增加10%

UPDATE salaries SET salary = salary*1.1
WHERE emp_no IN (SELECT emp_no FROM emp_bonus)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容