超全面Mysql单表查询操作(内附面试题)

1.插入记录

insert into 表名(列名1,列名2,列名3……) values(值1,值2,值3……)



mysqldump 单表 带条件_面试题




insert into 表名 values(值1,值2,值3……)



mysqldump 单表 带条件_表名_02



1.1插入数据中文乱码问题解决办法


方式一:【不建议!】

直接修改数据库安装目录里面的my.ini文件的第57行


mysqldump 单表 带条件_数据库_03


方式二:

     setnames gbk;



mysqldump 单表 带条件_mysql_04


2.修改表记录



2.1 不带条件的

update 表名set 字段名=值, 字段名=值, 字段名=值……



mysqldump 单表 带条件_mysqldump 单表 带条件_05




它会将该列的所有记录都更改



2.2 带条件的



update 表名set字段名=值, 字段名=值, 字段名=值…… where 条件



mysqldump 单表 带条件_mysql_06



3.删除表记录


3.1 带条件的

delete from 表名 where 条件

mysqldump 单表 带条件_表名_07

注意,删除后,uid不会重置!


3.2.不带条件的

先准备数据

insert into tbl_user values(null,’老王’,’666’);

 

删除操作

     deletefrom 表名;

mysqldump 单表 带条件_mysql_08

3.3 面试题

说说delete与truncate的区别?

delete删除的时候是一条一条的删除记录,它配合事务,可以将删除的数据找回。

truncate删除,它是将整个表摧毁,然后再创建一张一模一样的表。它删除的数据无法找回。

 

Delete操作演示:

mysqldump 单表 带条件_mysql_09

Truncate操作演示


mysqldump 单表 带条件_数据库_10



注意:delete删除,uid不会重置!而使用truncate操作,uid会重置

4.查询操作

语法:

     select[distinct] *| 列名,列名 from 表名 [where条件]

4.1 简单查询

1.查询所有商品

select * from product;


mysqldump 单表 带条件_数据库_11


2. 查询商品名和商品价格

select pname,price from product;


mysqldump 单表 带条件_mysql_12


3.查询所有商品信息使用表别名

select * from product as p;

mysqldump 单表 带条件_面试题_13

4.查询商品名,使用列别名

select pname as p fromproduct

mysqldump 单表 带条件_mysql_14

5.去掉重复值(按照价格)

select distinct(price) from product;

 

先准备数据:

insert into product values (null,'李士雪',38,null);


mysqldump 单表 带条件_面试题_15


6.将所有的商品的价格+10进行显示

select pname,price+10 from product;


mysqldump 单表 带条件_面试题_16



4.2 条件查询

1.查询商品名称为"左慈"的商品信息

mysqldump 单表 带条件_表名_17

2.查询价格>60元的所有商品信息


mysqldump 单表 带条件_mysqldump 单表 带条件_18

3.查询商品名称含有"士"字的商品信息

mysqldump 单表 带条件_数据库_19

4.查询商品id在(3,6,9)范围内的所有商品信息

mysqldump 单表 带条件_mysql_20

5.查询商品名称含有"士"字并且id为6的商品信息


mysqldump 单表 带条件_数据库_21


6.查询id为2或者6的商品信息


mysqldump 单表 带条件_mysqldump 单表 带条件_22


4.3 排序

1.查询所有的商品,按价格进行排序(升序、降序)


mysqldump 单表 带条件_表名_23


mysqldump 单表 带条件_mysql_24



2.查询名称有"士"的商品信息并且按照价格降序排序


mysqldump 单表 带条件_mysql_25



4.4 聚合函数

1.获得所有商品的价格的总和

mysqldump 单表 带条件_面试题_26

2.获得所有商品的平均价格

mysqldump 单表 带条件_mysqldump 单表 带条件_27

3.获得所有商品的个数


mysqldump 单表 带条件_表名_28


4.5 分组操作
1.添加分类id(alter table product add cid varchar(32);)
2.初始化数据
update product set cid='1';
update product set cid='2' where  pid in (5,6,7);

 

1.根据cid字段分组,分组后统计商品的个数。



mysqldump 单表 带条件_mysqldump 单表 带条件_29


2.根据cid分组,分组统计每组商品的平均价格,并且平均价格大于20000元。


mysqldump 单表 带条件_表名_30


4.6 查询总结

select 一般在的后面的内容都是要查询的字段

from 要查询到表

where

group by

having 分组后带有条件只能使用having

order by 它必须放到最后面