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;
;