MySQL DML(data manipulation language) 数据进行操作的语言
DML(data manipulation language):
它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言
Insert:
向表里面添加数据
- 当一个字段都不写时,意味着向所有的字段都添加值
# Grade的字段为(int,varchar)
insert into Grade values(1,'大一');
- 向指定的字段添加字段
insert into Grade(GradeId,name) values(2,'大二');
- 插入多条数据:
格式: insert into 表名[(字段1,字段2,字段3,....)]
values ('值1','值2','值3',.....)
insert into Grade(GradeId,name)
values(1,'张三'),(2,'王二'),(3,'李四');
- 将查询到的数据复制到temp表里面
create table temp(
id int(12),
t_name varchar(32)
);
#将查询到的数据复制temp里面
insert into temp
select s.stu_id,s.stu_name from student s;
查看数据表创建格式
show create table GreadeTest;
Update :
语法:
Update
表名 set
column_name = value[,column_name2 = value2,……]
[where
condition]
- column_name : 为要改的数据列。
- value 为修改后的数据,可以变量、具体值、表达式、或者嵌套的select结果。
- condition为筛选条件,如不指定则修改所有的数据
eg1:
update temp set id='10000',t_name = '北京' where id = 2;
测试数据:
## insert 和update
drop table if exists sub;
create table sub(
subNo int primary key auto_increment,
subName varchar(32),
subHour int
)
alter table sub auto_increment=1;
insert into sub(subName,subHour) VALUES
('高等数学-1',120),('高等数学-2',110),('高等数学-3',100),('高等数学-4',130);
eg2:
update sub set subHour=subHour-10 where subNo=1 and subHour > 100;
- 使用本表数据更新本表其他值时
# 将subNo=4的classsHour的值赋值给subNo=1的subHour时,他们位于同一张表,不能直接修改,
#要stuNo=4的subHour的值作为虚拟表后,两张不同的表,就可以直接赋值了
update sub set subHour= (
#查询ch虚拟表的subHour的值
select subHour from
(select subHour from sub where subNo=4)as ch # 做为临时的虚拟表
)
where subNo=1;