where t1.name=’’ and t1.id=t2.sid and t3.sid=t2.id;
select * from table1 order by(-字段);从大到小,如果不加-,就是按从小到大
select * from table1 id in(1, 2); 搜索id是1,2的数
foreign key(g_id) references tb_grade(id) 创建外键的命令
default null 默认为空
聚合函数
group by 字段 按字段将记录分组
order by(-字段) 从大到小,如果不加-,就是按从小到大
count() 计数
sum() 求和
max() 找最大
min() 找最小
avg() 求平均
SQL应用
create database tb_test1 default charset utf8;
use tb_test1;
create table tb_grade(
id int auto_increment,
g_name varchar(30) not null,
primary key(id)
);
create table tb_student(
id int auto_increment,
s_name varchar(10) not null,
s_tel varchar(11),
g_id int default null,
primary key(id),
foreign key(g_id) references tb_grade(id)
);
insert into tb_grade(g_name) values('python');
insert into tb_grade(g_name) values('java');
insert into tb_grade(g_name) values('php');
insert into tb_grade(g_name) values('c');
insert into tb_grade(g_name) values('c++');
# 查看表
desc tb_student;
insert into tb_student (s_name, s_tel, g_id) values('李佩', '13441242541'
,1);
insert into tb_student(s_name, s_tel, g_id) values('李四', '15192776631',
2);
insert into tb_student (s_name, s_tel, g_id) values('王菲', '15784322678'
,3);
insert into tb_student(s_name, s_tel, g_id) values('张三', '19999991234',
4);
select * from tb_student s join tb_grade g on g.id=s.g_id where g.g_name=
'python';
# 下面这种方法也是关联主键外键的方法,但不推荐使用
select * from tb_student as s, tb_grade as g where g.id=s.g_id;
insert into tb_student(s_name, s_tel, g_id) values('学生1', '12345678901'
,1);
insert into tb_student(s_name, s_tel, g_id) values('学生2', '12445678901'
,1);
insert into tb_student(s_name, s_tel, g_id) values('学生3', '13445678901'
,2);
insert into tb_student(s_name, s_tel, g_id) values('学生4', '13445688901'
,2);
insert into tb_student(s_name, s_tel, g_id) values('学生5', '13445688902'
,3);
insert into tb_student(s_name, s_tel, g_id) values('学生6', '13445608902'
,3);
# 按字段g_id将记录分组,并求每个组的人数
select count(*) as '学生个数', g.g_name as '班级名称' from tb_student s join tb_grade g
on s.g_id=g.id group by(g.id);
# 求和
select sum(s.id) as '学生个数', g.g_name from tb_student s join tb_grade
g on s.g_id=g.id group by(g.id);
alter table tb_student add s_grade varchar(5);
#删除字段
alter table tb_student drop s_grade;
alter table tb_student change s_grade s_price int;
alter table tb_student add s_grades int;
update tb_student set s_grades=70 where id=1;
update tb_student set s_grades=80 where id=2;
update tb_student set s_grades=90 where id=3;
update tb_student set s_grades=96 where id=4;
update tb_student set s_grades=96 where id=5;
update tb_student set s_grades=60 where id=6;
update tb_student set s_grades=60 where id=7;
update tb_student set s_grades=60 where id=8;
update tb_student set s_grades=60 where id=9;
update tb_student set s_grades=60 where id=10;
#找最大值
select max(s_grades) from tb_student;
#找最小值
select min(s_grades) from tb_student;
#求平均值
select avg(s_grades) from tb_student;