增加数据(插入)
/*插入一条数据*/
insert into 表 (列名,列名...) values (值,值,值...)
/*一次插入多条数据 */
insert into 表 (列名,列名...) values (值,值,值...),(值,值,值...)
/*以下为扩展*/
/*方式三*/
insert into 表1 (列名,列名...) select 列名,列名... from 表2
修改数据
update 表名 set 字段=值,.. where ..
删除数据
delete from table where ..
注意一定要加上where限制条件
查找数据
基础数据
select * from 表
select * from 表 where ..
select 字段 from 表 where ..
高级查询
select 字段 from 表 where .. and ..
select 字段 from 表 where .. between ... and;
select 字段 from 表 where 字段 in();
select 字段 from 表 where 字段 like 'shark*'
select 字段 from 表 where 字段 like 'shark_'
select * from 表 limit 5;
select * from 表 limit 0,3;
select * from 表 order by 列 默认升序
select * from 表 order by 列 desc 降序
select row1 from 表 group by row1 按照row1进行分组
select row1,row2 表 group by row1,row2 按照两行进行分组
注意:要查找的内容必须在分组的条件之内
select row1 from 表 group by row1 having ..
注意:having是对分组之后的内容进行筛选,与where类似,只不过having只能在分组的后面加上,否则的话就会报错
group by 必须在where之后,order by 之前
select row1,count(*) from 表 group by row1 having ..
count(*) 内置函数
内置函数在分组完之后才会运行
多表查询
准备三个表
班级表
create table class(
id int not null primary key auto_increment,
name varchar(20));
老师表
create table teacher(
id int not null primary key auto_increment,
name varchar(20),
age int,
phone char(12));
学生表
create table student(
id int primary key auto_increment,
name varchar(20),
age int,
class_id int,
foreign key(class_id) references class(id));
多对多关系表
create table class2teacher(
id int primary key auto_increment,
class_id int,
teacher_id int,
foreign key(class_id) references class(id),
foreign key(student_id) references student(id));
多表查询
查询每个班级的所有学员的姓名
图片.png
将学生表和班级表连接起来就可以得出每个班级对应的学员,我们以"云计算1901班为例进行筛选"
select class.name,student.name from class join student on class.id=student.class_id where class.id="云计算1901"
查询老师奇哥负责哪些班级
image.png
select t.name,c.name from teacher as t join class as c join student as
s join class2student as c2t on t.id=c2t.teacher_id and
c2t.class_id=c.id and c.id=s.class_id where t.name="奇哥"
删除数据
drop table 表名 直接删除一个表
delete from 表名 where .. ` 注意一定要加上where条件`
删除数据之后,id的开始值并不会改变,该是多少还是多少
truncate 表名 将一个表内的数据全部清空,并且从1开始计数
网友评论