常用的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;