常用mysql的增删查改_MySql学习——常用增删改查小结

SQL(Structure Query Language)分类

DDL(data definition language)数据定义语言:主要用于创建表,比如create,alter,drop等

DML(data manipulaton language)数据操纵语句:主要用于操作数据,比如 insert,delete,update,select

DCL(data control language)数据控制语句:主要用于控制不同数据访问权限和安全级别,比如grant,revoke等

本文主要讨论DML中增删改查四种常用的对数据的操作。

一、增  插入记录

基本语法:

INSERT INTO tablename (col1,col2,...) VALUES(value1,value2,...)

INSERT INTO tablename VALUES(value1,value2)

INSERT INTO tablename (col1,col2,...) VALUES(value1,value2,...), (value3,value34,...)

insert into student (name,gradeId) values('wpp','0');

insert into student values('33','wpppp','0','女','26','嘻嘻');

insert into student values('33','wpppp','0','女','26','嘻嘻'),('2','wpp','0','女','26','嘻嘻');

1小明2男13嘿嘿

wpp0

33wpppp0女26嘻嘻

33wpppp0女26嘻嘻

2wpp0女26嘻嘻

第一条语句,在name和gradeId两列中插入一条记录,其它列显示null;

第二条语句,插入一条记录,这里values后面的顺序要与sql字段排列顺序一致;

第三条语句,插入多条记录,这样节省网络开销,减少数据库交互。

二、删 删除记录

DELETE FROM tablename WHERE CONDITION

也可以一次删除多个表的数据,这里操作delete语句一定一定要小心,如果不加where条件,会把整个表的数据都删掉的

delete from student where name='wpp'

三、改 修改记录

UPDATE tablename SET col1=value1,col2=value2,... WHERE CONDITION

这里操作update语句也一定一定要小心,不加where条件,会更新整个表,我在第一次开发项目的时候没有加where导致整个表的数据都一样。。。

更新也可以一次更新多个表,经常用于根据一个表的字段来动态更新另一个表的字段

update student as A,user as B set A.profile= 'heheheh' where A.name=B.username and B.username='小明'

四、查 查询记录

*是将所有的记录都选出来  SELECT * FROM tablename WHERE CONDITION

select * from student

distinct来查询不重复的记录SELECT DISTINCT 要查询的列 FROM tablename WHERE CONDITION

select distinct * from student

asc为默认升序,dasc为降序SELECT * FROM tablename WHERE CONDITION order by  col1 desc\asc, col2 desc\asc,...

select * from student order by id

1,3表示从第二条开始的三条记录SELECT * FROM tablename LIMIT 1,3

select * from student LIMIT 0,1

聚合SELECT * FROM tablename group by 列 having condition    having和where的区别在于where是在聚合(group by)之前对记录过滤,having是在聚合后,在逻辑允许的情况下,尽量先用where语句过滤,这样减少聚合操作,最后再对聚合后的数据再次having过滤   group by实际上就是分类汇总

select * from student GROUP BY sex HAVING gradeId = '0'

表连接查询  内连接和外连接,内连接仅选出两张表匹配的记录,外连接除匹配的记录还会选出左右表不匹配的记录,最常用的是内连接。如下第一条语句是内连接,第二条是外连接中的左连接,第三条是外连接中的右连接

select * from student as A, user as B where A.name=B.username

select * from student as A LEFT JOIN user as B on A.name=B.username

select * from student as A right JOIN user as B on A.name=B.username

模糊查询like进行模糊查询,like仅与cahr和varchar数据类型联合使用,between在某个范围内查询,in在列举值查询,需要注意的是like模糊查询%表示通配符,任何字符串出现的任意次数

select * from student where name like '%小明%'

select * from student where gradeId BETWEEN 0 and 2

select * from student where gradeId in('0','2')

子查询 查询时condition是另外一个select语句的结果

select * from student where gradeId in(select gradeId from student)

注:数据库操作多元复杂化,但都遵循着一定的逻辑,写数据库语句的时候要先想好逻辑,在按照语句的规范填充 !

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值