#插入数据
insert into info(name,sex,age) values(‘王五’,‘女’,21);
#插入多条数据
insert into info(name,sex,age) values(‘张八’,‘女’,21),(‘赵六’,‘女’,24),(‘旸七’,‘男’,21);
更新数据
update info set sex=‘女’;
update info set sex='男’where id=6;
update info set sex=‘男’,age=20 where id=5;
查询
#查询部分字段
select id,name from info;
#查询字段用别名
select id as 编号,name 姓名 from info;
#查询姓名中含有’a’的人(%:任意长度的任意字符)
select name from info where name like ‘王%’;
select name from info where name like ‘%六%’;
#查询年龄为空的人
select name,age from info where age is null;
#查询年龄不为空的人
select name,age from info where age is not null;
#查询年龄在20—24的人
select name,age from info where age between 23 and 25;
select name,age from info where age >= 23 and age<=25;
#查询前2条数据,从0开始,2条
select id,name age from info limit 0,2;
#查询id=2—4数据,共3条语句
select id,name from info limit 1,3;
排列
#按年龄升序排列
select name,age from info order by age;
select name,age from info order by age asc;
#按年龄降序排列
select name,age from info order by age desc;
#按年龄降序(多列)排列:先按第一个字段排列,
#当第一个字段有相同值时,才按第二个字段进行排列
select id,name,age from info order by age desc,id desc;
删除
delete from info where id=9;
删除张三
delete from info where name=‘张三’;
删除全部
delete from info;
可以灵活性的添加where条件选择性删除表中的全部记录或部分记录,并且可以恢复被删除的数据,但是速度比较慢;
truncate table info;
采取将表结构重新构建的方式直接清空表记录,不可恢复,速度比较快。
创建联系表
create table score(
id int(4)primary key auto_increment,
grade int(3) not null,
sid int(4) not null,
foreign key(sid) references info(id)
);
手工创建
连接
select i.id, i.name,s.grade from score s inner join info i on i.id=s.sid;
select i.id, i.name,s.grade from score s left join info i on i.id=s.sid;
select i.name,i.id,s.grade from info i right join score s on i.id=s.sid;
子查询
select name,age from info where age>(select age from info where name=‘张三丰’);
#子查询:查询有“张三”这个的人的信息
select name,age from info where age in(select age from info where name=‘张三’);
select name,age from info where name in(select name from info where name=‘张三’);
#子查询:查询没有“张三”这个的人的信息
select name,age from info where age not in(select age from info where name=‘张三’);
#用子查询,查询存在成绩为85分的人
select sid,grade from score where exists (select grade from score where grade=85);
#用子查询,查询不存在成绩为85分的人
select sid,grade from score where not exists (select grade from score where grade=85);