MySQL学习记录(五):数据库中的“查”

本章节主要介绍数据库中的“查”。基于的数据库是实验楼提供的,http://github.com/shiyanlou/SQL4

1.最基本的查看:

看数据库:show databases;

看某个数据库中的表:show tables;

查看表employee中的内容:SELECT*FROM employee;

 

2.SELECT指令

基本格式:SELECT 查询列的名称FROM 表名称 WHERE 限制条件;

上边的*表示一个表中所有的内容。

如果只查询name和age两列:SELECT name,age FROM employee;

 

3.查询限制条件WHERE:=,<,>,>=,<=   AND OR

只显示表employee中的name,age两列中age在(25,30)范围内的数据:

SELECT name,age FROM employeeWHERE age<30 AND age>25;

只显示表employee中的name,age,phone三列中name叫Mary的数据:

SELECT name,age,phone FROMemployee WHERE name=’Mary’;

 

4.查询限制条件:IN 和NOT IN

翻译过来就是  在 和 不在 两个含义。

查找employee表格中in_dpt为dpt3和dpt4的人:

SELECT name,age,phone,in_dpt FROMemployee WHERE in_dpt IN (‘dpt3’,’dpt4’);

查找employee表格中in_dpt不为dpt3和dpt4的人:

SELECT name,age,phone,in_dpt FROMemployee WHERE in_dpt NOT IN (‘dpt3’,’dpt4’);

 

5. SELECT的通配符: LIKE  %和_

通配符LIKE表示“像”,像是什么什么的样子。

_表示一个未指定的字符。

%表示不确定的未指定的字符,可以是0个字符,也可以是100个字符。

 

查询表employee中的name,age,phone其中phone的前几位是1101后边有俩别的字符:

SELECT name,age,phone FROMemployee WHERE phone LIKE ‘1101__’;

 

另一种情况,比如只记名字的首字母,又不知道名字长度,则用 % 通配符代替不定个字符:

SELECT name,age,phone FROMemployee WHERE name LIKE 'J%';

 

6.对结果进行排序: ORDER BY(ASC升序,DES降序)

表格employee中所有的数据根据salary进行降序排列:

SELECT * FROM employee ORDER BYsalary DESC;


7. 内置函数和计算:

COUNT计数,SUM求和,AVG求平均值,MAX最大值,MIN最小值。

求employee表中的最大值,最小值,平均值:

SELECT MAX(salary) ,MIN(salary),AVG(salary) FROM employee;

这样的写法会让其显示MAX(salary)=3600,MIN(salary)=2500,AVG(salary)=3150

换另一种重命名的写法是SELECTMAX(salary) AS max_salary FROM employee;

这样最后显示的就是max_salary=3600

 

8. 子查询:

有些时候需要调用多个表,才能获得相应有效的信息,比如:员工Tom所在部门做了几个工程,就需要先找到Tom在找到对应部门的项目数量。

SELECT of_dpt,COUNT(proj_name) AScount_project FROM project

WHERE of_dpt IN

(SELECT in_dpt FROM employeeWHERE name='Tom');


9. 连接查询:把两个表的内容连接到一起,比如A表中有12个数据,B表中的某一列也是12个数据,这样把A和B的12个数据结合成一个新表。

SELECTid,name,people_num

FROM employeeJOIN department

ONemployee.in_dpt = department.dpt_name

ORDER BY id;

把employee中的id和name两列和department中的people_num连接在一起,以id为顺序,升序输出。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值