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);
答案:
delete from titles_test where id
notin
(select *
from
(select min(id
)from titles_test group by emp_no) a)
;
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);
基本的資料更新語法,update 表名稱 set 列名稱 = 新值 where 列名稱 = 某值 update titles_test set to_date = null , from_date =
'2001-01-01' where to_date =
'9999-01-01'
答案:update titles_test set to_date=null,from_date=
'2001-01-01'
where to_date=
'9999-01-01'
;
create table 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);
本題考查的是replace函式,其中包含三個引數,
第乙個引數為該字段的名稱,
第二引數為該字段的需要被修改值,
第三個引數為該字段修改後的值。
update titles_test set emp_no=
replace(emp_no,
10001
,10005
)where id=5
and emp_no=
10001
;
mysql中修改表資訊的規則。
alter table 表名 change 原列名 新列名 型別; --修改表的列屬性名
alter table 表名 modify 列名 型別 ; --修改表的類型別
alter table 表名 drop 列名; --刪除表的某一列
alter table 表名 add 列名 型別;–新增某一列
alter table 表名 rename 新錶名; --修改表名
alter table titles_test rename titles_2017;
alter table audit add constraint fk_emp_no foreign key audit(emp_no)
references employees_test(id)
;
create table emp_bonus(
emp_no int
not null,
btype smallint not null)
;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`));
答案:update salaries
set salary=salary*
1.1where emp_no in
(select emp_no from emp_bonus)
and to_date=
'9999-01-01'
;
select concat(last_name,
"'",first_name)
as name
from employees;
select length(
'10,a,b'
)-length(replace(
'10,a,b'
,",",""
))as cnt;
create tableemployees
(
emp_no
int(11) not null,
birth_date
date not null,
first_name
varchar(14) not null,
last_name
varchar(16) not null,
gender
char(1) not null,
hire_date
date not null,
primary key (emp_no
));
right函式:可以看到它能返回從最右邊開始指定長度的字串。同理left函式就是返回從最左邊開始的指定長度字串。
select first_name from employees order by right(first_name,2)
;
create table `dept_emp` (
`emp_no` int(11
) not null,
`dept_no` char(
4) not null,
`from_date` date not null,
`to_date` date not null,
primary key (`emp_no`,`dept_no`));
聚合函式group_concat(x,y),其中x是要連線的字段,y是連線時用的符號,可省略,預設為逗號。
此函式必須與group by配合使用。此題以dept_no作為分組,將每個分組中不同的emp_no用逗號連線起來(即可省略y)。
答案:select dept_no,group_concat(emp_no) employees
from dept_emp group by dept_no
牛客網刷題 SQL篇
牛客網sql刷題日記 day 1 查詢最晚入職員工的資訊 題目描述 有乙個員工employees表簡況如下 建表語句如下 create tableemployees emp noint 11 not null,birth datedate not null,first namevarchar 14 ...
牛客網刷題
時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 立華奏在學習初中數學的時候遇到了這樣一道大水題 設箱子內有 n 個球,其中給 m 個球打上標記,設一次摸球摸到每乙個球的概率均等,求一次摸球摸到打標記的球的概率 e...
牛客網刷題
時間限制 c c 2秒,其他語言4秒 空間限制 c c 524288k,其他語言1048576k 64bit io format lld 立華奏是乙個剛剛開始學習 oi 的萌新。最近,實力強大的 qingyu 當選了 iods 9102 的出題人。眾所周知,iods 是一場極其毒瘤的比賽。為了在這次...