前七期视频中,我们逐步介绍了关于MySQL数据库的一些基础操作。今天,我们来进行MySQL实战演练:各种增删改查。
根据数据库中已存在的花名册“hmc”,创建一个可休年假天数的表格"nj_days"。6个字段分别为:id(编号),name(姓名),sfz(身份证号),cjgz_date(参加工作时间),gongling(工龄),nianjia(可休年假天数)。
字段分析:
字段1-id设成自增列。
字段2至4-name,sfz,cjgz_date由原表检索。
字段5至6-gongling,nianjia由其他字段计算。
step1:创建表格"nj_days",设字段1为自增列(auto_increment)
id
int(
3
)
not null primary key
auto_increment, #设自增列
step2:使用insert语句增加表记录。其中,
字段2-4的name,sfz,cjgz_date由select子查询而得到。
insert into nj_days(name,sfz,cjgz_date)
select name,sfz,cjgz_datefrom hmc;
#select ......from...... 查询子句作为值,并赋值给指定字段
step3:使用update语句更新字段5(gongling),字段6(nianjia)。
需使用的语法:
>> select子查询
select 字段1,字段2...... from (select......from......)
select
name,timestampdiff(
year
,date_format(concat_ws('-',
left
(cjgz_date,4)
,right
(cjgz_date,2),
'01')
,
'%Y-%m-%d'
),sysdate())
as
gl
from
hmc;
>> 创建临时表
select A.字段1,A.字段2 from (select......from......) tl_name(A) where ....
select
gl
from
(
select
name,timestampdiff(
year
,date_format(concat_ws('-',
left
(cjgz_date,4)
,right
(cjgz_date,2),
'01')
,
'%Y-%m-%d'
),sysdate())
as
gl
from
hmc
)
A
>> case 流程控制语句,并将该流程控制语句结果赋值给指定字段:
step4:查询语句
select * from tl_name;
select 字段1,字段2......from tl_name where 条件
step5:删除语句
drop table tb_name #将表格直接删除,无法找回
delete from 表名 where 条件
例如:delete from MyClass where id=1;
往期回顾>>