秋招 SQL備戰練習3

2021-09-01 09:25:28 字數 2964 閱讀 3183

續接前兩篇部落格秋招-sql備戰練習1

秋招-sql備戰練習2

用到的資料庫表如下:

employees_test

create table employees_test(

id int primary key not null,

name text not null,

age int not null,

address char(50),

salary real

);

audit

create table audit(

emp_no int not null,

name text not null

);

titles_test

create table if not exists titles_test (

id int(11) not null primary key,

emp_no int(11) not null,

title varchar(50) not null,

from_date date not null,

to_date date default null);

員工獎金表emp_bonus

create table emp_bonus(

emp_no int not null,

recevied datetime not null,

btype smallint not null);

薪水表salaries

create table `salaries` (

`emp_no` int(11) not null,

`salary` int(11) not null,

`from_date` date not null,

`to_date` date not null, primary key (`emp_no`,`from_date`));

構造乙個觸發器audit_log,在向employees_test表中插入一條資料的時候,觸發插入相關的資料到audit中。

create trigger audit_log after insert on employees_test

begin

insert into audit(emp_no,name) values(new.id,new.name);

end;

titles_test中,刪除emp_no重複的記錄,只保留最小的id對應的記錄。

insert into titles_test values ('1', '10001', 'senior engineer', '1986-06-26', '9999-01-01'),

('2', '10002', 'staff', '1996-08-03', '9999-01-01'),

('3', '10003', 'senior engineer', '1995-12-03', '9999-01-01'),

('4', '10004', 'senior engineer', '1995-12-03', '9999-01-01'),

('5', '10001', 'senior engineer', '1986-06-26', '9999-01-01'),

('6', '10002', 'staff', '1996-08-03', '9999-01-01'),

('7', '10003', 'senior engineer', '1995-12-03', '9999-01-01');

delete from titles_test where id not in 

(select min(id) from titles_test group by emp_no);

titles_test 中將id=5以及emp_no=10001的行資料替換成id=5以及emp_no=10005,其他資料保持不變,使用replace實現。

-- 方法1

-- select em.* from employees em,emp_v ev where em.emp_no=ev.emp_no;

-- 方法2

select * from employees intersect select * from emp_v;

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

update salaries

set salary=salary*1.1

where emp_no in (select emp_no from emp_bonus)

and to_date='9999-01-01';

查詢字串』10,a,b』 中逗號』,'出現的次數cnt。

select (length('10,a,b')-length(replace('10,a,b',',','')))/length(',') 

as cnt;

備戰秋招 vlan

答 洪範範圍 讓pc1發廣播包,在其他pc上抓包,如果能夠抓到來自pc1的包則在同一廣播域 當交換機的介面被劃入vlan後,只會洪氾至相同vlan的介面 基於資料幀中的目標mac位址,來查詢本地的mac位址表,之後基於表中的記錄單播 到對應的介面中 資料幀進入交換機時,首先檢視源mac,然後將對應的...

備戰秋招 堆排序

public class heapsort 交換heap堆中i索引和j索引處的值 private static void exch comparable heap,int i,int j 根據原陣列source,構造出堆heap private static void createheap comp...

2021秋招備戰 MySQL面試相關知識

事務時訪問並可能更新資料庫中各種資料項的乙個程式執行單元。是乙個完整的業務邏輯單元事務不可以再分割 和事務相關的語句只有dml語句。資料庫主要分為五大模組 1.dql 資料查詢語言 凡是select語句都是 2.dml 資料操作語言 對錶內的資料進行增 刪 改 3.ddl 資料定義語言 庫和表的定義...