crud数据库操作

小白总结mysql四(增删改查)

增加数据

语法:'insert into 表名([字段名1,字段名2,字段名3]) values ('值1'),('值2'),('值3'.......)

	假设有一个表叫做user,里面有 id,name,password,roles四个字段(字段名即列名)
--插入单条信息,此方法的值是按照字段的顺序来插入的(默认值是对应字段名的)
insert into `user`  values ('1''小明','123456','department');

--插入多条信息
insert into `user`  values ('2''小红','654321','department'),('3''小爱','666666','employee');

--填字段进命令
insert into `user`  (`id`,`name`,`password`,`roles`)values ('1''小明','123456','department');
/*
总结:
	 1. 字段和字段之间使用英文逗号隔开
	 2. 字段是可以省略的,但是后面的值必须一一对应,
	 3. 可以同时插入多条数据,values后面的值,需要用英文逗号隔开
*/

修改数据

语法:update 修改的表名字 set 字段名= 新的值 where 条件;

update user set `name`='小爱'--改变所有的name都为小爱
update user set `name`='小名' where id =1;--改变id为1的name
update user set `name`='小爱',`password`='123456' where id =1  --改变id为1的多个属性
操作符含义
=等于
<>或!=不等于
>大于
<小于
between…and在某个范围之内
and
or
	总结:
	  1.字段名是数据的列,尽量带上``反引号;
	  2.条件,筛选的条件,没有指定,则全部修改
	  3.`新的值`可以是具体的一个值,也可以是一个变量
	  			例如:birthday=' current_time'    这是个变量

删除数据

delete命令:

语法:delete from 表名 where 条件

删除数据,避免这样写
delete from 表名;
删除指定的数据
delete from 表名 where 条件

truncate命令:

语法:truncate 表名

作用:完全清空一个数据库表,表的结构和索引都不会改变
truncate 表名;

truncate和delete的区别:

  • 相同点:都能删除数据,但是不会删除表结构
  • 不同点:1.truncate 重新设置自增列,计算器为零,不会影响事务。
    delete比如删除数据的id自增到了5,删除后,再重新增加数据,是从第6开始的
    truncate无论id是自增到哪里了,删除后,都是从1开始的。。

查询数据

--查询全部用户的信息
	select  *  from   user;
--查询规定字段的信息
    select 字段名,字段名   from  user;
  也可以   select 字段名,字段名+数值   from  user;			(多用在加分的用途上 )
--别名
	select id as 用户id, username as  用户名字  from   user
--连接词函数(concat)
    select  concat('用户名:', username)   as   新的名字  from   user;
--去重查询(重复显示的数据去掉,重复的只显示一条 )
    select distinct   username from user; 
--查询版本号
    select version
--用来计算
	select 10*3-1
--用来查询自增的步长
	SELECT @@AUTO_INCREMENT_INCREMENT   
--用于where条件的区间查询
    select 字段名  from  表名    where   between ....   and   .....
--用与where的逻辑判断的查询
    select * from 表名 where  字段名>=  ?   and  字段名<=  ?
    select * from 表名 where  字段名>=  ?   &&  字段名<=  ?       与的逻辑判断
    select * from 表名 where  字段名>=  ?   or  字段名<=  ? 
    select * from 表名 where  字段名>=  ?   ||  字段名<=  ?       或的逻辑判断
    select * from 表名 where  字段名!=? 
      select * from 表名 where   not  字段名=?                  非的逻辑判断

**起别名是让用户更加方便地清除某列数据,起别名的时候,字段名 as 别名,表名 as 别名**

模糊查询(like,in)

%%%%% like结合使用的通配符 : % (代表0到任意个字符) _ (一个字符) 	
select 字段名  from 表名  like  _小;
select 字段名  from 表名  like  小_;
select 字段名  from 表名  like  _小_;
select 字段名  from 表名  like  %小%;
select 字段名  from 表名  like  小%;
select 字段名  from 表名  like  %小_;

%%%%% in 操作符允许我们在 WHERE 子句中规定多个值。
select 字段名  from 表名    where  条件   in   (条件的值1,条件的值2......)。 
select   *  from    表名   where   phone(字段名)   is  not  null      --查询phone字段不为空的所有
 select   *  from    表名   where   phone(字段名)   is    null      --查询phone字段为空的所有

联表查询

/*
	1.分析需求
	2.确定查询方法
	3.确定交叉点
*/
常用的三种联表方法 
操作意义
inner join如果表中至少有一个匹配的条件,就会返回行
left join会从左表返回所有的值,则右表中没有匹配
right join会从右表返回所有的值,则左表中没有匹配
/*
		inner  join
*/
select s.studentNo,studentName,SubjectNo,StudentResult
from student as s
inner join result as  r
on s.studentNo=r.studentNo
----
/*
		left  join
*/
select s.studentNo,studentName,SubjectNo,StudentResult
from student as s
left join result as  r
on s.studentNo=r.studentNo
----
/*
		left  join
*/
select s.studentNo,studentName,SubjectNo,StudentResult
from student as s
right join result as  r
on s.studentNo=r.studentNo


/*
     自我总结:
     			1.student表的位置就是左表  ,result表就是右表
     			2.上面三种写法与表格的联系起来就会很明白了
*/

on 与 where 的区别:on是先筛选后关联的,where是先关联再筛选。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值