常用的sql语句总结

insert常用的语句

insert 语法
insert into <表名> ( <字段名1>,..,<字段名n > ) values ( 值1 ), ……,( 值n );
--注意:
1、后面的值1对应的是字段名1的值,依此类推。
2、没有指定字段时,表示对应每个字段都会插入数据
3、如果值是字符串的话要用 ' 单引号引起了 

仅在name下插入一个名字
mysql> insert into xixi(name) values('xiaoer');

插入两行数据
mysql> insert into xixi values(2,'zhangsan'),(3,'lisi');
--表示在xixi表中对应的2字段插入zhangsan 和3字段中插入了lisi

在表中的多个字段插入多条数据
mysql> insert into xixi(name,age) values('zhangsan',28),('lisi',29);
--在xixi表中插入name值为zhangsan,age字段值为28和name值为lisi,age字段值为29

查看表内容
mysql> select * from xixi;

使用 insert 复制表结构及内容,产生附表。
mysql> create xixi2 test2 like xixi;    --创建新表xixi2复制xixi表的结构
mysql> insert into xixi2 select * from xixi;    --把xixi表的内容插入新的xixi2表中

update常用的语句

update更改数据库
为安全一定要加上where条件更新表内容

将字段中的lisi改为haha
mysql> update xixi set name='haha' where name='lisi';

将xixi表中字段id=5的行把name值改为maliu
update xixi set name=maliu where id=5;
一次修改多个值
mysql>update xxi set name-maliu,age=27 where id=5

更改后查看
select * from  xixi;

delete常用的语句

delete from xixi;     #逻辑删除,一行一行删。
truncate table xixi;  #物理删除,效率高。

根据指定的条件删除语句
mysql> delete from xixi where name='zhangsan';

如:从表中找出age大于50的进行降序排列,删除第一个。
delete from xixi where age>50 order by age desc limit 1;

删除之后查看下
mysql> select * from  test2;

在mysql命令加上选项-U后使用update与delete命令的时候不加where 条件不会执行。

select常用语句

命令语法
select 字段1,字段2,... from 表名 [ where 表达式 and 表达式 ] 
--其中,select、from、where是不能随便改的,是关键字,支持大小写。

查看表中的所有信息
select * from xixi;

 查看表中的id和name
select id,name from xixi;

查看id等于2 的信息
select id,name from xixi where id=2;

查看名字是zhangsan的记录
select id,name from xixi where name='zhangsan';

查看id大于2的记录
select id,name from xixi where id>2;

查看id大于2 并且 小于4的记录
select id,name from xixi where id>2 and id<4;

查看表中所有id大于等于5并且小于等于10的数据
select * from xixi where id >= 5 and <= 10;

查看表中所有id等于5或者等于10的数据
select * from xixi where id = 5 or id = 1

查看id不等于5和10之间的数据
select * from xixi where id not between 5 and 10
select * from xixi where id < 5 or id > 10;

like结合通配符使用查询   % 表示任意长度的任意字符, _ 表示任意单个字符 ,还支持正则表达式
select * from xixi where name like 'a%';    --查看name字段中所有以a开头的数据

使用in关键字指定列表如:
找出id等于5、6、7中的任意一行的所有数据
select * from xixi where id in (5,6,7);
select * from xixi where id not in (5,6,7); --not in 也就是取反的意思

limit指定行
select id,name from xixi limit 2;   --显示前两行
select id,name from xixi limit 2,3; --显示第2行后的三行

asc正向排序查看(不加默认就是正向排序)
select id,name from xixi order by id asc;   --查看id和name字段以id字段进行正向排序

desc反向排序查看
select id,name from xixi order by id desc;  --查看id和name字段并以id字段进行反向排序
select * from xixi order by id desc;    --查看所有并以id字段进行反向排序显示

distinct去重
select distinct age from xixi;  --xixi表的age字段中去除重复的行显示

select分组查询

一些聚合函数的常用示例
group by 分组     
count()统计指定列的数量
avg() 求指定列平均值
sum()求指定列的和
min()显示指定列的最小值
max()显示指定列的最大值
count()显示指定列中非null值的个数
group_concat()分组显示指定列的值

查询students表中的以性别为分组,求出分组后的年龄之和
select gender,sum(age)from student group gender         --gender性别  --age年龄

查询student表中以classid分组,显示平均值大于22的classid
select classid,avg(age) as avgage from student group by classid having avgage > 22;

查询student表中以性别字段gender分组,显示各组中的年龄大于18的学员的年龄总和
select sum(age) from students where age > 19 group by gender;