#插入数据
replace intostudent1 values(default,'张三','男',sysdate());
replace intostudent1 values(default,'张三01','男',sysdate());
replace intostudent(id, name, sex, birthday) select id,name,sex,birthday fromstudent1 ;
#同效果
insert intostudent(id, name, sex, birthday) select id,name,sex,birthday fromstudent1 ;
#2.更新数据
#不写where条件,则默认更新你正在使用的数据库中所使用表中所有的字段值
#语法:update 表名 set 列名1 = 新的值1,列名2 = 新的值2,列名3 = 新的值3 [where 条件];
#绝对禁止这么些,MySQL又是默认事务提交的,
updatestudent1 set sex= '女';
#正确的写法
updatestudent1 set sex= '男' where id= 15;
#3.查询数据
#语法:select 列名1,列名2,列名3... from 表名 [where 条件 [group by字段] [having 条件] [order by 字段 [asc|desc]]];
#查询所有的数据,*代表查询表中所有的数据,不推荐使用
select* fromstudent1;
#15 张三 男 2019-08-06 15:48:53
#16 张三01 女 2019-08-06 15:49:27
#查询id为12的同学信息
select id, name, sex fromstudent where id= 12;
#添加一条数据,其中birthday的字段为空
replace intostudent values(default,'王五','人妖',null);
#查询birthday为空的同学信息
#写法错误
select id, name, sex, birthday fromstudent where birthday= null;
#正确的写法
select id, name, sex, birthday fromstudent where birthday is null;
#17 王五 人妖
#把查询出来的按sex排序
select id, name, sex, birthday fromstudent order by sex desc;
#4.分页查询
#语法:select 语句 limit 数字1,数字2;
#数字1表示开始的索引值,数字2表示从索引值(数字1)那里开始查询数字2条数据
#例如从student表中从索引为2的地方开始查询3条数据。索引从0开始
#索引并不是id值,查询结果后,的第一条数据的索引就是0
select id, name, sex, birthday fromstudent where sex= '男' limit2,3;
#如果你只给定一个参数,它表示返回最大的记录行数目
select* fromstudent limit5;
#5.删除数据
#关键字delete
#语法:delete from 表名; 删除该表中所有的数据
#删除id为12的这条数据
delete fromstudent where id= 12;
#truncate 表名; 删除表中所有的数据。同时会删除默认的自增长,只留下表的结构。
#使用前
CREATE TABLE`student1` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '这是学号',
`name` varchar(10) DEFAULT NULL COMMENT '这是名字',
`sex` enum('男','女','人妖') DEFAULT NULL COMMENT '这是性别',
`birthday` datetime DEFAULT NULL COMMENT '这是生日日期',
PRIMARY KEY(`id`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8;
truncatestudent1;
#使用后
CREATE TABLE`student1` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '这是学号',
`name` varchar(10) DEFAULT NULL COMMENT '这是名字',
`sex` enum('男','女','人妖') DEFAULT NULL COMMENT '这是性别',
`birthday` datetime DEFAULT NULL COMMENT '这是生日日期',
PRIMARY KEY(`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
#6.默认值处理
#新建一个表ss
create tabless(
id int primary key auto_increment,
name varchar(12) not null,
sex enum('男','女','人妖') default '人妖'
);
#当设置了默认的值列中,没有值插入,则数据库会自动插入默认值。
insert intoss(id, name, sex) values(1,'小慧', '女');
insert intoss(id, name) values(2,'小蒙');
select* fromss;
#1 小慧 女
#2 小蒙 人妖
show create tablestudent1;
select* fromstudent1;