增
insert into 表名(列名,列名。。。。。。) values("test1",23),("test2",23),("test3",24); 这条命令可以一次增加一条数据,也可以同时增加多条数据
还可以从插入其他的表到数据到当前表
insert into 插入的表的名称(列名,列名。。。。。) select 列名,列名。。。。。 from 插入的表的名称;
删
delete from 表名 清空表的内容
删除tel=101的这一列
清空整个表
改
update 表明 set name="xxxx" where id=3;
查
select * from 表名;
条件语句
通配符
限制
排序
分组
分组是什么作用呢。我们看下下面的例子
按照workaddress这一列分组,如果有多行相同的workaddres,则只会显示第一列
按照workaddress这一列分组,如果有多行,则显示id最大的那一行;
按照workaddress分组,如果相同的workaddress有多列,则只显示id最小的那一列,和默认的情况一致
按照workaddress分组,如果相同的workaddress有多列,则会把所有的列的id加起来取和
按照workaddress这一列分组,如果workaddress这一列有多行,则统计多行的id的个数
还可以为每个新的列取一个新的名称,比如上面的例子
-----------------------------------------------------------------------------------------------------------------------------------
对聚合条件做筛选要用having来做筛选,上面的例子,首先用workdaddress做筛选,然后选出count(id) 》=2的列
连表
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
连表操作
我现在想实现这么一个需求,我在userinfo表中用workaddress代替工作地点,但是这里的workaddress仅仅是一串数据,而不是真正的名字,而真正的名字在workaddress中存储,我想在一条sql语句中就查询到工作的地点,就可以用到下面的方法
select * from 表a,表b where 表a.列名 = 表b.列名;
第二种实现连表的方式
select * from 表a lef join 表b on 表a.列名 = 表b.列名;
先写哪张表,哪张表就会放在左边,下面的例子的结果和上面例子的结果可以对比的看下
-----------------------------------------------------------------------------------------------------------------------------------
求平均值的两种方法