美文网首页
数据库之增删改查

数据库之增删改查

作者: 互联网中的一个咸鱼 | 来源:发表于2019-08-13 08:13 被阅读0次

增加数据(插入)

/*插入一条数据*/
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开始计数

相关文章

网友评论

      本文标题:数据库之增删改查

      本文链接:https://www.haomeiwen.com/subject/mvsljctx.html