DML

dml,数据库操作语言,主要负责数据库的增删改,即insert,update,和delete。

  insert(新增一条数据)  update(更新一条数据)  delete(删除一条数据) 
-- 一.新增语法
--  1.第一种新增方法:指定某些字段插入数据
--   主键,非空的字段都必须放在指定的字段中,插入的值必须与指定字段数量、顺序、数据类型、约束一致
--   未插入值的字段取null或者默认值
insert into student(stuno,stuname,realname,stusex) values (2,'jack','杰克','男');
insert into student(stuno,stuname,realname,stusex) values (3,'lili','丽丽','女');

--  2.第二种新增方法:插入全部字段
--   插入的值必须与表的结构一致,即值的顺序、数量、数据类型、约束必须与原表结构一致
--  如果不想出入值的字段可以插入null或者写default
insert into student values(4,'tony','托尼','男',20,'1995-5-8',165.5);
insert into student values(5,'kitty','凯迪','女',20,null,default);

--  3.第三种新增数据:拷贝表的结构和数据,主键,外键,唯一性约束都没有拷贝
create table stu_copy as select * from student;

create table stu_copy1 as select stuno,realname,stuage from student where stuno<3;

--  4.第四种新增数据:手动创建表的结构,拷贝其他表中部分数据
create table stu_copy2
(
    stuid int primary key,
    stuname varchar(255) not null,
    remark varchar(255)
)

insert into stu_copy2(stuid,stuname) select stuno,stuname from student

--  二、更新数据库表的数据 update
--  将student中stuno=1那个学生信息补全
update student set stuage=25 ;--  更新全表数据
update student set stuage=20 where stuno=1;-- 在更新前会判断where后的条件是否满足,只更新满足条件的行
update student set stusex='女' where stuno!=1;
-- between v1 and v2
update student set height=176,birthday=now() where stuno between 2 and 4;

-- in()
update student set height=180,stusex='男' where stuno in(1,3,5);
-- like 对字符串进行模糊判断  _代表占位符  %通配符
update student set stuage = 18 where stuname like '%t%';
-- is 判断是否是null值    = 无法判断是否为Null
--  错误的:update student set birthday=now() where birthday=null;
update student set birthday = now() where birthday is null;

--  将多个条件进行逻辑运算
update student set stuage = 38 where stuno between 1 and 3 and stusex='男';

update student set stuage = 0 where stuno between 1 and 3 or stusex='男';

update student set stuage =-1 where not (stuno between 1 and 3 or stusex='男');

update student set height = 170 where height is not null;


--  三、删除表中已有的数据 1.delete  2.truncate
delete from student_;--  删除表中所有行数据

-- 删除stuname='tom'的学生
delete from student where stuname='tom';

-- truncate删除所有数据:底层,将表drop掉,再重新创建,表中有自动增长的字段,该字段从1开始增长
truncate table student;

-- 测试
insert into course (cname) values('html');
insert into course (cname) values('js');
insert into course (cname) values('jquery');
insert into course (cname) values('javaee');


delete from course;
truncate table course;


--  insert: 先插入主表,再插入子表
--  update: 更新主表中的数据,则被引用的数据无法直接更新的。
--  delete: 先删除子表数据,  再删除主表数据,或者如果被子表引用的数据无法直接删除。


update bbsusers set userid=5 where userid=4;
update bbsusers set userid=6 where userid=3;
update bbsusers set uname = 'tom' where userid=2;

delete from bbsusers where userid=2;

;


 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值